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() {
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 -
......
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