Lines Matching refs:Br

270     bool fixupImmediateBr(ImmBranch &Br);
271 bool fixupConditionalBr(ImmBranch &Br);
272 bool fixupUnconditionalBr(ImmBranch &Br);
1705 bool ARMConstantIslands::fixupImmediateBr(ImmBranch &Br) { in fixupImmediateBr() argument
1706 MachineInstr *MI = Br.MI; in fixupImmediateBr()
1710 if (BBUtils->isBBInRange(MI, DestBB, Br.MaxDisp)) in fixupImmediateBr()
1713 if (!Br.isCond) in fixupImmediateBr()
1714 return fixupUnconditionalBr(Br); in fixupImmediateBr()
1715 return fixupConditionalBr(Br); in fixupImmediateBr()
1723 ARMConstantIslands::fixupUnconditionalBr(ImmBranch &Br) { in fixupUnconditionalBr() argument
1724 MachineInstr *MI = Br.MI; in fixupUnconditionalBr()
1733 Br.MaxDisp = (1 << 21) * 2; in fixupUnconditionalBr()
1749 ARMConstantIslands::fixupConditionalBr(ImmBranch &Br) { in fixupConditionalBr() argument
1750 MachineInstr *MI = Br.MI; in fixupConditionalBr()
1774 BMI->getOpcode() == Br.UncondBr) { in fixupConditionalBr()
1783 if (BBUtils->isBBInRange(MI, NewDest, Br.MaxDisp)) { in fixupConditionalBr()
1820 Br.MI = &MBB->back(); in fixupConditionalBr()
1823 BuildMI(MBB, DebugLoc(), TII->get(Br.UncondBr)) in fixupConditionalBr()
1827 BuildMI(MBB, DebugLoc(), TII->get(Br.UncondBr)).addMBB(DestBB); in fixupConditionalBr()
1829 unsigned MaxDisp = getUnconditionalBrDisp(Br.UncondBr); in fixupConditionalBr()
1830 ImmBranches.push_back(ImmBranch(&MBB->back(), MaxDisp, false, Br.UncondBr)); in fixupConditionalBr()
1894 auto TryShrinkBranch = [this](ImmBranch &Br) { in optimizeThumb2Branches() argument
1895 unsigned Opcode = Br.MI->getOpcode(); in optimizeThumb2Branches()
1914 MachineBasicBlock *DestBB = Br.MI->getOperand(0).getMBB(); in optimizeThumb2Branches()
1915 if (BBUtils->isBBInRange(Br.MI, DestBB, MaxOffs)) { in optimizeThumb2Branches()
1916 LLVM_DEBUG(dbgs() << "Shrink branch: " << *Br.MI); in optimizeThumb2Branches()
1917 Br.MI->setDesc(TII->get(NewOpc)); in optimizeThumb2Branches()
1918 MachineBasicBlock *MBB = Br.MI->getParent(); in optimizeThumb2Branches()
1933 auto FindCmpForCBZ = [this](ImmBranch &Br, ImmCompare &ImmCmp, in optimizeThumb2Branches()
1940 if (!Br.MI->killsRegister(ARM::CPSR, /*TRI=*/nullptr)) in optimizeThumb2Branches()
1945 ARMCC::CondCodes Pred = getInstrPredicate(*Br.MI, PredReg); in optimizeThumb2Branches()
1955 unsigned BrOffset = BBUtils->getOffsetOf(Br.MI) + 4 - 2; in optimizeThumb2Branches()
1963 MachineInstr *CmpMI = findCMPToFoldIntoCBZ(Br.MI, TRI); in optimizeThumb2Branches()
1972 auto TryConvertToLE = [this](ImmBranch &Br, ImmCompare &Cmp) { in optimizeThumb2Branches() argument
1973 if (Br.MI->getOpcode() != ARM::t2Bcc || !STI->hasLOB() || in optimizeThumb2Branches()
1977 MachineBasicBlock *MBB = Br.MI->getParent(); in optimizeThumb2Branches()
1978 MachineBasicBlock *DestBB = Br.MI->getOperand(0).getMBB(); in optimizeThumb2Branches()
1980 !BBUtils->isBBInRange(Br.MI, DestBB, 4094)) in optimizeThumb2Branches()
1990 MachineInstrBuilder MIB = BuildMI(*MBB, Br.MI, Br.MI->getDebugLoc(), in optimizeThumb2Branches()
1993 MIB.add(Br.MI->getOperand(0)); in optimizeThumb2Branches()
1994 Br.MI->eraseFromParent(); in optimizeThumb2Branches()
1995 Br.MI = MIB; in optimizeThumb2Branches()
2007 for (ImmBranch &Br : reverse(ImmBranches)) { in optimizeThumb2Branches()
2008 MachineBasicBlock *DestBB = Br.MI->getOperand(0).getMBB(); in optimizeThumb2Branches()
2009 MachineBasicBlock *MBB = Br.MI->getParent(); in optimizeThumb2Branches()
2010 MachineBasicBlock *ExitBB = &MBB->back() == Br.MI ? in optimizeThumb2Branches()
2015 if (FindCmpForCBZ(Br, Cmp, ExitBB) && TryConvertToLE(Br, Cmp)) { in optimizeThumb2Branches()
2019 FindCmpForCBZ(Br, Cmp, DestBB); in optimizeThumb2Branches()
2020 MadeChange |= TryShrinkBranch(Br); in optimizeThumb2Branches()
2023 unsigned Opcode = Br.MI->getOpcode(); in optimizeThumb2Branches()
2032 MachineBasicBlock::iterator KillMI = Br.MI; in optimizeThumb2Branches()
2044 LLVM_DEBUG(dbgs() << "Fold: " << *Cmp.MI << " and: " << *Br.MI); in optimizeThumb2Branches()
2046 BuildMI(*MBB, Br.MI, Br.MI->getDebugLoc(), TII->get(Cmp.NewOpc)) in optimizeThumb2Branches()
2049 .addMBB(DestBB, Br.MI->getOperand(0).getTargetFlags()); in optimizeThumb2Branches()
2053 if (Br.MI->getOpcode() == ARM::tBcc) { in optimizeThumb2Branches()
2054 Br.MI->eraseFromParent(); in optimizeThumb2Branches()
2055 Br.MI = NewBR; in optimizeThumb2Branches()