Lines Matching refs:MachineInstr

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) in DependenceResult()
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, in NullCheck()
144 MachineInstr *onlyDependency) in NullCheck()
149 MachineInstr *getMemOperation() const { return MemOperation; } in getMemOperation()
151 MachineInstr *getCheckOperation() const { return CheckOperation; } in getCheckOperation()
159 MachineInstr *getOnlyDependency() const { return OnlyDependency; } in getOnlyDependency()
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) { in canHandle()
251 ImplicitNullChecks::computeDependence(const MachineInstr *MI, in computeDependence()
252 ArrayRef<MachineInstr *> Block) { in computeDependence()
256 std::optional<ArrayRef<MachineInstr *>::iterator> Dep; in computeDependence()
274 bool ImplicitNullChecks::canReorder(const MachineInstr *A, in canReorder()
275 const MachineInstr *B) { in canReorder()
329 ImplicitNullChecks::areMemoryOpsAliased(const MachineInstr &MI, in areMemoryOpsAliased()
330 const MachineInstr *PrevMI) const { in areMemoryOpsAliased()
364 ImplicitNullChecks::isSuitableMemoryOp(const MachineInstr &MI, in isSuitableMemoryOp()
366 ArrayRef<MachineInstr *> PrevInsts) { in isSuitableMemoryOp()
405 MachineInstr *ModifyingMI = nullptr; in isSuitableMemoryOp()
408 const MachineInstr *CurrMI = &*It; in isSuitableMemoryOp()
410 ModifyingMI = const_cast<MachineInstr *>(CurrMI); in isSuitableMemoryOp()
480 MachineInstr *DependenceMI, MachineBasicBlock *NullSucc) { in canDependenceHoistingClobberLiveIns()
511 bool ImplicitNullChecks::canHoistInst(MachineInstr *FaultingMI, in canHoistInst()
512 ArrayRef<MachineInstr *> InstsSeenSoFar, in canHoistInst()
514 MachineInstr *&Dependence) { in canHoistInst()
676 SmallVector<MachineInstr *, 8> InstsSeenSoFar; in analyzeBlockForNullChecks()
682 MachineInstr *Dependence; in analyzeBlockForNullChecks()
707 MachineInstr *ImplicitNullChecks::insertFaultingInstr( in insertFaultingInstr()
708 MachineInstr *MI, MachineBasicBlock *MBB, MachineBasicBlock *HandlerMBB) { in insertFaultingInstr()
774 MachineInstr *FaultingInstr = insertFaultingInstr( in rewriteNullChecks()