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

Unified Diff: src/deoptimizer.h

Issue 2803853005: Inline Array.prototype.forEach in TurboFan (Closed)
Patch Set: Disable new array builtins by default Created 3 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/compiler/js-call-reducer.cc ('k') | src/deoptimizer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/deoptimizer.h
diff --git a/src/deoptimizer.h b/src/deoptimizer.h
index 19ea416a387de4c0452ba65c91f6bf91e70cc53f..551efe3564a4bfd4f83919bbee9b615e10f9d3d6 100644
--- a/src/deoptimizer.h
+++ b/src/deoptimizer.h
@@ -159,6 +159,8 @@ class TranslatedFrame {
kArgumentsAdaptor,
kConstructStub,
kCompiledStub,
+ kBuiltinContinuation,
+ kJavaScriptBuiltinContinuation,
kInvalid
};
@@ -230,6 +232,10 @@ class TranslatedFrame {
static TranslatedFrame ConstructStubFrame(BailoutId bailout_id,
SharedFunctionInfo* shared_info,
int height);
+ static TranslatedFrame BuiltinContinuationFrame(
+ BailoutId bailout_id, SharedFunctionInfo* shared_info, int height);
+ static TranslatedFrame JavaScriptBuiltinContinuationFrame(
+ BailoutId bailout_id, SharedFunctionInfo* shared_info, int height);
static TranslatedFrame CompiledStubFrame(int height, Isolate* isolate) {
return TranslatedFrame(kCompiledStub, isolate, nullptr, height);
}
@@ -568,6 +574,8 @@ class Deoptimizer : public Malloced {
int frame_index, bool is_setter_stub_frame);
void DoComputeCompiledStubFrame(TranslatedFrame* translated_frame,
int frame_index);
+ void DoComputeBuiltinContinuation(TranslatedFrame* translated_frame,
+ int frame_index, bool java_script_frame);
void WriteTranslatedValueToOutput(
TranslatedFrame::iterator* iterator, int* input_index, int frame_index,
@@ -921,33 +929,35 @@ class TranslationIterator BASE_EMBEDDED {
int index_;
};
-#define TRANSLATION_OPCODE_LIST(V) \
- V(BEGIN) \
- V(JS_FRAME) \
- V(INTERPRETED_FRAME) \
- V(CONSTRUCT_STUB_FRAME) \
- V(GETTER_STUB_FRAME) \
- V(SETTER_STUB_FRAME) \
- V(ARGUMENTS_ADAPTOR_FRAME) \
- V(TAIL_CALLER_FRAME) \
- V(COMPILED_STUB_FRAME) \
- V(DUPLICATED_OBJECT) \
- V(ARGUMENTS_OBJECT) \
- V(ARGUMENTS_ELEMENTS) \
- V(ARGUMENTS_LENGTH) \
- V(CAPTURED_OBJECT) \
- V(REGISTER) \
- V(INT32_REGISTER) \
- V(UINT32_REGISTER) \
- V(BOOL_REGISTER) \
- V(FLOAT_REGISTER) \
- V(DOUBLE_REGISTER) \
- V(STACK_SLOT) \
- V(INT32_STACK_SLOT) \
- V(UINT32_STACK_SLOT) \
- V(BOOL_STACK_SLOT) \
- V(FLOAT_STACK_SLOT) \
- V(DOUBLE_STACK_SLOT) \
+#define TRANSLATION_OPCODE_LIST(V) \
+ V(BEGIN) \
+ V(JS_FRAME) \
+ V(INTERPRETED_FRAME) \
+ V(BUILTIN_CONTINUATION_FRAME) \
+ V(JAVA_SCRIPT_BUILTIN_CONTINUATION_FRAME) \
+ V(CONSTRUCT_STUB_FRAME) \
+ V(GETTER_STUB_FRAME) \
+ V(SETTER_STUB_FRAME) \
+ V(ARGUMENTS_ADAPTOR_FRAME) \
+ V(TAIL_CALLER_FRAME) \
+ V(COMPILED_STUB_FRAME) \
+ V(DUPLICATED_OBJECT) \
+ V(ARGUMENTS_OBJECT) \
+ V(ARGUMENTS_ELEMENTS) \
+ V(ARGUMENTS_LENGTH) \
+ V(CAPTURED_OBJECT) \
+ V(REGISTER) \
+ V(INT32_REGISTER) \
+ V(UINT32_REGISTER) \
+ V(BOOL_REGISTER) \
+ V(FLOAT_REGISTER) \
+ V(DOUBLE_REGISTER) \
+ V(STACK_SLOT) \
+ V(INT32_STACK_SLOT) \
+ V(UINT32_STACK_SLOT) \
+ V(BOOL_STACK_SLOT) \
+ V(FLOAT_STACK_SLOT) \
+ V(DOUBLE_STACK_SLOT) \
V(LITERAL)
class Translation BASE_EMBEDDED {
@@ -980,6 +990,10 @@ class Translation BASE_EMBEDDED {
void BeginTailCallerFrame(int literal_id);
void BeginConstructStubFrame(BailoutId bailout_id, int literal_id,
unsigned height);
+ void BeginBuiltinContinuationFrame(BailoutId bailout_id, int literal_id,
+ unsigned height);
+ void BeginJavaScriptBuiltinContinuationFrame(BailoutId bailout_id,
+ int literal_id, unsigned height);
void BeginGetterStubFrame(int literal_id);
void BeginSetterStubFrame(int literal_id);
void BeginArgumentsObject(int args_length);
« no previous file with comments | « src/compiler/js-call-reducer.cc ('k') | src/deoptimizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698