Lines Matching defs:BBI

113     // loops - The outer loop finds the load immediates BBI that could be used
115 // after BBI to find redundancy and update kill/dead flags accordingly. If
116 // AfterBBI is the same as BBI, it is redundant, otherwise any instructions
117 // that modify the def register of BBI would break the scanning.
119 // kill/dead flag set. It keeps track of the def register of BBI, the use
127 for (auto BBI = MBB.instr_begin(); BBI != MBB.instr_end(); ++BBI) {
130 if (InstrsToErase.contains(&*BBI))
133 unsigned Opc = BBI->getOpcode();
139 if (!BBI->getOperand(1).isImm())
141 assert(BBI->getOperand(0).isReg() &&
144 LLVM_DEBUG(dbgs() << "Scanning after load immediate: "; BBI->dump(););
146 Register Reg = BBI->getOperand(0).getReg();
147 int64_t Imm = BBI->getOperand(1).getImm();
149 if (BBI->getOperand(0).isDead()) {
150 DeadOrKillToUnset = &BBI->getOperand(0);
152 << " from load immediate " << *BBI
155 // This loop scans instructions after BBI to see if there is any
157 for (auto AfterBBI = std::next(BBI); AfterBBI != MBB.instr_end();
270 for (auto BBI = MBB.instr_begin(); BBI != MBB.instr_end(); ++BBI) {
272 if (isGOTPLDpc(*BBI)) {
273 GOTDefUsePair CurrentPair{BBI, MachineBasicBlock::iterator(),
274 BBI->getOperand(0).getReg(),
291 if (!BBI->readsRegister(Pair.DefReg, TRI) &&
292 !BBI->modifiesRegister(Pair.DefReg, TRI))
298 hasPCRelativeForm(*BBI) ? &BBI->getOperand(2) : nullptr;
303 Pair.UseInst = BBI;
304 Pair.UseReg = BBI->getOperand(0).getReg();
319 MachineBasicBlock::iterator BBI = Pair->DefInst;
320 ++BBI;
321 for (; BBI != Pair->UseInst; ++BBI) {
322 if (BBI->readsRegister(Pair->UseReg, TRI) ||
323 BBI->modifiesRegister(Pair->UseReg, TRI)) {
375 for (MachineInstr &BBI : MBB.instrs()) {
376 unsigned Opc = BBI.getOpcode();
380 Register Acc = BBI.getOperand(0).getReg();
383 Candidates[Acc - PPC::ACC0] = &BBI;
388 Register Acc = BBI.getOperand(0).getReg();
393 InstrsToErase.insert(&BBI);
399 for (MachineOperand &Operand : BBI.operands()) {