- mii->getOperand(u).getMachineBasicBlock() == src)
- mii->getOperand(u).setMachineBasicBlock(crit_mbb);
+ mii->getOperand(u).getMBB() == src) {
+ reg = mii->getOperand(u-1).getReg();
+ toRemove.push_back(u-1);
+ }
+ // Remove all uses of this MBB
+ for (std::vector<unsigned>::reverse_iterator I = toRemove.rbegin(),
+ E = toRemove.rend(); I != E; ++I) {
+ mii->RemoveOperand(*I+1);
+ mii->RemoveOperand(*I);
+ }
+
+ // Add a single use corresponding to the new MBB
+ mii->addOperand(MachineOperand::CreateReg(reg, false));
+ mii->addOperand(MachineOperand::CreateMBB(crit_mbb));