Chromium Code Reviews| Index: src/compiler/bytecode-graph-builder.h |
| diff --git a/src/compiler/bytecode-graph-builder.h b/src/compiler/bytecode-graph-builder.h |
| index 16e1f2180be53c2b04ce8f7affdfacc236a2b917..e57615655cccff8869da3afa8488659c06d28a79 100644 |
| --- a/src/compiler/bytecode-graph-builder.h |
| +++ b/src/compiler/bytecode-graph-builder.h |
| @@ -7,6 +7,7 @@ |
| #include "src/compiler.h" |
| #include "src/compiler/bytecode-branch-analysis.h" |
| +#include "src/compiler/bytecode-loop-analysis.h" |
| #include "src/compiler/js-graph.h" |
| #include "src/interpreter/bytecode-array-iterator.h" |
| #include "src/interpreter/bytecode-flags.h" |
| @@ -147,6 +148,12 @@ class BytecodeGraphBuilder { |
| // Simulates control flow that exits the function body. |
| void MergeControlToLeaveFunction(Node* exit); |
| + // Builds loop exit nodes for every exited loop between {origin_offset} and |
| + // {target_offset}. |
|
Michael Starzinger
2016/07/29 08:54:46
nit: s/{origin_offset}/the current bytecode offset
Jarin
2016/07/29 11:36:46
Done.
|
| + void BuildLoopExitsForBranch(int target_offset); |
| + void BuildLoopExitsForFunctionExit(); |
| + void BuildLoopExitsUntilLoop(int loop_offset); |
| + |
| // Simulates entry and exit of exception handlers. |
| void EnterAndExitExceptionHandlers(int current_offset); |
| @@ -206,6 +213,12 @@ class BytecodeGraphBuilder { |
| branch_analysis_ = branch_analysis; |
| } |
| + const BytecodeLoopAnalysis* loop_analysis() const { return loop_analysis_; } |
| + |
| + void set_loop_analysis(const BytecodeLoopAnalysis* loop_analysis) { |
| + loop_analysis_ = loop_analysis; |
| + } |
| + |
| #define DECLARE_VISIT_BYTECODE(name, ...) void Visit##name(); |
| BYTECODE_LIST(DECLARE_VISIT_BYTECODE) |
| #undef DECLARE_VISIT_BYTECODE |
| @@ -218,6 +231,7 @@ class BytecodeGraphBuilder { |
| const FrameStateFunctionInfo* frame_state_function_info_; |
| const interpreter::BytecodeArrayIterator* bytecode_iterator_; |
| const BytecodeBranchAnalysis* branch_analysis_; |
| + const BytecodeLoopAnalysis* loop_analysis_; |
| Environment* environment_; |
| BailoutId osr_ast_id_; |