Home | History | Annotate | Download | only in Mips

Lines Matching refs:Br

55     MachineInstr *Br;
57 MBBInfo() : Size(0), HasLongBranch(false), Br(nullptr) {}
80 int64_t computeOffset(const MachineInstr *Br);
81 void replaceBranch(MachineBasicBlock &MBB, Iter Br, DebugLoc DL,
102 /// Iterate over list of Br's operands and search for a MachineBasicBlock
104 static MachineBasicBlock *getTargetMBB(const MachineInstr &Br) {
105 for (unsigned I = 0, E = Br.getDesc().getNumOperands(); I < E; ++I) {
106 const MachineOperand &MO = Br.getOperand(I);
184 ReverseIter Br = getNonDebugInstr(MBB->rbegin(), End);
186 if ((Br != End) && !Br->isIndirectBranch() &&
187 (Br->isConditionalBranch() ||
188 (Br->isUnconditionalBranch() &&
190 MBBInfos[I].Br = (++Br).base();
195 int64_t MipsLongBranch::computeOffset(const MachineInstr *Br) {
197 int ThisMBB = Br->getParent()->getNumber();
198 int TargetMBB = getTargetMBB(*Br)->getNumber();
215 // Replace Br with a branch which has the opposite condition code and a
217 void MipsLongBranch::replaceBranch(MachineBasicBlock &MBB, Iter Br,
221 unsigned NewOpc = TII->getOppositeBranchOpc(Br->getOpcode());
224 MachineInstrBuilder MIB = BuildMI(MBB, Br, DL, NewDesc);
226 for (unsigned I = 0, E = Br->getDesc().getNumOperands(); I < E; ++I) {
227 MachineOperand &MO = Br->getOperand(I);
241 assert(Br->isBundledWithSucc());
242 MachineBasicBlock::instr_iterator II(Br);
244 Br->eraseFromParent();
250 MachineBasicBlock *MBB = I.Br->getParent(), *TgtMBB = getTargetMBB(*I.Br);
251 DebugLoc DL = I.Br->getDebugLoc();
427 if (I.Br->isUnconditionalBranch()) {
429 assert(I.Br->getDesc().getNumOperands() == 1);
430 I.Br->RemoveOperand(0);
431 I.Br->addOperand(MachineOperand::CreateMBB(LongBrMBB));
434 replaceBranch(*MBB, I.Br, DL, FallThroughMBB);
474 if (!I->Br || I->HasLongBranch)
478 int64_t Offset = computeOffset(I->Br) / ShVal;