Chromium Code Reviews| Index: src/objects.h |
| diff --git a/src/objects.h b/src/objects.h |
| index 51f0391fff4eb7371c368f5c80089ca335394805..4ae539ab27e7d360fb5edb12a3efdc903d22198a 100644 |
| --- a/src/objects.h |
| +++ b/src/objects.h |
| @@ -5297,6 +5297,9 @@ class Code: public HeapObject { |
| inline bool marked_for_deoptimization(); |
| inline void set_marked_for_deoptimization(bool flag); |
| + inline bool marked_for_reoptimization(); |
| + inline void set_marked_for_reoptimization(bool flag); |
| + |
| // [constant_pool]: The constant pool for this function. |
| inline ConstantPoolArray* constant_pool(); |
| inline void set_constant_pool(Object* constant_pool); |
| @@ -5470,6 +5473,10 @@ class Code: public HeapObject { |
| void PrintDeoptLocation(FILE* out, int bailout_id); |
| bool CanDeoptAt(Address pc); |
| + void GetICCounts(int* ic_with_type_info_count, |
|
titzer
2014/02/18 09:24:48
Nit: formatting
Hannes Payer (out of office)
2014/05/12 09:37:08
Done.
|
| + int* ic_total_count, |
| + int* percentage); |
| + |
| #ifdef VERIFY_HEAP |
| void VerifyEmbeddedObjectsDependency(); |
| #endif |
| @@ -5539,11 +5546,16 @@ class Code: public HeapObject { |
| static const int kMarkedForDeoptimizationFirstBit = |
| kStackSlotsFirstBit + kStackSlotsBitCount + 1; |
| static const int kMarkedForDeoptimizationBitCount = 1; |
| + static const int kMarkedForReoptimizationFirstBit = |
| + kMarkedForDeoptimizationFirstBit + kMarkedForDeoptimizationBitCount + 1; |
| + static const int kMarkedForReoptimizationBitCount = 1; |
| STATIC_ASSERT(kStackSlotsFirstBit + kStackSlotsBitCount <= 32); |
| STATIC_ASSERT(kHasFunctionCacheFirstBit + kHasFunctionCacheBitCount <= 32); |
| STATIC_ASSERT(kMarkedForDeoptimizationFirstBit + |
| kMarkedForDeoptimizationBitCount <= 32); |
| + STATIC_ASSERT(kMarkedForReoptimizationFirstBit + |
| + kMarkedForReoptimizationBitCount <= 32); |
| class StackSlotsField: public BitField<int, |
| kStackSlotsFirstBit, kStackSlotsBitCount> {}; // NOLINT |
| @@ -5552,6 +5564,9 @@ class Code: public HeapObject { |
| class MarkedForDeoptimizationField: public BitField<bool, |
| kMarkedForDeoptimizationFirstBit, |
| kMarkedForDeoptimizationBitCount> {}; // NOLINT |
| + class MarkedForReoptimizationField: public BitField<bool, |
| + kMarkedForReoptimizationFirstBit, |
| + kMarkedForReoptimizationBitCount> {}; // NOLINT |
| // KindSpecificFlags2 layout (ALL) |
| static const int kIsCrankshaftedBit = 0; |
| @@ -5698,7 +5713,8 @@ class DependentCode: public FixedArray { |
| DependentCode::DependencyGroup group); |
| bool MarkCodeForDeoptimization(Isolate* isolate, |
| - DependentCode::DependencyGroup group); |
| + DependentCode::DependencyGroup group, |
| + bool reoptimize = false); |
| // The following low-level accessors should only be used by this class |
| // and the mark compact collector. |
| @@ -7455,6 +7471,8 @@ class JSFunction: public JSObject { |
| // Used for flags such as --hydrogen-filter. |
| bool PassesFilter(const char* raw_filter); |
| + void Optimize(const char* reason); |
|
titzer
2014/02/18 09:24:48
Please move this to the compiler. Yang did a big r
Hannes Payer (out of office)
2014/05/12 09:37:08
Done.
|
| + |
| // Layout descriptors. The last property (from kNonWeakFieldsEndOffset to |
| // kSize) is weak and has special handling during garbage collection. |
| static const int kCodeEntryOffset = JSObject::kHeaderSize; |