MIPS: Fix bugs in IfBuilder and improve functionality
Port r14327 (21310b91) BUG= Review URL: https://codereview.chromium.org/14246017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
80adb58933
commit
bd03455c4e
@ -823,11 +823,15 @@ void LChunkBuilder::DoBasicBlock(HBasicBlock* block, HBasicBlock* next_block) {
|
||||
HEnvironment* last_environment = pred->last_environment();
|
||||
for (int i = 0; i < block->phis()->length(); ++i) {
|
||||
HPhi* phi = block->phis()->at(i);
|
||||
last_environment->SetValueAt(phi->merged_index(), phi);
|
||||
if (phi->merged_index() < last_environment->length()) {
|
||||
last_environment->SetValueAt(phi->merged_index(), phi);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < block->deleted_phis()->length(); ++i) {
|
||||
last_environment->SetValueAt(block->deleted_phis()->at(i),
|
||||
graph_->GetConstantUndefined());
|
||||
if (block->deleted_phis()->at(i) < last_environment->length()) {
|
||||
last_environment->SetValueAt(block->deleted_phis()->at(i),
|
||||
graph_->GetConstantUndefined());
|
||||
}
|
||||
}
|
||||
block->UpdateEnvironment(last_environment);
|
||||
// Pick up the outgoing argument count of one of the predecessors.
|
||||
|
Loading…
Reference in New Issue
Block a user