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

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, 10 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') | src/objects.cc » ('J')
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 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;
« no previous file with comments | « src/deoptimizer.cc ('k') | src/objects.cc » ('j') | src/objects.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698