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

Unified Diff: src/deoptimizer.h

Issue 2692753004: [turbofan] escape analysis supports arguments object and rest elements (Closed)
Patch Set: handle the case where Deoptimizer::function_ is a Smi Created 3 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/compiler/verifier.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 5501ca6cf291f479b5332fd5837e41f28a7d73d7..7668b8fab794b871e8504e93cd2115aaf932807a 100644
--- a/src/deoptimizer.h
+++ b/src/deoptimizer.h
@@ -132,7 +132,8 @@ class TranslatedValue {
Float32 float_value_;
// kind is kDouble
Float64 double_value_;
- // kind is kDuplicatedObject or kArgumentsObject or kCapturedObject.
+ // kind is kDuplicatedObject or kArgumentsObject or
+ // kCapturedObject.
MaterializedObjectInfo materialization_info_;
};
@@ -305,7 +306,7 @@ class TranslatedState {
void Init(Address input_frame_pointer, TranslationIterator* iterator,
FixedArray* literal_array, RegisterValues* registers,
- FILE* trace_file);
+ FILE* trace_file, int parameter_count);
private:
friend TranslatedValue;
@@ -314,12 +315,12 @@ class TranslatedState {
FixedArray* literal_array,
Address fp,
FILE* trace_file);
- TranslatedValue CreateNextTranslatedValue(int frame_index, int value_index,
- TranslationIterator* iterator,
- FixedArray* literal_array,
- Address fp,
- RegisterValues* registers,
- FILE* trace_file);
+ int CreateNextTranslatedValue(int frame_index, TranslationIterator* iterator,
+ FixedArray* literal_array, Address fp,
+ RegisterValues* registers, FILE* trace_file);
+ void CreateArgumentsElementsTranslatedValues(int frame_index,
+ Address input_frame_pointer,
+ bool is_rest);
void UpdateFromPreviouslyMaterializedObjects();
Handle<Object> MaterializeAt(int frame_index, int* value_index);
@@ -337,6 +338,7 @@ class TranslatedState {
Isolate* isolate_;
Address stack_frame_pointer_;
bool has_adapted_arguments_;
+ int formal_parameter_count_;
struct ObjectPosition {
int frame_index_;
@@ -932,6 +934,7 @@ class TranslationIterator BASE_EMBEDDED {
V(COMPILED_STUB_FRAME) \
V(DUPLICATED_OBJECT) \
V(ARGUMENTS_OBJECT) \
+ V(ARGUMENTS_ELEMENTS) \
V(CAPTURED_OBJECT) \
V(REGISTER) \
V(INT32_REGISTER) \
@@ -980,6 +983,7 @@ class Translation BASE_EMBEDDED {
void BeginGetterStubFrame(int literal_id);
void BeginSetterStubFrame(int literal_id);
void BeginArgumentsObject(int args_length);
+ void ArgumentsElements(bool is_rest);
void BeginCapturedObject(int length);
void DuplicateObject(int object_index);
void StoreRegister(Register reg);
« no previous file with comments | « src/compiler/verifier.cc ('k') | src/deoptimizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698