Lines Matching defs:MBBI

193   bool tryToMergeZeroStInst(MachineBasicBlock::iterator &MBBI);
196 bool tryToPairLdStInst(MachineBasicBlock::iterator &MBBI);
199 bool tryToPromoteLoadFromStore(MachineBasicBlock::iterator &MBBI);
202 bool tryToMergeLdStUpdate(MachineBasicBlock::iterator &MBBI);
1297 MachineBasicBlock::iterator MBBI = I;
1303 if (MBBI == B)
1313 MBBI = prev_nodbg(MBBI, B);
1314 MachineInstr &MI = *MBBI;
1332 StoreI = MBBI;
1350 } while (MBBI != B && Count < Limit);
1686 MachineBasicBlock::iterator MBBI = I;
1689 MBBI = next_nodbg(MBBI, E);
1718 for (unsigned Count = 0; MBBI != E && Count < Limit;
1719 MBBI = next_nodbg(MBBI, E)) {
1720 MachineInstr &MI = *MBBI;
1889 return MBBI;
1908 return MBBI;
1917 MBBIWithRenameReg = MBBI;
2104 MachineBasicBlock::iterator MBBI = I;
2135 MBBI = next_nodbg(MBBI, E);
2138 // the memory access (I) and the increment (MBBI) can access the memory
2139 // region defined by [SP, MBBI].
2148 for (unsigned Count = 0; MBBI != E && Count < Limit;
2149 MBBI = next_nodbg(MBBI, E)) {
2150 MachineInstr &MI = *MBBI;
2159 return MBBI;
2170 (BaseRegSP && MBBI->mayLoadOrStore()))
2181 MachineBasicBlock::iterator MBBI = I;
2189 if (MBBI == B || Offset != 0)
2221 MBBI = prev_nodbg(MBBI, B);
2222 MachineInstr &MI = *MBBI;
2233 if (MemAcessBeforeSPPreInc && MBBI->getOperand(2).getImm() > RedZoneSize)
2235 return MBBI;
2249 if (BaseRegSP && MBBI->mayLoadOrStore())
2251 } while (MBBI != B && Count < Limit);
2256 MachineBasicBlock::iterator &MBBI) {
2257 MachineInstr &MI = *MBBI;
2272 if (findMatchingStore(MBBI, LdStLimit, StoreI)) {
2277 MBBI = promoteLoadFromStore(MBBI, StoreI);
2285 MachineBasicBlock::iterator &MBBI) {
2286 assert(isPromotableZeroStoreInst(*MBBI) && "Expected narrow store.");
2287 MachineInstr &MI = *MBBI;
2296 findMatchingInsn(MBBI, Flags, LdStLimit, /* FindNarrowMerge = */ true);
2302 MBBI = mergeNarrowZeroStores(MBBI, MergeMI, Flags);
2310 bool AArch64LoadStoreOpt::tryToPairLdStInst(MachineBasicBlock::iterator &MBBI) {
2311 MachineInstr &MI = *MBBI;
2340 findMatchingInsn(MBBI, Flags, LdStLimit, /* FindNarrowMerge = */ false);
2344 auto Prev = std::prev(MBBI);
2377 MBBI = mergePairedInsns(MBBI, Paired, Flags);
2379 // MBBI.
2380 for (auto I = std::next(Prev); I != MBBI; I++)
2389 (MachineBasicBlock::iterator &MBBI) {
2390 MachineInstr &MI = *MBBI;
2399 Update = findMatchingUpdateInsnForward(MBBI, 0, UpdateLimit);
2402 MBBI = mergeUpdateInsn(MBBI, Update, /*IsPreIdx=*/false);
2415 Update = findMatchingUpdateInsnBackward(MBBI, UpdateLimit);
2418 MBBI = mergeUpdateInsn(MBBI, Update, /*IsPreIdx=*/true);
2433 Update = findMatchingUpdateInsnForward(MBBI, UnscaledOffset, UpdateLimit);
2436 MBBI = mergeUpdateInsn(MBBI, Update, /*IsPreIdx=*/true);
2457 for (MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
2458 MBBI != E;) {
2459 if (isPromotableLoadFromStore(*MBBI) && tryToPromoteLoadFromStore(MBBI))
2462 ++MBBI;
2476 for (MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
2477 MBBI != E;) {
2478 if (isPromotableZeroStoreInst(*MBBI) && tryToMergeZeroStInst(MBBI))
2481 ++MBBI;
2496 for (MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
2497 MBBI != E;) {
2500 updateDefinedRegisters(*MBBI, DefinedInBB, TRI);
2501 if (TII->isPairableLdStInst(*MBBI) && tryToPairLdStInst(MBBI))
2504 ++MBBI;
2513 for (MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
2514 MBBI != E;) {
2515 if (isMergeableLdStUpdate(*MBBI) && tryToMergeLdStUpdate(MBBI))
2518 ++MBBI;