Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(883)

Unified Diff: src/objects.h

Issue 159783002: Re-optimize faster after making a pretenuring decision. Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/deoptimizer.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/objects.h
diff --git a/src/objects.h b/src/objects.h
index fa399000b49f95cdf7e0f3314fb3109b7e116d16..7ee178b4daa0ffb6cbf7937de23002fe1320b8b0 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -5461,6 +5461,9 @@ class Code: public HeapObject {
inline bool marked_for_deoptimization();
inline void set_marked_for_deoptimization(bool flag);
+ inline bool marked_for_instant_optimization();
+ inline void set_marked_for_instant_optimization(bool flag);
+
// [constant_pool]: The constant pool for this function.
inline ConstantPoolArray* constant_pool();
inline void set_constant_pool(Object* constant_pool);
@@ -5635,6 +5638,10 @@ class Code: public HeapObject {
void PrintDeoptLocation(FILE* out, int bailout_id);
bool CanDeoptAt(Address pc);
+ void GetICCounts(int* ic_with_type_info_count,
+ int* ic_total_count,
+ int* percentage);
+
#ifdef VERIFY_HEAP
void VerifyEmbeddedObjectsDependency();
#endif
@@ -5718,11 +5725,14 @@ class Code: public HeapObject {
static const int kInvalidatedWeakStubFirstBit =
kWeakStubFirstBit + kWeakStubBitCount;
static const int kInvalidatedWeakStubBitCount = 1;
+ static const int kMarkedForInstantOptimizationFirstBit =
+ kInvalidatedWeakStubFirstBit + kInvalidatedWeakStubBitCount + 1;
+ static const int kMarkedForInstantOptimizationBitCount = 1;
STATIC_ASSERT(kStackSlotsFirstBit + kStackSlotsBitCount <= 32);
STATIC_ASSERT(kHasFunctionCacheFirstBit + kHasFunctionCacheBitCount <= 32);
- STATIC_ASSERT(kInvalidatedWeakStubFirstBit +
- kInvalidatedWeakStubBitCount <= 32);
+ STATIC_ASSERT(kMarkedForInstantOptimizationFirstBit +
+ kMarkedForInstantOptimizationBitCount <= 32);
class StackSlotsField: public BitField<int,
kStackSlotsFirstBit, kStackSlotsBitCount> {}; // NOLINT
@@ -5737,6 +5747,9 @@ class Code: public HeapObject {
class InvalidatedWeakStubField: public BitField<bool,
kInvalidatedWeakStubFirstBit,
kInvalidatedWeakStubBitCount> {}; // NOLINT
+ class MarkedForInstantOptimizationField: public BitField<bool,
+ kMarkedForInstantOptimizationFirstBit,
+ kMarkedForInstantOptimizationBitCount> {}; // NOLINT
// KindSpecificFlags2 layout (ALL)
static const int kIsCrankshaftedBit = 0;
@@ -5881,7 +5894,9 @@ class DependentCode: public FixedArray {
DependentCode::DependencyGroup group);
bool MarkCodeForDeoptimization(Isolate* isolate,
- DependentCode::DependencyGroup group);
+ DependentCode::DependencyGroup group,
+ bool instant_optimize = false);
+
void AddToDependentICList(Handle<Code> stub);
// The following low-level accessors should only be used by this class
« no previous file with comments | « src/deoptimizer.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698