Commit 6c515240 authored by ishell's avatar ishell Committed by Commit bot

[ic] Temporary resurrect ICStateField to recover performance regression.

Zero value of ICStateField part made megamorphic stub cache unusable.
We need to revisit hashing algorithm in order to remove the ICStateField.

BUG=chromium:619016
LOG=N

Review-Url: https://codereview.chromium.org/2064713002
Cr-Commit-Position: refs/heads/master@{#36959}
parent bd451d42
...@@ -5119,8 +5119,10 @@ Address Code::constant_pool() { ...@@ -5119,8 +5119,10 @@ Address Code::constant_pool() {
Code::Flags Code::ComputeFlags(Kind kind, ExtraICState extra_ic_state, Code::Flags Code::ComputeFlags(Kind kind, ExtraICState extra_ic_state,
CacheHolderFlag holder) { CacheHolderFlag holder) {
// TODO(ishell): remove ICStateField.
// Compute the bit mask. // Compute the bit mask.
unsigned int bits = KindField::encode(kind) | unsigned int bits = KindField::encode(kind) |
ICStateField::encode(MONOMORPHIC) |
ExtraICStateField::encode(extra_ic_state) | ExtraICStateField::encode(extra_ic_state) |
CacheHolderField::encode(holder); CacheHolderField::encode(holder);
return static_cast<Flags>(bits); return static_cast<Flags>(bits);
......
...@@ -5281,7 +5281,9 @@ class Code: public HeapObject { ...@@ -5281,7 +5281,9 @@ class Code: public HeapObject {
class ProfilerTicksField : public BitField<int, 4, 28> {}; class ProfilerTicksField : public BitField<int, 4, 28> {};
// Flags layout. BitField<type, shift, size>. // Flags layout. BitField<type, shift, size>.
class CacheHolderField : public BitField<CacheHolderFlag, 0, 2> {}; class ICStateField : public BitField<InlineCacheState, 0, 3> {};
class CacheHolderField
: public BitField<CacheHolderFlag, ICStateField::kNext, 2> {};
class KindField : public BitField<Kind, CacheHolderField::kNext, 5> {}; class KindField : public BitField<Kind, CacheHolderField::kNext, 5> {};
class ExtraICStateField : public BitField<ExtraICState, KindField::kNext, class ExtraICStateField : public BitField<ExtraICState, KindField::kNext,
PlatformSmiTagging::kSmiValueSize - PlatformSmiTagging::kSmiValueSize -
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment