Chromium Code Reviews| Index: src/hydrogen.h |
| diff --git a/src/hydrogen.h b/src/hydrogen.h |
| index bc9bc9de05ecd9046eed2677bc0d14f861eae885..75db63da2ca56bc406e8fa3281dd311b8665d855 100644 |
| --- a/src/hydrogen.h |
| +++ b/src/hydrogen.h |
| @@ -42,6 +42,7 @@ namespace internal { |
| // Forward declarations. |
| class BitVector; |
| +class FunctionState; |
| class HEnvironment; |
| class HGraph; |
| class HLoopInformation; |
| @@ -121,7 +122,7 @@ class HBasicBlock: public ZoneObject { |
| void Finish(HControlInstruction* last); |
| void FinishExit(HControlInstruction* instruction); |
| - void Goto(HBasicBlock* block, bool drop_extra = false); |
| + void Goto(HBasicBlock* block, FunctionState* state = NULL); |
| int PredecessorIndexOf(HBasicBlock* predecessor) const; |
| void AddSimulate(int ast_id) { AddInstruction(CreateSimulate(ast_id)); } |
| @@ -136,7 +137,7 @@ class HBasicBlock: public ZoneObject { |
| // instruction and updating the bailout environment. |
| void AddLeaveInlined(HValue* return_value, |
| HBasicBlock* target, |
| - bool drop_extra = false); |
| + FunctionState* state = NULL); |
| // If a target block is tagged as an inline function return, all |
| // predecessors should contain the inlined exit sequence: |
| @@ -715,6 +716,16 @@ class FunctionState { |
| FunctionState* outer() { return outer_; } |
| + HInstruction* entry() { return entry_; } |
| + void set_entry(HInstruction* entry) { entry_ = entry; } |
| + |
| + HInstruction* arguments_elements() { return arguments_elements_; } |
| + void set_arguments_elements(HInstruction* arguments_elements) { |
| + arguments_elements_ = arguments_elements; |
| + } |
| + |
| + bool arguments_pushed() { return arguments_elements() != NULL; } |
| + |
| private: |
| HGraphBuilder* owner_; |
| @@ -741,6 +752,12 @@ class FunctionState { |
| // return blocks. NULL in all other cases. |
| TestContext* test_context_; |
| + // When inlining HEnterInlined instruction corresponding to the function |
| + // entry. |
| + HInstruction* entry_; |
|
Kevin Millikin (Chromium)
2012/04/11 11:49:18
Why not HEnterInlined* and HArgumentsElements* bel
Vyacheslav Egorov (Chromium)
2012/04/11 12:47:28
Done.
|
| + |
| + HInstruction* arguments_elements_; |
| + |
| FunctionState* outer_; |
| }; |