Lines Matching refs:MachineInstr

38 #include "llvm/CodeGen/MachineInstr.h"
81 static bool canHandle(const MachineInstr *MI);
86 bool canReorder(const MachineInstr *A, const MachineInstr *B);
99 std::optional<ArrayRef<MachineInstr *>::iterator> PotentialDependence;
103 std::optional<ArrayRef<MachineInstr *>::iterator> PotentialDependence)
115 DependenceResult computeDependence(const MachineInstr *MI,
116 ArrayRef<MachineInstr *> Block);
121 MachineInstr *MemOperation;
124 MachineInstr *CheckOperation;
137 MachineInstr *OnlyDependency;
140 explicit NullCheck(MachineInstr *memOperation, MachineInstr *checkOperation,
144 MachineInstr *onlyDependency)
149 MachineInstr *getMemOperation() const { return MemOperation; }
151 MachineInstr *getCheckOperation() const { return CheckOperation; }
159 MachineInstr *getOnlyDependency() const { return OnlyDependency; }
169 MachineInstr *insertFaultingInstr(MachineInstr *MI, MachineBasicBlock *MBB,
182 AliasResult areMemoryOpsAliased(const MachineInstr &MI,
183 const MachineInstr *PrevMI) const;
197 SuitabilityResult isSuitableMemoryOp(const MachineInstr &MI,
199 ArrayRef<MachineInstr *> PrevInsts);
204 bool canDependenceHoistingClobberLiveIns(MachineInstr *DependenceMI,
210 bool canHoistInst(MachineInstr *FaultingMI,
211 ArrayRef<MachineInstr *> InstsSeenSoFar,
212 MachineBasicBlock *NullSucc, MachineInstr *&Dependence);
236 bool ImplicitNullChecks::canHandle(const MachineInstr *MI) {
251 ImplicitNullChecks::computeDependence(const MachineInstr *MI,
252 ArrayRef<MachineInstr *> Block) {
256 std::optional<ArrayRef<MachineInstr *>::iterator> Dep;
274 bool ImplicitNullChecks::canReorder(const MachineInstr *A,
275 const MachineInstr *B) {
329 ImplicitNullChecks::areMemoryOpsAliased(const MachineInstr &MI,
330 const MachineInstr *PrevMI) const {
364 ImplicitNullChecks::isSuitableMemoryOp(const MachineInstr &MI,
366 ArrayRef<MachineInstr *> PrevInsts) {
405 MachineInstr *ModifyingMI = nullptr;
408 const MachineInstr *CurrMI = &*It;
410 ModifyingMI = const_cast<MachineInstr *>(CurrMI);
480 MachineInstr *DependenceMI, MachineBasicBlock *NullSucc) {
511 bool ImplicitNullChecks::canHoistInst(MachineInstr *FaultingMI,
512 ArrayRef<MachineInstr *> InstsSeenSoFar,
514 MachineInstr *&Dependence) {
676 SmallVector<MachineInstr *, 8> InstsSeenSoFar;
682 MachineInstr *Dependence;
707 MachineInstr *ImplicitNullChecks::insertFaultingInstr(
708 MachineInstr *MI, MachineBasicBlock *MBB, MachineBasicBlock *HandlerMBB) {
774 MachineInstr *FaultingInstr = insertFaultingInstr(