Chromium Code Reviews| Index: src/compiler/bytecode-graph-builder.cc |
| diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc |
| index b3178262d44f2ab3a9cbc8e9f8dd48202443aba6..bbaf7d1c6b25acc74d83f1a9c3dd22689d846ff9 100644 |
| --- a/src/compiler/bytecode-graph-builder.cc |
| +++ b/src/compiler/bytecode-graph-builder.cc |
| @@ -7,7 +7,6 @@ |
| #include "src/ast/ast.h" |
| #include "src/ast/scopes.h" |
| #include "src/compilation-info.h" |
| -#include "src/compiler/bytecode-branch-analysis.h" |
| #include "src/compiler/compiler-source-position-table.h" |
| #include "src/compiler/linkage.h" |
| #include "src/compiler/operator-properties.h" |
| @@ -638,12 +637,9 @@ void BytecodeGraphBuilder::ClearNonLiveSlotsInFrameStates() { |
| } |
| void BytecodeGraphBuilder::VisitBytecodes(bool stack_check) { |
| - BytecodeBranchAnalysis analysis(bytecode_array(), local_zone()); |
| - BytecodeLoopAnalysis loop_analysis(bytecode_array(), &analysis, local_zone()); |
| - analysis.Analyze(); |
| - loop_analysis.Analyze(); |
| - set_branch_analysis(&analysis); |
| - set_loop_analysis(&loop_analysis); |
| + BytecodeAnalysis bytecode_analysis(bytecode_array(), local_zone()); |
| + bytecode_analysis.Analyze(); |
| + set_bytecode_analysis(&bytecode_analysis); |
| interpreter::BytecodeArrayIterator iterator(bytecode_array()); |
| set_bytecode_iterator(&iterator); |
| @@ -677,8 +673,7 @@ void BytecodeGraphBuilder::VisitBytecodes(bool stack_check) { |
| } |
| } |
| } |
| - |
| - set_branch_analysis(nullptr); |
| + set_bytecode_analysis(nullptr); |
| set_bytecode_iterator(nullptr); |
| DCHECK(exception_handlers_.empty()); |
| } |
| @@ -1905,7 +1900,7 @@ void BytecodeGraphBuilder::SwitchToMergeEnvironment(int current_offset) { |
| } |
| void BytecodeGraphBuilder::BuildLoopHeaderEnvironment(int current_offset) { |
| - if (branch_analysis()->backward_branches_target(current_offset)) { |
| + if (bytecode_analysis()->IsLoopHeader(current_offset)) { |
| // Add loop header and store a copy so we can connect merged back |
| // edge inputs to the loop header. |
| merge_environments_[current_offset] = environment()->CopyForLoop(); |
| @@ -1950,7 +1945,7 @@ void BytecodeGraphBuilder::BuildOSRNormalEntryPoint() { |
| NewNode(common()->OsrNormalEntry()); |
| // Note that the requested OSR entry point must be the target of a backward |
| // branch, otherwise there will not be a proper loop header available. |
|
rmcilroy
2016/11/22 11:02:07
nit - update comment
Leszek Swirski
2016/11/22 17:39:03
Done.
|
| - DCHECK(branch_analysis()->backward_branches_target(osr_ast_id_.ToInt())); |
| + DCHECK(bytecode_analysis()->IsLoopHeader(osr_ast_id_.ToInt())); |
| } |
| } |
| @@ -1958,17 +1953,18 @@ void BytecodeGraphBuilder::BuildLoopExitsForBranch(int target_offset) { |
| int origin_offset = bytecode_iterator().current_offset(); |
| // Only build loop exits for forward edges. |
| if (target_offset > origin_offset) { |
| - BuildLoopExitsUntilLoop(loop_analysis()->GetLoopOffsetFor(target_offset)); |
| + BuildLoopExitsUntilLoop( |
| + bytecode_analysis()->GetLoopOffsetFor(target_offset)); |
| } |
| } |
| void BytecodeGraphBuilder::BuildLoopExitsUntilLoop(int loop_offset) { |
| int origin_offset = bytecode_iterator().current_offset(); |
| - int current_loop = loop_analysis()->GetLoopOffsetFor(origin_offset); |
| + int current_loop = bytecode_analysis()->GetLoopOffsetFor(origin_offset); |
| while (loop_offset < current_loop) { |
| Node* loop_node = merge_environments_[current_loop]->GetControlDependency(); |
| environment()->PrepareForLoopExit(loop_node); |
| - current_loop = loop_analysis()->GetParentLoopFor(current_loop); |
| + current_loop = bytecode_analysis()->GetParentLoopFor(current_loop); |
| } |
| } |