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..dc41e55dd6b41b4950c110b092ebba9736e50e75 100644 |
--- a/src/compiler/bytecode-graph-builder.cc |
+++ b/src/compiler/bytecode-graph-builder.cc |
@@ -1896,11 +1896,12 @@ void BytecodeGraphBuilder::VisitIllegal() { |
void BytecodeGraphBuilder::VisitNop() {} |
void BytecodeGraphBuilder::SwitchToMergeEnvironment(int current_offset) { |
- if (merge_environments_[current_offset] != nullptr) { |
+ auto it = merge_environments_.find(current_offset); |
Michael Starzinger
2016/12/01 14:47:48
question: Any reason to use an iterator here and a
Leszek Swirski
2016/12/01 14:52:36
Indeed there is: the find+iterator does not create
Michael Starzinger
2016/12/01 15:00:51
Yes, I would prefer that. Thanks!
Michael Starzinger
2016/12/01 17:00:43
As discussed offline: Either is fine with me. Take
|
+ if (it != merge_environments_.end()) { |
if (environment() != nullptr) { |
- merge_environments_[current_offset]->Merge(environment()); |
+ it->second->Merge(environment()); |
} |
- set_environment(merge_environments_[current_offset]); |
+ set_environment(it->second); |
} |
} |
@@ -1914,15 +1915,16 @@ void BytecodeGraphBuilder::BuildLoopHeaderEnvironment(int current_offset) { |
void BytecodeGraphBuilder::MergeIntoSuccessorEnvironment(int target_offset) { |
BuildLoopExitsForBranch(target_offset); |
- if (merge_environments_[target_offset] == nullptr) { |
+ Environment*& merge_environment = merge_environments_[target_offset]; |
+ if (merge_environment == nullptr) { |
// Append merge nodes to the environment. We may merge here with another |
// environment. So add a place holder for merge nodes. We may add redundant |
// but will be eliminated in a later pass. |
// TODO(mstarzinger): Be smarter about this! |
NewMerge(); |
- merge_environments_[target_offset] = environment(); |
+ merge_environment = environment(); |
} else { |
- merge_environments_[target_offset]->Merge(environment()); |
+ merge_environment->Merge(environment()); |
} |
set_environment(nullptr); |
} |