[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}
This commit is contained in:
parent
bd451d421b
commit
6c5152406f
@ -5119,8 +5119,10 @@ Address Code::constant_pool() {
|
||||
|
||||
Code::Flags Code::ComputeFlags(Kind kind, ExtraICState extra_ic_state,
|
||||
CacheHolderFlag holder) {
|
||||
// TODO(ishell): remove ICStateField.
|
||||
// Compute the bit mask.
|
||||
unsigned int bits = KindField::encode(kind) |
|
||||
ICStateField::encode(MONOMORPHIC) |
|
||||
ExtraICStateField::encode(extra_ic_state) |
|
||||
CacheHolderField::encode(holder);
|
||||
return static_cast<Flags>(bits);
|
||||
|
@ -5281,7 +5281,9 @@ class Code: public HeapObject {
|
||||
class ProfilerTicksField : public BitField<int, 4, 28> {};
|
||||
|
||||
// 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 ExtraICStateField : public BitField<ExtraICState, KindField::kNext,
|
||||
PlatformSmiTagging::kSmiValueSize -
|
||||
|
Loading…
Reference in New Issue
Block a user