void MBasicBlock::discardAllPhiOperands() { for (MPhiIterator iter = phisBegin(); iter != phisEnd(); iter++) iter->removeAllOperands(); for (MBasicBlock **pred = predecessors_.begin(); pred != predecessors_.end(); pred++) (*pred)->setSuccessorWithPhis(nullptr, 0); }
MPhiIterator MBasicBlock::discardPhiAt(MPhiIterator &at) { JS_ASSERT(!phis_.empty()); at->removeAllOperands(); MPhiIterator result = phis_.removeAt(at); if (phis_.empty()) { for (MBasicBlock **pred = predecessors_.begin(); pred != predecessors_.end(); pred++) (*pred)->setSuccessorWithPhis(nullptr, 0); } return result; }