Lines Matching +full:ri +full:- +full:override
1 //===-- lib/CodeGen/MachineInstrBundle.cpp --------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
34 bool runOnMachineFunction(MachineFunction &MF) override;
43 INITIALIZE_PASS(UnpackMachineBundles, "unpack-mi-bundles",
58 if (MI->isBundle()) { in runOnMachineFunction()
59 while (++MII != MIE && MII->isBundledWithPred()) { in runOnMachineFunction()
60 MII->unbundleFromPred(); in runOnMachineFunction()
61 for (MachineOperand &MO : MII->operands()) { in runOnMachineFunction()
66 MI->eraseFromParent(); in runOnMachineFunction()
93 bool runOnMachineFunction(MachineFunction &MF) override;
99 INITIALIZE_PASS(FinalizeMachineBundles, "finalize-mi-bundles",
112 if (MII->getDebugLoc()) in getDebugLoc()
113 return MII->getDebugLoc(); in getDebugLoc()
117 /// finalizeBundle - Finalize a machine instruction bundle which includes
134 BuildMI(MF, getDebugLoc(FirstMI, LastMI), TII->get(TargetOpcode::BUNDLE)); in finalizeBundle()
148 if (MII->isDebugInstr()) in finalizeBundle()
151 for (MachineOperand &MO : MII->operands()) { in finalizeBundle()
181 Register Reg = MO->getReg(); in finalizeBundle()
187 if (MO->isDead()) { in finalizeBundle()
191 // Re-defined inside the bundle, it's no longer killed. in finalizeBundle()
193 if (!MO->isDead()) in finalizeBundle()
198 if (!MO->isDead() && Reg.isPhysical()) { in finalizeBundle()
199 for (MCPhysReg SubReg : TRI->subregs(Reg)) { in finalizeBundle()
229 if (MII->getFlag(MachineInstr::FrameSetup)) in finalizeBundle()
231 if (MII->getFlag(MachineInstr::FrameDestroy)) in finalizeBundle()
236 /// finalizeBundle - Same functionality as the previous finalizeBundle except
238 /// used in cases where bundles are pre-determined by marking instructions
246 while (LastMI != E && LastMI->isInsideBundle()) in finalizeBundle()
252 /// finalizeBundles - Finalize instruction bundles in the specified
261 assert(!MII->isInsideBundle() && in finalizeBundles()
265 if (!MII->isInsideBundle()) in finalizeBundles()
280 VirtRegInfo RI = {false, false, false}; in AnalyzeVirtRegInBundle() local
288 Ops->push_back(std::make_pair(MO.getParent(), O.getOperandNo())); in AnalyzeVirtRegInBundle()
292 RI.Reads = true; in AnalyzeVirtRegInBundle()
294 RI.Tied = true; in AnalyzeVirtRegInBundle()
299 RI.Writes = true; in AnalyzeVirtRegInBundle()
300 else if (!RI.Tied && in AnalyzeVirtRegInBundle()
301 MO.getParent()->isRegTiedToDefOperand(O.getOperandNo())) in AnalyzeVirtRegInBundle()
302 RI.Tied = true; in AnalyzeVirtRegInBundle()
304 return RI; in AnalyzeVirtRegInBundle()
353 if (!TRI->regsOverlap(MOReg, Reg)) in AnalyzePhysRegInBundle()
356 bool Covered = TRI->isSuperRegisterEq(Reg, MOReg); in AnalyzePhysRegInBundle()