Lines Matching refs:BrI
263 void visitBranchesFrom(const MachineInstr &BrI);
306 // (3) Given a branch instruction BrI, compute the set of target blocks.
317 virtual bool evaluate(const MachineInstr &BrI, const CellMap &Inputs,
731 void MachineConstPropagator::visitBranchesFrom(const MachineInstr &BrI) {
732 const MachineBasicBlock &B = *BrI.getParent();
734 MachineBasicBlock::const_iterator It = BrI.getIterator();
1848 bool evaluate(const MachineInstr &BrI, const CellMap &Inputs,
1880 bool rewriteHexBranch(MachineInstr &BrI, const CellMap &Inputs);
2258 bool HexagonConstEvaluator::evaluate(const MachineInstr &BrI,
2263 unsigned Opc = BrI.getOpcode();
2280 Targets.insert(BrI.getOperand(0).getMBB());
2287 FallsThru = !BrI.isUnconditionalBranch();
2292 const MachineOperand &MD = BrI.getOperand(0);
2313 const MachineBasicBlock *BranchTarget = BrI.getOperand(1).getMBB();
3133 bool HexagonConstEvaluator::rewriteHexBranch(MachineInstr &BrI,
3135 MachineBasicBlock &B = *BrI.getParent();
3136 unsigned NumOp = BrI.getNumOperands();
3142 bool Eval = evaluate(BrI, Inputs, Targets, FallsThru);
3146 if (BrI.getOpcode() == Hexagon::J2_jump)
3149 LLVM_DEBUG(dbgs() << "Rewrite(" << printMBBReference(B) << "):" << BrI);
3159 // as executable here, so we need to overwrite the BrI, which we
3162 auto NI = BuildMI(B, BrI.getIterator(), BrI.getDebugLoc(), JD)
3164 BrI.setDesc(JD);
3165 while (BrI.getNumOperands() > 0)
3166 BrI.removeOperand(0);
3170 BrI.addOperand(Op);
3180 replaceWithNop(BrI);