Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 5c573feb198c9cddc227186db482388bad94bdb7..75712a71ef8c12ba6d1b2089da90374d79498e6a 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -752,6 +752,7 @@ void HGraphBuilder::IfBuilder::AddCompare(HControlInstruction* compare) { |
compare->SetSuccessorAt(1, split_edge); |
} |
split_edge->GotoNoSimulate(split_edge_merge_block_); |
+ ASSERT(builder_->SafeToAddPhiInNoSideEffectsScope()); |
} else { |
compare->SetSuccessorAt(0, first_true_block_); |
compare->SetSuccessorAt(1, first_false_block_); |
@@ -769,6 +770,7 @@ void HGraphBuilder::IfBuilder::Or() { |
split_edge_merge_block_ = |
builder_->CreateBasicBlock(env->Copy()); |
first_true_block_->GotoNoSimulate(split_edge_merge_block_); |
+ ASSERT(builder_->SafeToAddPhiInNoSideEffectsScope()); |
first_true_block_ = split_edge_merge_block_; |
} |
builder_->set_current_block(first_false_block_); |
@@ -783,6 +785,7 @@ void HGraphBuilder::IfBuilder::And() { |
if (split_edge_merge_block_ == NULL) { |
split_edge_merge_block_ = builder_->CreateBasicBlock(env->Copy()); |
first_false_block_->GotoNoSimulate(split_edge_merge_block_); |
+ ASSERT(builder_->SafeToAddPhiInNoSideEffectsScope()); |
first_false_block_ = split_edge_merge_block_; |
} |
builder_->set_current_block(first_true_block_); |
@@ -814,6 +817,7 @@ void HGraphBuilder::IfBuilder::Then() { |
// Handle if's without any expressions, they jump directly to the "else" |
// branch. |
builder_->current_block()->GotoNoSimulate(first_false_block_); |
+ ASSERT(builder_->SafeToAddPhiInNoSideEffectsScope()); |
first_true_block_ = NULL; |
} |
builder_->set_current_block(first_true_block_); |
@@ -876,6 +880,7 @@ void HGraphBuilder::IfBuilder::End() { |
ASSERT(!last_false_block->IsFinished()); |
last_true_block_->GotoNoSimulate(merge_block_); |
last_false_block->GotoNoSimulate(merge_block_); |
+ ASSERT(builder_->SafeToAddPhiInNoSideEffectsScope()); |
builder_->set_current_block(merge_block_); |
} |
} |
@@ -908,6 +913,7 @@ HValue* HGraphBuilder::LoopBuilder::BeginBody( |
phi_->ChangeRepresentation(Representation::Integer32()); |
env->Push(initial); |
builder_->current_block()->GotoNoSimulate(header_block_); |
+ ASSERT(builder_->SafeToAddPhiInNoSideEffectsScope()); |
HEnvironment* body_env = env->Copy(); |
HEnvironment* exit_env = env->Copy(); |
@@ -962,6 +968,7 @@ void HGraphBuilder::LoopBuilder::EndBody() { |
// Push the new increment value on the expression stack to merge into the phi. |
builder_->environment()->Push(increment_); |
builder_->current_block()->GotoNoSimulate(header_block_); |
+ ASSERT(builder_->SafeToAddPhiInNoSideEffectsScope()); |
header_block_->loop_information()->RegisterBackEdge(body_block_); |
builder_->set_current_block(exit_block_); |
@@ -8176,6 +8183,7 @@ HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess( |
access->set_position(position); |
} |
if_jsarray->GotoNoSimulate(join); |
+ ASSERT(SafeToAddPhiInNoSideEffectsScope()); |
set_current_block(if_fastobject); |
length = AddInstruction(new(zone()) HFixedArrayBaseLength(elements)); |
@@ -8202,6 +8210,7 @@ HValue* HOptimizedGraphBuilder::HandlePolymorphicElementAccess( |
Push(access); |
} |
current_block()->GotoNoSimulate(join); |
+ ASSERT(SafeToAddPhiInNoSideEffectsScope()); |
set_current_block(if_false); |
} |
} |