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

Unified Diff: src/objects.h

Issue 1208013002: [turbofan] Implement sharing of context-independent code. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@local_opt-code-map-3
Patch Set: Disable test for GC stress. Created 5 years, 6 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/hydrogen-instructions.h ('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 7dd2c73e99bb86744b6a537fa354e4ef53bc7772..f48c33ad485f56a972176aef490e9a0617f0de16 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -6554,7 +6554,7 @@ enum BuiltinFunctionId {
// Result of searching in an optimized code map of a SharedFunctionInfo. Note
-// that {code == nullptr} indicates that no entry has been found.
+// that both {code} and {literals} can be NULL to pass search result status.
struct CodeAndLiterals {
Code* code; // Cached optimized code.
FixedArray* literals; // Cached literals array.
@@ -6577,7 +6577,8 @@ class SharedFunctionInfo: public HeapObject {
DECL_ACCESSORS(optimized_code_map, Object)
// Returns entry from optimized code map for specified context and OSR entry.
- // Note that {code == nullptr} indicates no matching entry has been found.
+ // Note that {code == nullptr} indicates no matching entry has been found,
+ // whereas {literals == nullptr} indicates the code is context-independent.
CodeAndLiterals SearchOptimizedCodeMap(Context* native_context,
BailoutId osr_ast_id);
@@ -6587,20 +6588,14 @@ class SharedFunctionInfo: public HeapObject {
// Removed a specific optimized code object from the optimized code map.
void EvictFromOptimizedCodeMap(Code* optimized_code, const char* reason);
- // Unconditionally clear the type feedback vector (including vector ICs).
- void ClearTypeFeedbackInfo();
-
- // Clear the type feedback vector with a more subtle policy at GC time.
- void ClearTypeFeedbackInfoAtGCTime();
-
// Trims the optimized code map after entries have been removed.
void TrimOptimizedCodeMap(int shrink_by);
- // Initialize a SharedFunctionInfo from a parsed function literal.
- static void InitFromFunctionLiteral(Handle<SharedFunctionInfo> shared_info,
- FunctionLiteral* lit);
+ // Add a new entry to the optimized code map for context-independent code.
+ static void AddSharedCodeToOptimizedCodeMap(Handle<SharedFunctionInfo> shared,
+ Handle<Code> code);
- // Add a new entry to the optimized code map.
+ // Add a new entry to the optimized code map for context-dependent code.
static void AddToOptimizedCodeMap(Handle<SharedFunctionInfo> shared,
Handle<Context> native_context,
Handle<Code> code,
@@ -6614,7 +6609,8 @@ class SharedFunctionInfo: public HeapObject {
// Layout description of the optimized code map.
static const int kNextMapIndex = 0;
- static const int kEntriesStart = 1;
+ static const int kSharedCodeIndex = 1;
+ static const int kEntriesStart = 2;
static const int kContextOffset = 0;
static const int kCachedCodeOffset = 1;
static const int kLiteralsOffset = 2;
@@ -6655,6 +6651,12 @@ class SharedFunctionInfo: public HeapObject {
// available.
DECL_ACCESSORS(feedback_vector, TypeFeedbackVector)
+ // Unconditionally clear the type feedback vector (including vector ICs).
+ void ClearTypeFeedbackInfo();
+
+ // Clear the type feedback vector with a more subtle policy at GC time.
+ void ClearTypeFeedbackInfoAtGCTime();
+
#if TRACE_MAPS
// [unique_id] - For --trace-maps purposes, an identifier that's persistent
// even if the GC moves this SharedFunctionInfo.
@@ -6897,6 +6899,10 @@ class SharedFunctionInfo: public HeapObject {
inline bool is_simple_parameter_list();
+ // Initialize a SharedFunctionInfo from a parsed function literal.
+ static void InitFromFunctionLiteral(Handle<SharedFunctionInfo> shared_info,
+ FunctionLiteral* lit);
+
// Dispatched behavior.
DECLARE_PRINTER(SharedFunctionInfo)
DECLARE_VERIFIER(SharedFunctionInfo)
« no previous file with comments | « src/hydrogen-instructions.h ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698