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

Unified Diff: src/interpreter/interpreter.h

Issue 2347143002: [interpreter] Add fast path for dynamic global lookups (Closed)
Patch Set: Rebase on master and rebaseline tests Created 4 years, 3 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
Index: src/interpreter/interpreter.h
diff --git a/src/interpreter/interpreter.h b/src/interpreter/interpreter.h
index 1e37b11396337eea8ccaeea38383d601cf0644d4..3e6089c15fbf57e500b77db67a13f6aba50cfb6e 100644
--- a/src/interpreter/interpreter.h
+++ b/src/interpreter/interpreter.h
@@ -128,6 +128,12 @@ class Interpreter {
void DoDelete(Runtime::FunctionId function_id,
InterpreterAssembler* assembler);
+ // Generates code to perform a lookup slot load via |function_id| by calling
+ // out to the runtime.
+ void DoLdaLookupSlowPath(Runtime::FunctionId function_id,
+ compiler::Node* name_index, compiler::Node* context,
+ InterpreterAssembler* assembler);
+
// Generates code to perform a lookup slot load via |function_id|.
void DoLdaLookupSlot(Runtime::FunctionId function_id,
InterpreterAssembler* assembler);
@@ -137,7 +143,13 @@ class Interpreter {
void DoLdaLookupContextSlot(Runtime::FunctionId function_id,
InterpreterAssembler* assembler);
- // Generates code to perform a lookup slot store depending on |language_mode|.
+ // Generates code to perform a lookup slot load via |function_id| that can
+ // fast path to a global load
rmcilroy 2016/09/19 09:04:29 fullstop
Leszek Swirski 2016/09/19 10:34:51 Obsolete, function got removed.
+ void DoLdaLookupGlobalSlot(Runtime::FunctionId function_id,
+ InterpreterAssembler* assembler);
+
+ // Generates code to perform a lookup slot store depending on
+ // |language_mode|.
void DoStaLookupSlot(LanguageMode language_mode,
InterpreterAssembler* assembler);
@@ -145,6 +157,11 @@ class Interpreter {
compiler::Node* BuildLoadContextSlot(InterpreterAssembler* assembler);
// Generates code to load a global.
+ compiler::Node* BuildLoadGlobal(Callable ic, compiler::Node* context,
+ compiler::Node* raw_slot,
+ InterpreterAssembler* assembler);
+
+ // Generates code to load a global.
compiler::Node* BuildLoadGlobal(Callable ic, InterpreterAssembler* assembler);
// Generates code to load a named property.

Powered by Google App Engine
This is Rietveld 408576698