| 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..60710fa8cd59fdc0ff9e129ede62c091ced73b57 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();
|
| @@ -1948,9 +1943,8 @@ void BytecodeGraphBuilder::BuildOSRNormalEntryPoint() {
|
| // For OSR add an {OsrNormalEntry} as the the top-level environment start.
|
| // It will be replaced with {Dead} by the OSR deconstruction.
|
| 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.
|
| - DCHECK(branch_analysis()->backward_branches_target(osr_ast_id_.ToInt()));
|
| + // Note that the requested OSR entry point must be the header of a loop.
|
| + DCHECK(bytecode_analysis()->IsLoopHeader(osr_ast_id_.ToInt()));
|
| }
|
| }
|
|
|
| @@ -1958,17 +1952,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);
|
| }
|
| }
|
|
|
|
|