Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index 7ec65df28ddcf9d3d6866473dbfb5226f0359475..548a3650796c5ccd8bb52049ca97652bc8065ca4 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -2982,11 +2982,10 @@ bool HGraph::Optimize(SmartArrayPointer<char>* bailout_reason) { |
// Eliminate redundant stack checks on backwards branches. |
Run<HStackCheckEliminationPhase>(); |
- if (FLAG_idefs) SetupInformativeDefinitions(); |
- if (FLAG_array_bounds_checks_elimination && !FLAG_idefs) { |
+ if (FLAG_array_bounds_checks_elimination) { |
Run<HBoundsCheckEliminationPhase>(); |
} |
- if (FLAG_array_bounds_checks_hoisting && !FLAG_idefs) { |
+ if (FLAG_array_bounds_checks_hoisting) { |
Run<HBoundsCheckHoistingPhase>(); |
} |
if (FLAG_array_index_dehoisting) Run<HDehoistIndexComputationsPhase>(); |
@@ -2998,50 +2997,6 @@ bool HGraph::Optimize(SmartArrayPointer<char>* bailout_reason) { |
} |
-void HGraph::SetupInformativeDefinitionsInBlock(HBasicBlock* block) { |
- for (int phi_index = 0; phi_index < block->phis()->length(); phi_index++) { |
- HPhi* phi = block->phis()->at(phi_index); |
- phi->AddInformativeDefinitions(); |
- phi->SetFlag(HValue::kIDefsProcessingDone); |
- // We do not support phis that "redefine just one operand". |
- ASSERT(!phi->IsInformativeDefinition()); |
- } |
- |
- for (HInstructionIterator it(block); !it.Done(); it.Advance()) { |
- HInstruction* i = it.Current(); |
- i->AddInformativeDefinitions(); |
- i->SetFlag(HValue::kIDefsProcessingDone); |
- i->UpdateRedefinedUsesWhileSettingUpInformativeDefinitions(); |
- } |
-} |
- |
- |
-// This method is recursive, so if its stack frame is large it could |
-// cause a stack overflow. |
-// To keep the individual stack frames small we do the actual work inside |
-// SetupInformativeDefinitionsInBlock(); |
-void HGraph::SetupInformativeDefinitionsRecursively(HBasicBlock* block) { |
- SetupInformativeDefinitionsInBlock(block); |
- for (int i = 0; i < block->dominated_blocks()->length(); ++i) { |
- SetupInformativeDefinitionsRecursively(block->dominated_blocks()->at(i)); |
- } |
- |
- for (HInstructionIterator it(block); !it.Done(); it.Advance()) { |
- HInstruction* i = it.Current(); |
- if (i->IsBoundsCheck()) { |
- HBoundsCheck* check = HBoundsCheck::cast(i); |
- check->ApplyIndexChange(); |
- } |
- } |
-} |
- |
- |
-void HGraph::SetupInformativeDefinitions() { |
- HPhase phase("H_Setup informative definitions", this); |
- SetupInformativeDefinitionsRecursively(entry_block()); |
-} |
- |
- |
void HGraph::RestoreActualValues() { |
HPhase phase("H_Restore actual values", this); |