bool RangeAnalysis::analyze() { IonSpew(IonSpew_Range, "Doing range propagation"); for (ReversePostorderIterator iter(graph_.rpoBegin()); iter != graph_.rpoEnd(); iter++) { MBasicBlock *block = *iter; for (MDefinitionIterator iter(block); iter; iter++) { MDefinition *def = *iter; def->computeRange(); IonSpew(IonSpew_Range, "computing range on %d", def->id()); SpewRange(def); } if (block->isLoopHeader()) analyzeLoop(block); } return true; }