bool AlphaBSel::runOnMachineFunction(MachineFunction &Fn) { for (MachineFunction::iterator MFI = Fn.begin(), E = Fn.end(); MFI != E; ++MFI) { MachineBasicBlock *MBB = MFI; for (MachineBasicBlock::iterator MBBI = MBB->begin(), EE = MBB->end(); MBBI != EE; ++MBBI) { if (MBBI->getOpcode() == Alpha::COND_BRANCH_I || MBBI->getOpcode() == Alpha::COND_BRANCH_F) { // condbranch operands: // 0. bc opcode // 1. reg // 2. target MBB const TargetInstrInfo *TII = Fn.getTarget().getInstrInfo(); MBBI->setInstrDescriptor(TII->get(MBBI->getOperand(0).getImm())); } } } return true; }