reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

include/llvm/CodeGen/AsmPrinter.h
   54 class MachineInstr;
include/llvm/CodeGen/AsmPrinterHandler.h
   24 class MachineInstr;
include/llvm/CodeGen/DFAPacketizer.h
   43 class MachineInstr;
include/llvm/CodeGen/DbgEntityHistoryCalculator.h
   22 class MachineInstr;
include/llvm/CodeGen/DebugHandlerBase.h
   27 class MachineInstr;
include/llvm/CodeGen/ExecutionDomainFix.h
   34 class MachineInstr;
include/llvm/CodeGen/FastISel.h
   47 class MachineInstr;
include/llvm/CodeGen/FunctionLoweringInfo.h
   43 class MachineInstr;
include/llvm/CodeGen/GlobalISel/CombinerHelper.h
   28 class MachineInstr;
include/llvm/CodeGen/GlobalISel/CombinerInfo.h
   21 class MachineInstr;
include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h
   20 class MachineInstr;
include/llvm/CodeGen/GlobalISel/GISelWorkList.h
   20 class MachineInstr;
include/llvm/CodeGen/GlobalISel/IRTranslator.h
   45 class MachineInstr;
include/llvm/CodeGen/GlobalISel/InstructionSelector.h
   35 class MachineInstr;
include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
   37 class MachineInstr;
include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
   31 class MachineInstr;
include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
   29 class MachineInstr;
include/llvm/CodeGen/GlobalISel/Utils.h
   26 class MachineInstr;
include/llvm/CodeGen/LexicalScopes.h
   32 class MachineInstr;
include/llvm/CodeGen/LiveIntervals.h
   48 class MachineInstr;
include/llvm/CodeGen/LivePhysRegs.h
   41 class MachineInstr;
include/llvm/CodeGen/LiveRangeEdit.h
   38 class MachineInstr;
include/llvm/CodeGen/LiveRegUnits.h
   26 class MachineInstr;
include/llvm/CodeGen/MachineOperand.h
   31 class MachineInstr;
include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h
   24 class MachineInstr;
include/llvm/CodeGen/MachineSSAUpdater.h
   20 class MachineInstr;
include/llvm/CodeGen/MachineScheduler.h
  108 class MachineInstr;
include/llvm/CodeGen/MachineTraceMetrics.h
   62 class MachineInstr;
include/llvm/CodeGen/MacroFusion.h
   22 class MachineInstr;
include/llvm/CodeGen/ModuloSchedule.h
   73 class MachineInstr;
include/llvm/CodeGen/ReachingDefAnalysis.h
   32 class MachineInstr;
include/llvm/CodeGen/RegisterPressure.h
   35 class MachineInstr;
include/llvm/CodeGen/RegisterScavenging.h
   29 class MachineInstr;
include/llvm/CodeGen/ScheduleDAGInstrs.h
   41   class MachineInstr;
include/llvm/CodeGen/ScheduleHazardRecognizer.h
   19 class MachineInstr;
include/llvm/CodeGen/SelectionDAGISel.h
   32 class MachineInstr;
include/llvm/CodeGen/SwiftErrorValueTracking.h
   32   class MachineInstr;
include/llvm/CodeGen/TailDuplicator.h
   30 class MachineInstr;
include/llvm/CodeGen/TargetLowering.h
   82 class MachineInstr;
include/llvm/CodeGen/TargetRegisterInfo.h
   39 class MachineInstr;
include/llvm/CodeGen/TargetSchedule.h
   27 class MachineInstr;
include/llvm/CodeGen/TargetSubtargetInfo.h
   36 class MachineInstr;
lib/CodeGen/AggressiveAntiDepBreaker.h
   31 class MachineInstr;
lib/CodeGen/AsmPrinter/DebugLocStream.h
   21 class MachineInstr;
lib/CodeGen/AsmPrinter/EHStreamer.h
   24 class MachineInstr;
lib/CodeGen/CriticalAntiDepBreaker.h
   28 class MachineInstr;
lib/CodeGen/RegAllocBase.h
   47 class MachineInstr;
lib/CodeGen/RegisterCoalescer.h
   19 class MachineInstr;
lib/Target/AArch64/AArch64MCInstLower.h
   22 class MachineInstr;
lib/Target/AArch64/AArch64MachineFunctionInfo.h
   28 class MachineInstr;
lib/Target/AMDGPU/AMDGPUInstrInfo.h
   26 class MachineInstr;
lib/Target/AMDGPU/AMDGPUInstructionSelector.h
   37 class MachineInstr;
lib/Target/AMDGPU/GCNHazardRecognizer.h
   25 class MachineInstr;
lib/Target/AMDGPU/GCNIterativeScheduler.h
   23 class MachineInstr;
lib/Target/AMDGPU/R600InstrInfo.h
   35 class MachineInstr;
lib/Target/ARC/ARCMCInstLower.h
   20 class MachineInstr;
lib/Target/ARM/ARM.h
   34 class MachineInstr;
lib/Target/ARM/ARMHazardRecognizer.h
   23 class MachineInstr;
lib/Target/ARM/ARMISelLowering.h
   45 class MachineInstr;
lib/Target/AVR/AVRMCInstLower.h
   17 class MachineInstr;
lib/Target/BPF/BPFMCInstLower.h
   20 class MachineInstr;
lib/Target/Hexagon/HexagonAsmPrinter.h
   24 class MachineInstr;
lib/Target/Hexagon/HexagonBitTracker.h
   22 class MachineInstr;
lib/Target/Hexagon/HexagonBlockRanges.h
   24 class MachineInstr;
lib/Target/Hexagon/HexagonFrameLowering.h
   26 class MachineInstr;
lib/Target/Hexagon/HexagonInstrInfo.h
   34 class MachineInstr;
lib/Target/Hexagon/HexagonSubtarget.h
   36 class MachineInstr;
lib/Target/Hexagon/HexagonVLIWPacketizer.h
   23 class MachineInstr;
lib/Target/Hexagon/RDFCopy.h
   23 class MachineInstr;
lib/Target/Hexagon/RDFGraph.h
  252 class MachineInstr;
lib/Target/Lanai/LanaiMCInstLower.h
   20 class MachineInstr;
lib/Target/MSP430/MSP430MCInstLower.h
   20   class MachineInstr;
lib/Target/Mips/MipsAsmPrinter.h
   34 class MachineInstr;
lib/Target/Mips/MipsISelLowering.h
   49 class MachineInstr;
lib/Target/Mips/MipsInstrInfo.h
   35 class MachineInstr;
lib/Target/Mips/MipsMCInstLower.h
   19 class MachineInstr;
lib/Target/Mips/MipsSEISelLowering.h
   23 class MachineInstr;
lib/Target/PowerPC/PPC.h
   26   class MachineInstr;
lib/Target/RISCV/RISCV.h
   29 class MachineInstr;
lib/Target/Sparc/Sparc.h
   27   class MachineInstr;
lib/Target/SystemZ/SystemZAsmPrinter.h
   21 class MachineInstr;
lib/Target/SystemZ/SystemZMCInstLower.h
   19 class MachineInstr;
lib/Target/WebAssembly/WebAssemblyDebugValueManager.h
   22 class MachineInstr;
lib/Target/WebAssembly/WebAssemblyMCInstLower.h
   26 class MachineInstr;
lib/Target/XCore/XCoreMCInstLower.h
   18   class MachineInstr;

References

gen/lib/Target/AArch64/AArch64GenGICombiner.inc
   27     MachineInstr &MI,
   98     MachineInstr &MI,
gen/lib/Target/AArch64/AArch64GenGlobalISel.inc
   25   bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI) const override;
  883 bool AArch64InstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI) const {
 1019 bool AArch64InstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
gen/lib/Target/AArch64/AArch64GenInstrInfo.inc
17985 static bool isExynosArithFast(const MachineInstr &MI);
17986 static bool isExynosCheapAsMove(const MachineInstr &MI);
17987 static bool isExynosLogicExFast(const MachineInstr &MI);
17988 static bool isExynosLogicFast(const MachineInstr &MI);
17989 static bool isExynosResetFast(const MachineInstr &MI);
17990 static bool isExynosScaledAddr(const MachineInstr &MI);
17991 static bool isCopyIdiom(const MachineInstr &MI);
17992 static bool isZeroFPIdiom(const MachineInstr &MI);
17993 static bool isZeroIdiom(const MachineInstr &MI);
17994 static bool hasExtendedReg(const MachineInstr &MI);
17995 static bool hasShiftedReg(const MachineInstr &MI);
17996 static bool isScaledAddr(const MachineInstr &MI);
18003 bool AArch64InstrInfo::isExynosArithFast(const MachineInstr &MI) {
18064 bool AArch64InstrInfo::isExynosCheapAsMove(const MachineInstr &MI) {
18090 bool AArch64InstrInfo::isExynosLogicExFast(const MachineInstr &MI) {
18147 bool AArch64InstrInfo::isExynosLogicFast(const MachineInstr &MI) {
18198 bool AArch64InstrInfo::isExynosResetFast(const MachineInstr &MI) {
18224 bool AArch64InstrInfo::isExynosScaledAddr(const MachineInstr &MI) {
18280 bool AArch64InstrInfo::isCopyIdiom(const MachineInstr &MI) {
18311 bool AArch64InstrInfo::isZeroFPIdiom(const MachineInstr &MI) {
18331 bool AArch64InstrInfo::isZeroIdiom(const MachineInstr &MI) {
18348 bool AArch64InstrInfo::hasExtendedReg(const MachineInstr &MI) {
18368 bool AArch64InstrInfo::hasShiftedReg(const MachineInstr &MI) {
18400 bool AArch64InstrInfo::isScaledAddr(const MachineInstr &MI) {
gen/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc
   11                             const MachineInstr *MI) {
gen/lib/Target/AArch64/AArch64GenSubtargetInfo.inc
17972   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
17998 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/AMDGPU/AMDGPUGenGlobalISel.inc
   25   bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI) const override;
  376 bool AMDGPUInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI) const {
  438 bool AMDGPUInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
gen/lib/Target/AMDGPU/AMDGPUGenMCPseudoLowering.inc
   11                             const MachineInstr *MI) {
gen/lib/Target/AMDGPU/AMDGPUGenSubtargetInfo.inc
  786   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  812 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/AMDGPU/R600GenSubtargetInfo.inc
  310   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  339 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/ARC/ARCGenSubtargetInfo.inc
  136   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  162 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/ARM/ARMGenGlobalISel.inc
   25   bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI) const override;
  745 bool ARMInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI) const {
  807 bool ARMInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
gen/lib/Target/ARM/ARMGenMCPseudoLowering.inc
   11                             const MachineInstr *MI) {
gen/lib/Target/ARM/ARMGenSubtargetInfo.inc
19572   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
19601 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/AVR/AVRGenSubtargetInfo.inc
  537   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  563 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/BPF/BPFGenSubtargetInfo.inc
  159   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  185 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/Hexagon/HexagonGenSubtargetInfo.inc
 4683   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
 4713 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/Lanai/LanaiGenSubtargetInfo.inc
  217   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  246 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/MSP430/MSP430GenSubtargetInfo.inc
  160   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  186 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/Mips/MipsGenGlobalISel.inc
   25   bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI) const override;
  610 bool MipsInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI) const {
  632 bool MipsInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
gen/lib/Target/Mips/MipsGenMCPseudoLowering.inc
   11                             const MachineInstr *MI) {
gen/lib/Target/Mips/MipsGenSubtargetInfo.inc
 3863   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
 3889 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc
  235   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  261 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/PowerPC/PPCGenSubtargetInfo.inc
 8212   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
 8241 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/RISCV/RISCVGenGlobalISel.inc
   25   bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI) const override;
  256 bool RISCVInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI) const {
  278 bool RISCVInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
gen/lib/Target/RISCV/RISCVGenMCPseudoLowering.inc
   11                             const MachineInstr *MI) {
gen/lib/Target/RISCV/RISCVGenSubtargetInfo.inc
  273   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  300 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/Sparc/SparcGenSubtargetInfo.inc
  529   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  558 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/SystemZ/SystemZGenSubtargetInfo.inc
 5174   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
 5200 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/WebAssembly/WebAssemblyGenSubtargetInfo.inc
  178   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  204 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
gen/lib/Target/X86/X86GenGlobalISel.inc
   25   bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI) const override;
  749 bool X86InstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI) const {
  771 bool X86InstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
gen/lib/Target/X86/X86GenInstrInfo.inc
49336 static bool isThreeOperandsLEA(const MachineInstr &MI);
49343 bool X86InstrInfo::isThreeOperandsLEA(const MachineInstr &MI) {
gen/lib/Target/X86/X86GenSubtargetInfo.inc
21497   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
21500   bool isZeroIdiom(const MachineInstr *MI, APInt &Mask) const override;
21501   bool isDependencyBreaking(const MachineInstr *MI, APInt &Mask) const override;
21502   bool isOptimizableRegisterMove(const MachineInstr *MI) const override;
21526 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
22917 bool X86GenSubtargetInfo::isZeroIdiom(const MachineInstr *MI, APInt &Mask) const {
23005 bool X86GenSubtargetInfo::isDependencyBreaking(const MachineInstr *MI, APInt &Mask) const {
23050 bool X86GenSubtargetInfo::isOptimizableRegisterMove(const MachineInstr *MI) const {
gen/lib/Target/XCore/XCoreGenSubtargetInfo.inc
  137   unsigned resolveSchedClass(unsigned SchedClass,  const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
  163 ::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
include/llvm/ADT/ArrayRef.h
  108         const ArrayRef<U *> &A,
  110            std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  118       const SmallVectorTemplateCommon<U *, DummyT> &Vec,
  120           std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  127     ArrayRef(const std::vector<U *, A> &Vec,
  129                  std::is_convertible<U *const *, T const *>::value>::type* = 0)
include/llvm/ADT/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/ADT/SmallSet.h
  249 class SmallSet<PointeeType*, N> : public SmallPtrSet<PointeeType*, N> {};
include/llvm/ADT/ilist.h
   96 template <class T> T &make();
  106   static Yes &test(U *I, decltype(I->getNext(&make<NodeT>())) * = 0);
  136   static Yes &test(U *I, decltype(I->createNode(make<NodeT>())) * = 0);
  144   static const bool value = HasGetNext<TraitsT, NodeT>::value ||
  146                             HasCreateNode<TraitsT, NodeT>::value;
  389     : public iplist_impl<simple_ilist<T, Options...>, ilist_traits<T>> {
include/llvm/ADT/ilist_node.h
  150           typename ilist_detail::compute_node_options<T, Options...>::type> {
  256 class ilist_node_with_parent : public ilist_node<NodeTy, Options...> {
  274   NodeTy *getPrevNode() {
  283   const NodeTy *getPrevNode() const {
  288   NodeTy *getNextNode() {
  297   const NodeTy *getNextNode() const {
include/llvm/ADT/ilist_node_options.h
  108   typedef T value_type;
  109   typedef T *pointer;
  110   typedef T &reference;
  111   typedef const T *const_pointer;
  112   typedef const T &const_reference;
  122   typedef node_options<T, extract_sentinel_tracking<Options...>::value,
include/llvm/ADT/iterator_range.h
   38   iterator_range(Container &&c)
include/llvm/ADT/simple_ilist.h
   79     : ilist_detail::compute_node_options<T, Options...>::type::list_base_type,
   81           typename ilist_detail::compute_node_options<T, Options...>::type> {
   85       typename ilist_detail::compute_node_options<T, Options...>::type;
include/llvm/Analysis/LoopInfo.h
  131   template <class InstT> bool contains(const InstT *Inst) const {
include/llvm/CodeGen/AsmPrinter.h
  278   void recordSled(MCSymbol *Sled, const MachineInstr &MI, SledKind Kind,
  317   void emitCFIInstruction(const MachineInstr &MI);
  319   void emitFrameAlloc(const MachineInstr &MI);
  413   virtual void EmitInstruction(const MachineInstr *) {
  442   virtual void emitImplicitDef(const MachineInstr *MI) const;
  604   virtual void PrintSpecial(const MachineInstr *MI, raw_ostream &OS,
  614   virtual bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  621   virtual bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
  653   mutable const MachineInstr *LastMI = nullptr;
  669   void EmitInlineAsm(const MachineInstr *MI) const;
include/llvm/CodeGen/AsmPrinterHandler.h
   66   virtual void beginInstruction(const MachineInstr *MI) = 0;
include/llvm/CodeGen/DFAPacketizer.h
  118   bool canReserveResources(MachineInstr &MI);
  122   void reserveResources(MachineInstr &MI);
  152   std::vector<MachineInstr*> CurrentPacketMIs;
  156   std::map<MachineInstr*, SUnit*> MIToSUnit;
  191   virtual bool ignorePseudoInstruction(const MachineInstr &I,
  198   virtual bool isSoloInstruction(const MachineInstr &MI) { return true; }
  206   virtual bool shouldAddToPacket(const MachineInstr &MI) { return true; }
  221   bool alias(const MachineInstr &MI1, const MachineInstr &MI2,
  221   bool alias(const MachineInstr &MI1, const MachineInstr &MI2,
include/llvm/CodeGen/DbgEntityHistoryCalculator.h
   57     Entry(const MachineInstr *Instr, EntryKind Kind)
   60     const MachineInstr *getInstr() const { return Instr.getPointer(); }
   71     PointerIntPair<const MachineInstr *, 1, EntryKind> Instr;
   82   bool startDbgValue(InlinedEntity Var, const MachineInstr &MI,
   84   EntryIndex startClobber(InlinedEntity Var, const MachineInstr &MI);
  107   using InstrMap = MapVector<InlinedEntity, const MachineInstr *>;
  113   void  addInstr(InlinedEntity Label, const MachineInstr &MI);
include/llvm/CodeGen/DebugHandlerBase.h
   48   extractFromMachineInstruction(const MachineInstr &Instruction);
   76   const MachineInstr *CurMI = nullptr;
   90   DenseMap<const MachineInstr *, MCSymbol *> LabelsBeforeInsn;
   93   DenseMap<const MachineInstr *, MCSymbol *> LabelsAfterInsn;
  100   void requestLabelBeforeInsn(const MachineInstr *MI) {
  105   void requestLabelAfterInsn(const MachineInstr *MI) {
  115   void beginInstruction(const MachineInstr *MI) override;
  122   MCSymbol *getLabelBeforeInsn(const MachineInstr *MI);
  125   MCSymbol *getLabelAfterInsn(const MachineInstr *MI);
  129   const MCExpr *getFunctionLocalOffsetAfterInsn(const MachineInstr *MI);
include/llvm/CodeGen/ExecutionDomainFix.h
   67   SmallVector<MachineInstr *, 8> Instrs;
  196   bool visitInstr(MachineInstr *);
  200   void processDefs(MachineInstr *, bool Kill);
  203   void visitSoftInstr(MachineInstr *, unsigned mask);
  207   void visitHardInstr(MachineInstr *, unsigned domain);
include/llvm/CodeGen/FastISel.h
   90     MachineInstr *Call = nullptr;
  221   MachineInstr *LastLocalValue;
  226   MachineInstr *EmitStartPt;
  237   MachineInstr *getLastLocalValue() { return LastLocalValue; }
  241   void setLastLocalValue(MachineInstr *I) {
  304   virtual bool tryToFoldLoadIntoMI(MachineInstr * /*MI*/, unsigned /*OpNo*/,
  568   void removeDeadLocalValueCode(MachineInstr *SavedLastLocalValue);
  571     DenseMap<MachineInstr *, unsigned> Orders;
  572     MachineInstr *FirstTerminator = nullptr;
  581   void sinkLocalValueMaterialization(MachineInstr &LocalMI, unsigned DefReg,
include/llvm/CodeGen/FunctionLoweringInfo.h
  135   SmallVector<MachineInstr*, 8> ArgDbgValues;
  178   std::vector<std::pair<MachineInstr*, unsigned> > PHINodesToUpdate;
include/llvm/CodeGen/GlobalISel/CSEInfo.h
   33   const MachineInstr *MI;
   34   explicit UniqueMachineInstr(const MachineInstr *MI) : MI(MI) {}
   84   DenseMap<const MachineInstr *, UniqueMachineInstr *> InstrMapping;
  102   UniqueMachineInstr *getUniqueInstrForMI(const MachineInstr *MI);
  108   MachineInstr *getMachineInstrIfExists(FoldingSetNodeID &ID,
  114   void insertInstr(MachineInstr *MI, void *InsertPos = nullptr);
  128   void recordNewInstruction(MachineInstr *MI);
  131   void handleRecordedInst(MachineInstr *MI);
  140   void handleRemoveInst(MachineInstr *MI);
  157   void erasingInstr(MachineInstr &MI) override;
  158   void createdInstr(MachineInstr &MI) override;
  159   void changingInstr(MachineInstr &MI) override;
  160   void changedInstr(MachineInstr &MI) override;
  193   const GISelInstProfileBuilder &addNodeID(const MachineInstr *MI) const;
include/llvm/CodeGen/GlobalISel/CombinerHelper.h
   36   MachineInstr *MI;
   62   bool tryCombineCopy(MachineInstr &MI);
   63   bool matchCombineCopy(MachineInstr &MI);
   64   void applyCombineCopy(MachineInstr &MI);
   68   bool isPredecessor(MachineInstr &DefMI, MachineInstr &UseMI);
   68   bool isPredecessor(MachineInstr &DefMI, MachineInstr &UseMI);
   76   bool dominates(MachineInstr &DefMI, MachineInstr &UseMI);
   76   bool dominates(MachineInstr &DefMI, MachineInstr &UseMI);
   80   bool tryCombineExtendingLoads(MachineInstr &MI);
   81   bool matchCombineExtendingLoads(MachineInstr &MI, PreferredTuple &MatchInfo);
   82   void applyCombineExtendingLoads(MachineInstr &MI, PreferredTuple &MatchInfo);
   86   bool tryCombineIndexedLoadStore(MachineInstr &MI);
   88   bool matchElideBrByInvertingCond(MachineInstr &MI);
   89   void applyElideBrByInvertingCond(MachineInstr &MI);
   90   bool tryElideBrByInvertingCond(MachineInstr &MI);
  100   bool tryCombineConcatVectors(MachineInstr &MI);
  108   bool matchCombineConcatVectors(MachineInstr &MI, bool &IsUndef,
  112   void applyCombineConcatVectors(MachineInstr &MI, bool IsUndef,
  119   bool tryCombineShuffleVector(MachineInstr &MI);
  126   bool matchCombineShuffleVector(MachineInstr &MI,
  129   void applyCombineShuffleVector(MachineInstr &MI,
  162   bool tryCombineMemCpyFamily(MachineInstr &MI, unsigned MaxLen = 0);
  166   bool tryCombine(MachineInstr &MI);
  170   bool optimizeMemcpy(MachineInstr &MI, Register Dst, Register Src,
  173   bool optimizeMemmove(MachineInstr &MI, Register Dst, Register Src,
  176   bool optimizeMemset(MachineInstr &MI, Register Dst, Register Val,
  183   bool findPostIndexCandidate(MachineInstr &MI, Register &Addr, Register &Base,
  190   bool findPreIndexCandidate(MachineInstr &MI, Register &Addr, Register &Base,
include/llvm/CodeGen/GlobalISel/CombinerInfo.h
   67   virtual bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h
   29   SmallPtrSet<MachineInstr *, 4> ChangingAllUsesOfReg;
   35   virtual void erasingInstr(MachineInstr &MI) = 0;
   42   virtual void createdInstr(MachineInstr &MI) = 0;
   45   virtual void changingInstr(MachineInstr &MI) = 0;
   48   virtual void changedInstr(MachineInstr &MI) = 0;
   83   void erasingInstr(MachineInstr &MI) override {
   87   void createdInstr(MachineInstr &MI) override {
   91   void changingInstr(MachineInstr &MI) override {
   95   void changedInstr(MachineInstr &MI) override {
  100   void MF_HandleInsertion(MachineInstr &MI) override { createdInstr(MI); }
  101   void MF_HandleRemoval(MachineInstr &MI) override { erasingInstr(MI); }
include/llvm/CodeGen/GlobalISel/GISelKnownBits.h
   46   KnownBits getKnownBits(MachineInstr &MI);
   72   static MaybeAlign inferPtrAlignment(const MachineInstr &MI);
   75   void erasingInstr(MachineInstr &MI) override{};
   76   void createdInstr(MachineInstr &MI) override{};
   77   void changingInstr(MachineInstr &MI) override{};
   78   void changedInstr(MachineInstr &MI) override{};
include/llvm/CodeGen/GlobalISel/GISelWorkList.h
   32   SmallVector<MachineInstr *, N> Worklist;
   33   DenseMap<MachineInstr *, unsigned> WorklistMap;
   54   void deferred_insert(MachineInstr *I) {
   78   void insert(MachineInstr *I) {
   85   void remove(const MachineInstr *I) {
  102   MachineInstr *pop_back_val() {
  104     MachineInstr *I;
include/llvm/CodeGen/GlobalISel/IRTranslator.h
  162   SmallVector<std::pair<const PHINode *, SmallVector<MachineInstr *, 1>>, 4>
include/llvm/CodeGen/GlobalISel/InstructionSelector.h
  387   virtual bool select(MachineInstr &I) = 0;
  405   using RecordedMIVector = SmallVector<MachineInstr *, 4>;
  472   virtual bool testMIPredicate_MI(unsigned, const MachineInstr &) const {
  481   bool constrainOperandRegToRegClass(MachineInstr &I, unsigned OpIdx,
  499   bool isObviouslySafeToFold(MachineInstr &MI, MachineInstr &IntoMI) const;
  499   bool isObviouslySafeToFold(MachineInstr &MI, MachineInstr &IntoMI) const;
include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
  109       MachineInstr *NewMI = MRI.getVRegDef(MO.getReg());
include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
   48   bool tryCombineAnyExt(MachineInstr &MI,
   49                         SmallVectorImpl<MachineInstr *> &DeadInsts) {
   67     MachineInstr *ExtMI;
   79     auto *SrcMI = MRI.getVRegDef(SrcReg);
   93   bool tryCombineZExt(MachineInstr &MI,
   94                       SmallVectorImpl<MachineInstr *> &DeadInsts) {
  120     auto *SrcMI = MRI.getVRegDef(SrcReg);
  134   bool tryCombineSExt(MachineInstr &MI,
  135                       SmallVectorImpl<MachineInstr *> &DeadInsts) {
  160   bool tryCombineTrunc(MachineInstr &MI,
  161                        SmallVectorImpl<MachineInstr *> &DeadInsts) {
  170     auto *SrcMI = MRI.getVRegDef(SrcReg);
  187   bool tryFoldImplicitDef(MachineInstr &MI,
  188                           SmallVectorImpl<MachineInstr *> &DeadInsts) {
  193     if (MachineInstr *DefMI = getOpcodeDef(TargetOpcode::G_IMPLICIT_DEF,
  249   bool tryCombineMerges(MachineInstr &MI,
  250                         SmallVectorImpl<MachineInstr *> &DeadInsts) {
  254     MachineInstr *SrcDef =
  261     MachineInstr *MergeI = SrcDef;
  375   bool tryCombineExtract(MachineInstr &MI,
  376                          SmallVectorImpl<MachineInstr *> &DeadInsts) {
  392     MachineInstr *MergeI = MRI.getVRegDef(Src);
  427   bool tryCombineInstruction(MachineInstr &MI,
  428                              SmallVectorImpl<MachineInstr *> &DeadInsts,
  453       for (auto &Use : MRI.use_instructions(MI.getOperand(0).getReg()))
  462   static unsigned getArtifactSrcReg(const MachineInstr &MI) {
  483   void markInstAndDefDead(MachineInstr &MI, MachineInstr &DefMI,
  483   void markInstAndDefDead(MachineInstr &MI, MachineInstr &DefMI,
  484                           SmallVectorImpl<MachineInstr *> &DeadInsts) {
  496     MachineInstr *PrevMI = &MI;
  500       MachineInstr *TmpDef = MRI.getVRegDef(PrevRegSrc);
  523   void deleteMarkedDeadInsts(SmallVectorImpl<MachineInstr *> &DeadInsts,
  525     for (auto *DeadMI : DeadInsts) {
include/llvm/CodeGen/GlobalISel/Legalizer.h
   62   bool combineExtracts(MachineInstr &MI, MachineRegisterInfo &MRI,
include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
   63   LegalizeResult legalizeInstrStep(MachineInstr &MI);
   66   LegalizeResult libcall(MachineInstr &MI);
   70   LegalizeResult narrowScalar(MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy);
   75   LegalizeResult widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy);
   79   LegalizeResult lower(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
   83   LegalizeResult fewerElementsVector(MachineInstr &MI, unsigned TypeIdx,
   88   LegalizeResult moreElementsVector(MachineInstr &MI, unsigned TypeIdx,
  103   void widenScalarSrc(MachineInstr &MI, LLT WideTy, unsigned OpIdx,
  109   void narrowScalarSrc(MachineInstr &MI, LLT NarrowTy, unsigned OpIdx);
  114   void widenScalarDst(MachineInstr &MI, LLT WideTy, unsigned OpIdx = 0,
  120   void narrowScalarDst(MachineInstr &MI, LLT NarrowTy, unsigned OpIdx,
  125   void moreElementsVectorDst(MachineInstr &MI, LLT MoreTy, unsigned OpIdx);
  130   void moreElementsVectorSrc(MachineInstr &MI, LLT MoreTy, unsigned OpIdx);
  133   widenScalarMergeValues(MachineInstr &MI, unsigned TypeIdx, LLT WideTy);
  135   widenScalarUnmergeValues(MachineInstr &MI, unsigned TypeIdx, LLT WideTy);
  137   widenScalarExtract(MachineInstr &MI, unsigned TypeIdx, LLT WideTy);
  139   widenScalarInsert(MachineInstr &MI, unsigned TypeIdx, LLT WideTy);
  174   LegalizeResult fewerElementsVectorImplicitDef(MachineInstr &MI,
  179   LegalizeResult fewerElementsVectorBasic(MachineInstr &MI, unsigned TypeIdx,
  185   LegalizeResult fewerElementsVectorMultiEltType(MachineInstr &MI,
  188   LegalizeResult fewerElementsVectorCasts(MachineInstr &MI, unsigned TypeIdx,
  192   fewerElementsVectorCmp(MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy);
  195   fewerElementsVectorSelect(MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy);
  197   LegalizeResult fewerElementsVectorPhi(MachineInstr &MI,
  200   LegalizeResult moreElementsVectorPhi(MachineInstr &MI, unsigned TypeIdx,
  203   LegalizeResult fewerElementsVectorUnmergeValues(MachineInstr &MI,
  206   LegalizeResult fewerElementsVectorBuildVector(MachineInstr &MI,
  211   reduceLoadStoreWidth(MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy);
  213   LegalizeResult narrowScalarShiftByConstant(MachineInstr &MI, const APInt &Amt,
  216   LegalizeResult narrowScalarShift(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  217   LegalizeResult narrowScalarMul(MachineInstr &MI, LLT Ty);
  218   LegalizeResult narrowScalarExtract(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  219   LegalizeResult narrowScalarInsert(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  221   LegalizeResult narrowScalarBasic(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  222   LegalizeResult narrowScalarSelect(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  224   LegalizeResult lowerBitCount(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  226   LegalizeResult lowerU64ToF32BitOps(MachineInstr &MI);
  227   LegalizeResult lowerUITOFP(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  228   LegalizeResult lowerSITOFP(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  229   LegalizeResult lowerFPTOUI(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  230   LegalizeResult lowerMinMax(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  231   LegalizeResult lowerFCopySign(MachineInstr &MI, unsigned TypeIdx, LLT Ty);
  232   LegalizeResult lowerFMinNumMaxNum(MachineInstr &MI);
  233   LegalizeResult lowerFMad(MachineInstr &MI);
  234   LegalizeResult lowerUnmergeValues(MachineInstr &MI);
  235   LegalizeResult lowerShuffleVector(MachineInstr &MI);
  236   LegalizeResult lowerDynStackAlloc(MachineInstr &MI);
  237   LegalizeResult lowerExtract(MachineInstr &MI);
  238   LegalizeResult lowerInsert(MachineInstr &MI);
  239   LegalizeResult lowerSADDO_SSUBO(MachineInstr &MI);
  257                                                  MachineInstr &MI);
include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
 1140   LegalizeActionStep getAction(const MachineInstr &MI,
 1146   bool isLegal(const MachineInstr &MI, const MachineRegisterInfo &MRI) const;
 1147   bool isLegalOrCustom(const MachineInstr &MI,
 1150   virtual bool legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI,
 1156   virtual bool legalizeIntrinsic(MachineInstr &MI, MachineRegisterInfo &MRI,
 1350 const MachineInstr *machineFunctionIsIllegal(const MachineFunction &MF);
include/llvm/CodeGen/GlobalISel/Localizer.h
   52   bool shouldLocalize(const MachineInstr &MI);
   58   static bool isLocalUse(MachineOperand &MOUse, const MachineInstr &Def,
   64   typedef SmallSetVector<MachineInstr *, 32> LocalizedSetVecT;
include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
  125   static bool bind(const MachineRegisterInfo &MRI, MachineInstr *&MI,
  164 inline bind_ty<MachineInstr *> m_MInstr(MachineInstr *&MI) { return MI; }
  164 inline bind_ty<MachineInstr *> m_MInstr(MachineInstr *&MI) { return MI; }
  180     MachineInstr *TmpMI;
  248     MachineInstr *TmpMI;
include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
  233   void recordInsertion(MachineInstr *MI) const;
  239   MachineIRBuilder(MachineInstr &MI) : MachineIRBuilder(*MI.getMF()) {
  313   void setInstr(MachineInstr &MI);
include/llvm/CodeGen/GlobalISel/RegBankSelect.h
  206     MachineInstr &Instr;
  226     InstrInsertPoint(MachineInstr &Instr, bool Before = true);
  355     RepairingPlacement(MachineInstr &MI, unsigned OpIdx,
  372     void addInsertPoint(MachineInstr &MI, bool Before);
  517   bool assignInstr(MachineInstr &MI);
  580   findBestMapping(MachineInstr &MI,
  592   computeMapping(MachineInstr &MI,
  613   bool applyMapping(MachineInstr &MI,
include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
  262     bool verify(const MachineInstr &MI) const;
  291     MachineInstr &MI;
  321     OperandsMapper(MachineInstr &MI, const InstructionMapping &InstrMapping,
  327     MachineInstr &getMI() const { return MI; }
  457   const InstructionMapping &getInstrMappingImpl(const MachineInstr &MI) const;
  544   getRegBankFromConstraints(const MachineInstr &MI, unsigned OpIdx,
  680   getInstrMapping(const MachineInstr &MI) const;
  685   getInstrAlternativeMappings(const MachineInstr &MI) const;
  703   InstructionMappings getInstrPossibleMappings(const MachineInstr &MI) const;
include/llvm/CodeGen/GlobalISel/Utils.h
   62                                   MachineInstr &InsertPt,
   80                                   MachineInstr &InsertPt, const MCInstrDesc &II,
   92 bool constrainSelectedInstRegOperands(MachineInstr &I,
   98 bool isTriviallyDead(const MachineInstr &MI, const MachineRegisterInfo &MRI);
  109                         const MachineInstr &MI);
  138 MachineInstr *getOpcodeDef(unsigned Opcode, Register Reg,
  144 MachineInstr *getDefIgnoringCopies(Register Reg,
include/llvm/CodeGen/LexicalScopes.h
   39 using InsnRange = std::pair<const MachineInstr *, const MachineInstr *>;
   39 using InsnRange = std::pair<const MachineInstr *, const MachineInstr *>;
   72   void openInsnRange(const MachineInstr *MI) {
   82   void extendInsnRange(const MachineInstr *MI) {
  131   const MachineInstr *LastInsn = nullptr;  // Last instruction of this scope.
  132   const MachineInstr *FirstInsn = nullptr; // First instruction of this scope.
  223                             DenseMap<const MachineInstr *, LexicalScope *> &M);
  227                           DenseMap<const MachineInstr *, LexicalScope *> &M);
include/llvm/CodeGen/LiveIntervals.h
  107                                 const MachineInstr &MI);
  153                                                  MachineInstr &startInst);
  162                       SmallVectorImpl<MachineInstr*> *dead = nullptr);
  221     bool isNotInMIMap(const MachineInstr &Instr) const {
  226     SlotIndex getInstructionIndex(const MachineInstr &Instr) const {
  231     MachineInstr* getInstructionFromIndex(SlotIndex index) const {
  266     SlotIndex InsertMachineInstrInMaps(MachineInstr &MI) {
  276     void RemoveMachineInstrFromMaps(MachineInstr &MI) {
  280     SlotIndex ReplaceMachineInstrInMaps(MachineInstr &MI, MachineInstr &NewMI) {
  280     SlotIndex ReplaceMachineInstrInMaps(MachineInstr &MI, MachineInstr &NewMI) {
  311     void handleMove(MachineInstr &MI, bool UpdateFlags = false);
  321     void handleMoveIntoBundle(MachineInstr &MI, MachineInstr &BundleStart,
  321     void handleMoveIntoBundle(MachineInstr &MI, MachineInstr &BundleStart,
  463                            SmallVectorImpl<MachineInstr*> *dead);
include/llvm/CodeGen/LivePhysRegs.h
  112   void removeDefs(const MachineInstr &MI);
  115   void addUses(const MachineInstr &MI);
  120   void stepBackward(const MachineInstr &MI);
  128   void stepForward(const MachineInstr &MI,
include/llvm/CodeGen/LiveRangeEdit.h
   55     virtual void LRE_WillEraseInstruction(MachineInstr *MI) {}
   86   SmallPtrSet<MachineInstr *, 32> *DeadRemats;
  101   bool allUsesAvailableAt(const MachineInstr *OrigMI, SlotIndex OrigIdx,
  106   bool foldAsLoad(LiveInterval *LI, SmallVectorImpl<MachineInstr *> &Dead);
  112   void eliminateDeadDef(MachineInstr *MI, ToShrinkSet &ToShrink,
  141                 SmallPtrSet<MachineInstr *, 32> *deadRemats = nullptr)
  197   bool checkRematerializable(VNInfo *VNI, const MachineInstr *DefMI,
  203     MachineInstr *OrigMI = nullptr; // Instruction defining OrigVNI. It contains
  245   void eliminateDeadDefs(SmallVectorImpl<MachineInstr *> &Dead,
include/llvm/CodeGen/LiveRegUnits.h
   47   static void accumulateUsedDefed(const MachineInstr &MI,
  128   void stepBackward(const MachineInstr &MI);
  133   void accumulate(const MachineInstr &MI);
include/llvm/CodeGen/LiveVariables.h
   88     std::vector<MachineInstr*> Kills;
   93     bool removeKill(MachineInstr &MI) {
   94       std::vector<MachineInstr *>::iterator I = find(Kills, &MI);
  102     MachineInstr *findKill(const MachineBasicBlock *MBB) const;
  135   std::vector<MachineInstr *> PhysRegDef;
  140   std::vector<MachineInstr *> PhysRegUse;
  146   DenseMap<MachineInstr*, unsigned> DistanceMap;
  151   bool HandlePhysRegKill(unsigned Reg, MachineInstr *MI);
  156   void HandlePhysRegUse(unsigned Reg, MachineInstr &MI);
  157   void HandlePhysRegDef(unsigned Reg, MachineInstr *MI,
  159   void UpdatePhysRegDefs(MachineInstr &MI, SmallVectorImpl<unsigned> &Defs);
  163   MachineInstr *FindLastRefOrPartRef(unsigned Reg);
  168   MachineInstr *FindLastPartialDef(unsigned Reg,
  177   void runOnInstr(MachineInstr &MI, SmallVectorImpl<unsigned> &Defs);
  186   bool RegisterDefIsDead(MachineInstr &MI, unsigned Reg) const;
  193   void replaceKillInstruction(unsigned Reg, MachineInstr &OldMI,
  194                               MachineInstr &NewMI);
  200   void addVirtualRegisterKilled(unsigned IncomingReg, MachineInstr &MI,
  210   bool removeVirtualRegisterKilled(unsigned reg, MachineInstr &MI) {
  231   void removeVirtualRegistersKilled(MachineInstr &MI);
  236   void addVirtualRegisterDead(unsigned IncomingReg, MachineInstr &MI,
  246   bool removeVirtualRegisterDead(unsigned reg, MachineInstr &MI) {
  279   void HandleVirtRegDef(unsigned reg, MachineInstr &MI);
  280   void HandleVirtRegUse(unsigned reg, MachineBasicBlock *MBB, MachineInstr &MI);
include/llvm/CodeGen/MachineBasicBlock.h
   55       simple_ilist<MachineInstr, ilist_sentinel_tracking<true>>::iterator;
   58   void addNodeToList(MachineInstr *N);
   59   void removeNodeFromList(MachineInstr *N);
   62   void deleteNode(MachineInstr *MI);
   81   using Instructions = ilist<MachineInstr, ilist_sentinel_tracking<true>>;
  181   using iterator = MachineInstrBundleIterator<MachineInstr>;
  182   using const_iterator = MachineInstrBundleIterator<const MachineInstr>;
  183   using reverse_iterator = MachineInstrBundleIterator<MachineInstr, true>;
  185       MachineInstrBundleIterator<const MachineInstr, true>;
  190   MachineInstr       &instr_front()       { return Insts.front(); }
  191   MachineInstr       &instr_back()        { return Insts.back();  }
  192   const MachineInstr &instr_front() const { return Insts.front(); }
  193   const MachineInstr &instr_back()  const { return Insts.back();  }
  195   MachineInstr       &front()             { return Insts.front(); }
  196   MachineInstr       &back()              { return *--end();      }
  197   const MachineInstr &front()       const { return Insts.front(); }
  198   const MachineInstr &back()        const { return *--end();      }
  601   void push_back(MachineInstr *MI) { Insts.push_back(MI); }
  620   iterator insert(iterator I, MachineInstr *MI) {
  629   iterator insertAfter(iterator I, MachineInstr *MI) {
  679   iterator erase(MachineInstr *I) {
  688   MachineInstr *remove(MachineInstr *I) {
  688   MachineInstr *remove(MachineInstr *I) {
  698   MachineInstr *remove_instr(MachineInstr *I);
  698   MachineInstr *remove_instr(MachineInstr *I);
include/llvm/CodeGen/MachineDominators.h
  132   bool dominates(const MachineInstr *A, const MachineInstr *B) const {
  132   bool dominates(const MachineInstr *A, const MachineInstr *B) const {
include/llvm/CodeGen/MachineFunction.h
  263   Recycler<MachineInstr> InstructionRecycler;
  377     virtual void MF_HandleInsertion(MachineInstr &MI) = 0;
  379     virtual void MF_HandleRemoval(MachineInstr &MI) = 0;
  400   using CallSiteInfoMap = DenseMap<const MachineInstr *, CallSiteInfo>;
  416   void handleInsertion(MachineInstr &MI);
  417   void handleRemoval(MachineInstr &MI);
  721   MachineInstr *CreateMachineInstr(const MCInstrDesc &MCID, const DebugLoc &DL,
  731   MachineInstr *CloneMachineInstr(const MachineInstr *Orig);
  731   MachineInstr *CloneMachineInstr(const MachineInstr *Orig);
  738   MachineInstr &CloneMachineInstrBundle(MachineBasicBlock &MBB,
  739       MachineBasicBlock::iterator InsertBefore, const MachineInstr &Orig);
  742   void DeleteMachineInstr(MachineInstr *MI);
  803   MachineInstr::ExtraInfo *createMIExtraInfo(
  984   void addCallArgsForwardingRegs(const MachineInstr *CallI,
 1000   void moveCallSiteInfo(const MachineInstr *Old,
 1001                         const MachineInstr *New);
 1005   void eraseCallSiteInfo(const MachineInstr *MI);
 1010   void copyCallSiteInfo(const MachineInstr *Old,
 1011                         const MachineInstr *New);
include/llvm/CodeGen/MachineInstr.h
   64     : public ilist_node_with_parent<MachineInstr, MachineBasicBlock,
  254   MachineInstr(MachineFunction &, const MachineInstr &);
  266   MachineInstr(const MachineInstr &) = delete;
  267   MachineInstr &operator=(const MachineInstr &) = delete;
  267   MachineInstr &operator=(const MachineInstr &) = delete;
  891            getFlag(MachineInstr::MIFlag::FPExcept);
 1003   bool isIdenticalTo(const MachineInstr &Other,
 1011   MachineInstr *removeFromParent();
 1018   MachineInstr *removeFromBundle();
 1452   bool mayAlias(AAResults *AA, const MachineInstr &Other, bool UseTBAA) const;
 1503   void copyImplicitOps(MachineFunction &MF, const MachineInstr &MI);
 1596   void cloneMemRefs(MachineFunction &MF, const MachineInstr &MI);
 1606                           ArrayRef<const MachineInstr *> MIs);
 1624   void cloneInstrSymbols(MachineFunction &MF, const MachineInstr &MI);
 1635   uint16_t mergeFlagsWith(const MachineInstr& Other) const;
 1655   void collectDebugValues(SmallVectorImpl<MachineInstr *> &DbgValues);
 1704 struct MachineInstrExpressionTrait : DenseMapInfo<MachineInstr*> {
 1705   static inline MachineInstr *getEmptyKey() {
 1709   static inline MachineInstr *getTombstoneKey() {
 1713   static unsigned getHashValue(const MachineInstr* const &MI);
 1715   static bool isEqual(const MachineInstr* const &LHS,
 1716                       const MachineInstr* const &RHS) {
 1720     return LHS->isIdenticalTo(*RHS, MachineInstr::IgnoreVRegDefs);
 1727 inline raw_ostream& operator<<(raw_ostream &OS, const MachineInstr &MI) {
include/llvm/CodeGen/MachineInstrBuilder.h
   62   MachineInstr *MI = nullptr;
   69   MachineInstrBuilder(MachineFunction &F, MachineInstr *I) : MF(&F), MI(I) {}
   74   operator MachineInstr*() const { return MI; }
   75   MachineInstr *operator->() const { return MI; }
   80   MachineInstr *getInstr() const { return MI; }
  204   const MachineInstrBuilder &cloneMemRefs(const MachineInstr &OtherMI) const {
  210   cloneMergedMemRefs(ArrayRef<const MachineInstr *> OtherMIs) const {
  269   const MachineInstrBuilder &setMIFlag(MachineInstr::MIFlag Flag) const {
  303   copyImplicitOps(const MachineInstr &OtherMI) const {
  337   MachineInstr *MI = MF.CreateMachineInstr(MCID, DL);
  353   MachineInstr *MI = MF.CreateMachineInstr(MCID, DL);
  358 inline MachineInstrBuilder BuildMI(MachineBasicBlock &BB, MachineInstr &I,
  368 inline MachineInstrBuilder BuildMI(MachineBasicBlock &BB, MachineInstr *I,
  382   MachineInstr *MI = MF.CreateMachineInstr(MCID, DL);
  392   MachineInstr *MI = MF.CreateMachineInstr(MCID, DL);
  397 inline MachineInstrBuilder BuildMI(MachineBasicBlock &BB, MachineInstr &I,
  407 inline MachineInstrBuilder BuildMI(MachineBasicBlock &BB, MachineInstr *I,
  462 MachineInstr *buildDbgValueForSpill(MachineBasicBlock &BB,
  464                                     const MachineInstr &Orig, int FrameIndex);
  468 void updateDbgValueForSpill(MachineInstr &Orig, int FrameIndex);
  530       MachineInstr &MI = *B;
  538   explicit MIBundleBuilder(MachineInstr *MI)
  572     MI->setFlag(MachineInstr::BundledPred);
  573     MI->setFlag(MachineInstr::BundledSucc);
  579   MIBundleBuilder &prepend(MachineInstr *MI) {
  585   MIBundleBuilder &append(MachineInstr *MI) {
include/llvm/CodeGen/MachineInstrBundle.h
   95   MachineInstr::mop_iterator OpI, OpE;
  116   explicit MachineOperandIteratorBase(MachineInstr &MI, bool WholeBundle) {
  209            SmallVectorImpl<std::pair<MachineInstr*, unsigned> > *Ops = nullptr);
  224   MIOperands(MachineInstr &MI) : MachineOperandIteratorBase(MI, false) {}
  233   ConstMIOperands(const MachineInstr &MI)
  244   MIBundleOperands(MachineInstr &MI) : MachineOperandIteratorBase(MI, true) {}
  254   ConstMIBundleOperands(const MachineInstr &MI)
include/llvm/CodeGen/MachineInstrBundleIterator.h
   26   using list_type = simple_ilist<T, ilist_sentinel_tracking<true>>;
   32   using list_type = simple_ilist<T, ilist_sentinel_tracking<true>>;
   38   using list_type = simple_ilist<T, ilist_sentinel_tracking<true>>;
   44   using list_type = simple_ilist<T, ilist_sentinel_tracking<true>>;
  109   using Traits = MachineInstrBundleIteratorTraits<Ty, IsReverse>;
  129   using reverse_iterator = MachineInstrBundleIterator<Ty, !IsReverse>;
  154       const MachineInstrBundleIterator<OtherTy, IsReverse> &I,
  155       typename std::enable_if<std::is_convertible<OtherTy *, Ty *>::value,
  155       typename std::enable_if<std::is_convertible<OtherTy *, Ty *>::value,
  170       const MachineInstrBundleIterator<Ty, !IsReverse> &I)
include/llvm/CodeGen/MachineOperand.h
  163   MachineInstr *ParentMI;
  235   MachineInstr *getParent() { return ParentMI; }
  236   const MachineInstr *getParent() const { return ParentMI; }
include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h
   41     MachineArgument(StringRef Key, const MachineInstr &MI);
include/llvm/CodeGen/MachinePipeliner.h
   79     MachineInstr *LoopInductionVar = nullptr;
   80     MachineInstr *LoopCompare = nullptr;
  146   using InstrMapTy = DenseMap<MachineInstr *, MachineInstr *>;
  146   using InstrMapTy = DenseMap<MachineInstr *, MachineInstr *>;
  153   DenseMap<MachineInstr*, MachineInstr *> NewMIs;
  153   DenseMap<MachineInstr*, MachineInstr *> NewMIs;
  263   void applyInstrChange(MachineInstr *MI, SMSchedule &Schedule);
  302   bool computeDelta(MachineInstr &MI, unsigned &Delta);
  303   MachineInstr *findDefInLoop(unsigned Reg);
  304   bool canUseLastOffsetValue(MachineInstr *MI, unsigned &BasePos,
  463   bool canReserveResources(const MachineInstr &MI) const;
  467   void reserveResources(const MachineInstr &MI);
  582   bool isLoopCarried(SwingSchedulerDAG *SSD, MachineInstr &Phi);
  583   bool isLoopCarriedDefOfUse(SwingSchedulerDAG *SSD, MachineInstr *Def,
include/llvm/CodeGen/MachineRegionInfo.h
   40   using InstT = MachineInstr;
include/llvm/CodeGen/MachineRegisterInfo.h
  596   MachineInstr *getVRegDef(unsigned Reg) const;
  601   MachineInstr *getUniqueVRegDef(unsigned Reg) const;
  824                            ArrayRef<MachineInstr*> Users) const {
  825     for (MachineInstr *MI : Users) {
  971     : public std::iterator<std::forward_iterator_tag, MachineInstr, ptrdiff_t> {
 1009                                     MachineInstr, ptrdiff_t>::reference;
 1011                                   MachineInstr, ptrdiff_t>::pointer;
 1031         MachineInstr *P = Op->getParent();
 1077     : public std::iterator<std::forward_iterator_tag, MachineInstr, ptrdiff_t> {
 1115                                     MachineInstr, ptrdiff_t>::reference;
 1117                                   MachineInstr, ptrdiff_t>::pointer;
 1137         MachineInstr *P = Op->getParent();
 1156     MachineInstr &operator*() const {
 1163     MachineInstr *operator->() const { return &operator*(); }
include/llvm/CodeGen/MachineSSAUpdater.h
   49   SmallVectorImpl<MachineInstr*> *InsertedPHIs;
   58                         SmallVectorImpl<MachineInstr*> *NewPHI = nullptr);
include/llvm/CodeGen/MachineScheduler.h
  339   void moveInstruction(MachineInstr *MI, MachineBasicBlock::iterator InsertPos);
include/llvm/CodeGen/MachineTraceMetrics.h
   78   const MachineInstr *MI = nullptr;
  298     InstrCycles getInstrCycles(const MachineInstr &MI) const {
  305     unsigned getInstrSlack(const MachineInstr &MI) const;
  309     unsigned getPHIDepth(const MachineInstr &PHI) const;
  314     bool isDepInTrace(const MachineInstr &DefMI,
  315                       const MachineInstr &UseMI) const;
  325     DenseMap<const MachineInstr*, InstrCycles> Cycles;
  335     void addLiveIns(const MachineInstr *DefMI, unsigned DefOp,
  364     void updateDepth(TraceBlockInfo &TBI, const MachineInstr&,
  366     void updateDepth(const MachineBasicBlock *, const MachineInstr&,
include/llvm/CodeGen/MacroFusion.h
   32                                                 const MachineInstr *FirstMI,
   33                                                 const MachineInstr &SecondMI)>;
include/llvm/CodeGen/ModuloSchedule.h
   86   std::vector<MachineInstr *> ScheduledInstrs;
   89   DenseMap<MachineInstr *, int> Cycle;
   92   DenseMap<MachineInstr *, int> Stage;
  106                  std::vector<MachineInstr *> ScheduledInstrs,
  107                  DenseMap<MachineInstr *, int> Cycle,
  108                  DenseMap<MachineInstr *, int> Stage)
  133   int getStage(MachineInstr *MI) {
  139   int getCycle(MachineInstr *MI) {
  145   ArrayRef<MachineInstr *> getInstructions() { return ScheduledInstrs; }
  155   using InstrChangesTy = DenseMap<MachineInstr *, std::pair<unsigned, int64_t>>;
  160   using InstrMapTy = DenseMap<MachineInstr *, MachineInstr *>;
  160   using InstrMapTy = DenseMap<MachineInstr *, MachineInstr *>;
  204   bool computeDelta(MachineInstr &MI, unsigned &Delta);
  205   void updateMemOperands(MachineInstr &NewMI, MachineInstr &OldMI,
  205   void updateMemOperands(MachineInstr &NewMI, MachineInstr &OldMI,
  207   MachineInstr *cloneInstr(MachineInstr *OldMI, unsigned CurStageNum,
  207   MachineInstr *cloneInstr(MachineInstr *OldMI, unsigned CurStageNum,
  209   MachineInstr *cloneAndChangeInstr(MachineInstr *OldMI, unsigned CurStageNum,
  209   MachineInstr *cloneAndChangeInstr(MachineInstr *OldMI, unsigned CurStageNum,
  211   void updateInstruction(MachineInstr *NewMI, bool LastDef,
  214   MachineInstr *findDefInLoop(unsigned Reg);
  222                              MachineInstr *Phi, unsigned OldReg,
  224   bool isLoopCarried(MachineInstr &Phi);
  296   DenseMap<MachineInstr *, MachineInstr *> CanonicalMIs;
  296   DenseMap<MachineInstr *, MachineInstr *> CanonicalMIs;
  297   DenseMap<std::pair<MachineBasicBlock *, MachineInstr *>, MachineInstr *>
  297   DenseMap<std::pair<MachineBasicBlock *, MachineInstr *>, MachineInstr *>
  332   void rewriteUsesOf(MachineInstr *MI);
  340   unsigned getStage(MachineInstr *MI) {
include/llvm/CodeGen/ReachingDefAnalysis.h
   59   DenseMap<MachineInstr *, int> InstIds;
   94   int getReachingDef(MachineInstr *MI, int PhysReg);
   98   int getClearance(MachineInstr *MI, MCPhysReg PhysReg);
  112   void processDefs(MachineInstr *);
include/llvm/CodeGen/RegisterPressure.h
  180   void collect(const MachineInstr &MI, const TargetRegisterInfo &TRI,
  186   void detectDeadDefs(const MachineInstr &MI, const LiveIntervals &LIS);
  194                           MachineInstr *AddFlagsMI = nullptr);
  478   void getMaxUpwardPressureDelta(const MachineInstr *MI,
  484   void getUpwardPressureDelta(const MachineInstr *MI,
  494   void getMaxDownwardPressureDelta(const MachineInstr *MI,
  502   void getMaxPressureDelta(const MachineInstr *MI,
  516   void getUpwardPressure(const MachineInstr *MI,
  521   void getDownwardPressure(const MachineInstr *MI,
  525   void getPressureAfterInst(const MachineInstr *MI,
  558   void bumpUpwardPressure(const MachineInstr *MI);
  559   void bumpDownwardPressure(const MachineInstr *MI);
include/llvm/CodeGen/RegisterScavenging.h
   57     const MachineInstr *Restore = nullptr;
include/llvm/CodeGen/ScheduleDAG.h
  247     MachineInstr *Instr = nullptr; ///< Alternatively, a MachineInstr.
  319     SUnit(MachineInstr *instr, unsigned nodenum)
  366     void setInstr(MachineInstr *MI) {
  373     MachineInstr *getInstr() const {
include/llvm/CodeGen/ScheduleDAGInstrs.h
  158     DenseMap<MachineInstr*, SUnit*> MISUnitMap;
  244         std::vector<std::pair<MachineInstr *, MachineInstr *>>;
  244         std::vector<std::pair<MachineInstr *, MachineInstr *>>;
  249     MachineInstr *FirstDbgValue = nullptr;
  278     SUnit *newSUnit(MachineInstr *MI);
  281     SUnit *getSUnit(MachineInstr *MI) const;
  373     void toggleKillFlag(MachineInstr &MI, MachineOperand &MO);
  384   inline SUnit *ScheduleDAGInstrs::newSUnit(MachineInstr *MI) {
  395   inline SUnit *ScheduleDAGInstrs::getSUnit(MachineInstr *MI) const {
  396     DenseMap<MachineInstr*, SUnit*>::const_iterator I = MISUnitMap.find(MI);
include/llvm/CodeGen/ScheduleHazardRecognizer.h
   75   virtual void EmitInstruction(MachineInstr *) {}
   88   virtual unsigned PreEmitNoops(MachineInstr *) {
include/llvm/CodeGen/SlotIndexes.h
   47     MachineInstr *mi;
   51     IndexListEntry(MachineInstr *mi, unsigned index) : mi(mi), index(index) {}
   53     MachineInstr* getInstr() const { return mi; }
   54     void setInstr(MachineInstr *mi) {
  324     using Mi2IndexMap = DenseMap<const MachineInstr *, SlotIndex>;
  334     IndexListEntry* createEntry(MachineInstr *mi, unsigned index) {
  385     bool hasIndex(const MachineInstr &instr) const {
  390     SlotIndex getInstructionIndex(const MachineInstr &MI) const {
  395       const MachineInstr &BundleNonDebug =
  406     MachineInstr* getInstructionFromIndex(SlotIndex index) const {
  425     SlotIndex getIndexBefore(const MachineInstr &MI) const {
  442     SlotIndex getIndexAfter(const MachineInstr &MI) const {
  518       if (MachineInstr *MI = getInstructionFromIndex(index))
  538     SlotIndex insertMachineInstrInMaps(MachineInstr &MI, bool Late = false) {
  581     void removeMachineInstrFromMaps(MachineInstr &MI);
  586     void removeSingleMachineInstrFromMaps(MachineInstr &MI);
  591     SlotIndex replaceMachineInstrInMaps(MachineInstr &MI, MachineInstr &NewMI) {
  591     SlotIndex replaceMachineInstrInMaps(MachineInstr &MI, MachineInstr &NewMI) {
include/llvm/CodeGen/StackMaps.h
   41   const MachineInstr* MI;
   44   explicit StackMapOpers(const MachineInstr *MI);
   82   const MachineInstr *MI;
   95   explicit PatchPointOpers(const MachineInstr *MI);
  168   explicit StatepointOpers(const MachineInstr *MI) : MI(MI) {}
  190   const MachineInstr *MI;
  269   void recordStackMap(const MachineInstr &MI);
  272   void recordPatchPoint(const MachineInstr &MI);
  275   void recordStatepoint(const MachineInstr &MI);
  296   MachineInstr::const_mop_iterator
  297   parseOperand(MachineInstr::const_mop_iterator MOI,
  298                MachineInstr::const_mop_iterator MOE, LocationVec &Locs,
  314   void recordStackMapOpers(const MachineInstr &MI, uint64_t ID,
  315                            MachineInstr::const_mop_iterator MOI,
  316                            MachineInstr::const_mop_iterator MOE,
include/llvm/CodeGen/TailDuplicator.h
   94   void processPHI(MachineInstr *MI, MachineBasicBlock *TailBB,
   99   void duplicateInstruction(MachineInstr *MI, MachineBasicBlock *TailBB,
  110                          SmallVectorImpl<MachineInstr *> &Copies);
  115                      SmallVectorImpl<MachineInstr *> &Copies);
  118                  SmallVectorImpl<MachineInstr *> &Copies);
include/llvm/CodeGen/TargetInstrInfo.h
   98   bool isTriviallyReMaterializable(const MachineInstr &MI,
  114   virtual bool isReallyTriviallyReMaterializable(const MachineInstr &MI,
  134   virtual MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  134   virtual MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  157   bool isReallyTriviallyReMaterializableGeneric(const MachineInstr &MI,
  170   bool isFrameInstr(const MachineInstr &I) const {
  176   bool isFrameSetup(const MachineInstr &I) const {
  188   int64_t getFrameSize(const MachineInstr &I) const {
  197   int64_t getFrameTotalSize(const MachineInstr &I) const {
  213   virtual int getSPAdjust(const MachineInstr &MI) const;
  220   virtual bool isCoalescableExtInstr(const MachineInstr &MI, unsigned &SrcReg,
  230   virtual unsigned isLoadFromStackSlot(const MachineInstr &MI,
  239   virtual unsigned isLoadFromStackSlot(const MachineInstr &MI,
  248   virtual unsigned isLoadFromStackSlotPostFE(const MachineInstr &MI,
  260       const MachineInstr &MI,
  268   virtual unsigned isStoreToStackSlot(const MachineInstr &MI,
  277   virtual unsigned isStoreToStackSlot(const MachineInstr &MI,
  286   virtual unsigned isStoreToStackSlotPostFE(const MachineInstr &MI,
  298       const MachineInstr &MI,
  304   virtual bool isStackSlotCopy(const MachineInstr &MI, int &DestFrameIndex,
  328   virtual unsigned getInstSizeInBytes(const MachineInstr &MI) const {
  336   virtual bool isAsCheapAsAMove(const MachineInstr &MI) const {
  345   virtual bool shouldSink(const MachineInstr &MI) const { return true; }
  362   virtual MachineInstr &duplicate(MachineBasicBlock &MBB,
  376   virtual MachineInstr *convertToThreeAddress(MachineFunction::iterator &MFI,
  404   MachineInstr *
  405   commuteInstruction(MachineInstr &MI, bool NewMI = false,
  426   virtual bool findCommutedOpIndices(const MachineInstr &MI,
  477   getRegSequenceInputs(const MachineInstr &MI, unsigned DefIdx,
  495   bool getExtractSubregInputs(const MachineInstr &MI, unsigned DefIdx,
  515   bool getInsertSubregInputs(const MachineInstr &MI, unsigned DefIdx,
  524   virtual bool produceSameValue(const MachineInstr &MI0,
  525                                 const MachineInstr &MI1,
  536   virtual MachineBasicBlock *getBranchDestBlock(const MachineInstr &MI) const {
  605     MachineInstr *ConditionDef = nullptr;
  676     virtual bool shouldIgnoreForPipelining(const MachineInstr *MI) const = 0;
  714   virtual bool analyzeLoop(MachineLoop &L, MachineInstr *&IndVarInst,
  715                            MachineInstr *&CmpInst) const {
  725                                    MachineInstr *IndVar, MachineInstr &Cmp,
  725                                    MachineInstr *IndVar, MachineInstr &Cmp,
  727                                    SmallVectorImpl<MachineInstr *> &PrevInsts,
  791   virtual unsigned predictBranchSizeForIfCvt(MachineInstr &MI) const {
  875   virtual bool analyzeSelect(const MachineInstr &MI,
  898   virtual MachineInstr *optimizeSelect(MachineInstr &MI,
  898   virtual MachineInstr *optimizeSelect(MachineInstr &MI,
  899                                        SmallPtrSetImpl<MachineInstr *> &NewMIs,
  925   virtual bool isCopyInstrImpl(const MachineInstr &MI,
  937   bool isCopyInstr(const MachineInstr &MI, const MachineOperand *&Source,
  978   virtual bool expandPostRAPseudo(MachineInstr &MI) const { return false; }
 1002   MachineInstr *foldMemoryOperand(MachineInstr &MI, ArrayRef<unsigned> Ops,
 1002   MachineInstr *foldMemoryOperand(MachineInstr &MI, ArrayRef<unsigned> Ops,
 1009   MachineInstr *foldMemoryOperand(MachineInstr &MI, ArrayRef<unsigned> Ops,
 1009   MachineInstr *foldMemoryOperand(MachineInstr &MI, ArrayRef<unsigned> Ops,
 1010                                   MachineInstr &LoadMI,
 1021       MachineInstr &Root,
 1034   bool isReassociationCandidate(const MachineInstr &Inst, bool &Commuted) const;
 1037   virtual bool isAssociativeAndCommutative(const MachineInstr &Inst) const {
 1042   virtual bool hasReassociableOperands(const MachineInstr &Inst,
 1046   bool hasReassociableSibling(const MachineInstr &Inst, bool &Commuted) const;
 1059       MachineInstr &Root, MachineCombinerPattern Pattern,
 1060       SmallVectorImpl<MachineInstr *> &InsInstrs,
 1061       SmallVectorImpl<MachineInstr *> &DelInstrs,
 1066   void reassociateOps(MachineInstr &Root, MachineInstr &Prev,
 1066   void reassociateOps(MachineInstr &Root, MachineInstr &Prev,
 1068                       SmallVectorImpl<MachineInstr *> &InsInstrs,
 1069                       SmallVectorImpl<MachineInstr *> &DelInstrs,
 1074   virtual void setSpecialOperandAttr(MachineInstr &OldMI1, MachineInstr &OldMI2,
 1074   virtual void setSpecialOperandAttr(MachineInstr &OldMI1, MachineInstr &OldMI2,
 1075                                      MachineInstr &NewMI1,
 1076                                      MachineInstr &NewMI2) const {}
 1091   virtual MachineInstr *
 1092   foldMemoryOperandImpl(MachineFunction &MF, MachineInstr &MI,
 1105   virtual MachineInstr *foldMemoryOperandImpl(
 1106       MachineFunction &MF, MachineInstr &MI, ArrayRef<unsigned> Ops,
 1121       const MachineInstr &MI, unsigned DefIdx,
 1134   virtual bool getExtractSubregLikeInputs(const MachineInstr &MI,
 1149   getInsertSubregLikeInputs(const MachineInstr &MI, unsigned DefIdx,
 1167   unfoldMemoryOperand(MachineFunction &MF, MachineInstr &MI, unsigned Reg,
 1169                       SmallVectorImpl<MachineInstr *> &NewMIs) const {
 1216   virtual bool getMemOperandWithOffset(const MachineInstr &MI,
 1226   virtual bool getBaseAndOffsetPosition(const MachineInstr &MI,
 1233   virtual bool getIncrementValue(const MachineInstr &MI, int &Value) const {
 1264   virtual bool isPostIncrement(const MachineInstr &MI) const { return false; }
 1267   virtual bool isPredicated(const MachineInstr &MI) const { return false; }
 1271   virtual bool isUnpredicatedTerminator(const MachineInstr &MI) const;
 1274   virtual bool isUnconditionalTailCall(const MachineInstr &MI) const {
 1280                                           const MachineInstr &TailCall) const {
 1287                                          const MachineInstr &TailCall) const {
 1293   virtual bool PredicateInstruction(MachineInstr &MI,
 1306   virtual bool DefinesPredicate(MachineInstr &MI,
 1314   virtual bool isPredicable(const MachineInstr &MI) const {
 1326   virtual bool isSchedulingBoundary(const MachineInstr &MI,
 1369   virtual bool analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
 1377   virtual bool optimizeCompareInstr(MachineInstr &CmpInstr, unsigned SrcReg,
 1382   virtual bool optimizeCondBranch(MachineInstr &MI) const { return false; }
 1391   virtual MachineInstr *optimizeLoadInstr(MachineInstr &MI,
 1391   virtual MachineInstr *optimizeLoadInstr(MachineInstr &MI,
 1394                                           MachineInstr *&DefMI) const {
 1404   virtual bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
 1404   virtual bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
 1414                                   const MachineInstr &MI) const;
 1437                                 const MachineInstr &DefMI, unsigned DefIdx,
 1438                                 const MachineInstr &UseMI,
 1445                                    const MachineInstr &MI,
 1448   virtual unsigned getPredicationCost(const MachineInstr &MI) const;
 1455                              const MachineInstr &DefMI) const;
 1458                                const MachineInstr &DefMI) const;
 1470                                      const MachineInstr &DefMI, unsigned DefIdx,
 1471                                      const MachineInstr &UseMI,
 1479                                 const MachineInstr &DefMI,
 1483   virtual bool verifyInstruction(const MachineInstr &MI,
 1508   getExecutionDomain(const MachineInstr &MI) const {
 1516   virtual void setExecutionDomain(MachineInstr &MI, unsigned Domain) const {}
 1558   getPartialRegUpdateClearance(const MachineInstr &MI, unsigned OpNum,
 1578   virtual unsigned getUndefRegClearance(const MachineInstr &MI, unsigned &OpNum,
 1601   virtual void breakPartialRegDependency(MachineInstr &MI, unsigned OpNum,
 1622   areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
 1623                                   const MachineInstr &MIb) const {
 1689   virtual bool isTailCall(const MachineInstr &Inst) const {
 1696   virtual bool isBasicBlockPrologue(const MachineInstr &MI) const {
 1703   virtual MachineInstr *createPHIDestinationCopy(
 1713   virtual MachineInstr *createPHISourceCopy(MachineBasicBlock &MBB,
 1780   describeLoadedValue(const MachineInstr &MI) const;
include/llvm/CodeGen/TargetLowering.h
 2924   MachineBasicBlock *emitPatchPoint(MachineInstr &MI,
 2929   MachineBasicBlock *emitXRayCustomEvent(MachineInstr &MI,
 2934   MachineBasicBlock *emitXRayTypedEvent(MachineInstr &MI,
 2990   virtual bool isIndexingLegal(MachineInstr &MI, Register Base, Register Offset,
 4204   EmitInstrWithCustomInserter(MachineInstr &MI, MachineBasicBlock *MBB) const;
 4210   virtual void AdjustInstrPostInstrSelection(MachineInstr &MI,
include/llvm/CodeGen/TargetRegisterInfo.h
  872   virtual int64_t getFrameIndexInstrOffset(const MachineInstr *MI,
  881   virtual bool needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const {
  896   virtual void resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
  903   virtual bool isFrameOffsetLegal(const MachineInstr *MI, unsigned BaseReg,
  946   virtual bool shouldCoalesce(MachineInstr *MI,
include/llvm/CodeGen/TargetSchedule.h
   56   const MCSchedClassDesc *resolveSchedClass(const MachineInstr *MI) const;
   98   bool mustBeginGroup(const MachineInstr *MI,
  101   bool mustEndGroup(const MachineInstr *MI,
  105   unsigned getNumMicroOps(const MachineInstr *MI,
  170   unsigned computeOperandLatency(const MachineInstr *DefMI, unsigned DefOperIdx,
  171                                  const MachineInstr *UseMI, unsigned UseOperIdx)
  185   unsigned computeInstrLatency(const MachineInstr *MI,
  194   unsigned computeOutputLatency(const MachineInstr *DefMI, unsigned DefOperIdx,
  195                                 const MachineInstr *DepMI) const;
  198   double computeReciprocalThroughput(const MachineInstr *MI) const;
include/llvm/CodeGen/TargetSubtargetInfo.h
  140                                      const MachineInstr *MI,
  154   virtual bool isZeroIdiom(const MachineInstr *MI, APInt &Mask) const {
  165   virtual bool isDependencyBreaking(const MachineInstr *MI, APInt &Mask) const {
  178   virtual bool isOptimizableRegisterMove(const MachineInstr *MI) const {
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
   91   typedef PointerLikeTypeTraits<T *> NonConst;
   93   static inline const void *getAsVoidPointer(const T *P) {
   96   static inline const T *getFromVoidPointer(const void *P) {
include/llvm/Support/Recycler.h
   83   SubClass *Allocate(AllocatorType &Allocator) {
   84     static_assert(alignof(SubClass) <= Align,
   86     static_assert(sizeof(SubClass) <= Size,
   93   T *Allocate(AllocatorType &Allocator) {
   93   T *Allocate(AllocatorType &Allocator) {
   98   void Deallocate(AllocatorType & /*Allocator*/, SubClass* Element) {
include/llvm/Transforms/Utils/SSAUpdaterImpl.h
  390     for (auto &SomePHI : BB->phis()) {
lib/CodeGen/AggressiveAntiDepBreaker.cpp
  196 void AggressiveAntiDepBreaker::Observe(MachineInstr &MI, unsigned Count,
  230 bool AggressiveAntiDepBreaker::IsImplicitDefUse(MachineInstr &MI,
  249     MachineInstr &MI, std::set<unsigned> &PassthruRegs) {
  355     MachineInstr &MI, unsigned Count, std::set<unsigned> &PassthruRegs) {
  443 void AggressiveAntiDepBreaker::ScanInstruction(MachineInstr &MI,
  705         MachineInstr *UseMI = Q.second.Operand->getParent();
  723         MachineInstr *DefMI = Q.second.Operand->getParent();
  772   std::map<MachineInstr *, const SUnit *> MISUnitMap;
  783   MachineInstr *CriticalPathMI = nullptr;
  816     MachineInstr &MI = *--I;
lib/CodeGen/AggressiveAntiDepBreaker.h
  150     void Observe(MachineInstr &MI, unsigned Count,
  162     bool IsImplicitDefUse(MachineInstr &MI, MachineOperand &MO);
  166     void GetPassthruRegs(MachineInstr &MI, std::set<unsigned> &PassthruRegs);
  172     void PrescanInstruction(MachineInstr &MI, unsigned Count,
  174     void ScanInstruction(MachineInstr &MI, unsigned Count);
lib/CodeGen/AntiDepBreaker.h
   34       std::vector<std::pair<MachineInstr *, MachineInstr *>>;
   34       std::vector<std::pair<MachineInstr *, MachineInstr *>>;
   51   virtual void Observe(MachineInstr &MI, unsigned Count,
   59   void UpdateDbgValue(MachineInstr &MI, unsigned OldReg, unsigned NewReg) {
   67   void UpdateDbgValues(const DbgValueVector &DbgValues, MachineInstr *ParentMI,
   71     MachineInstr *PrevDbgMI = nullptr;
   73       MachineInstr *PrevMI = DV.second;
   75         MachineInstr *DbgMI = DV.first;
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  764 static void emitComments(const MachineInstr &MI, raw_ostream &CommentOS) {
  786   if (MI.getAsmPrinterFlag(MachineInstr::ReloadReuse))
  792 void AsmPrinter::emitImplicitDef(const MachineInstr *MI) const {
  804 static void emitKill(const MachineInstr *MI, AsmPrinter &AP) {
  821 static bool emitDebugValueComment(const MachineInstr *MI, AsmPrinter &AP) {
  911 static bool emitDebugLabelComment(const MachineInstr *MI, AsmPrinter &AP) {
  948 void AsmPrinter::emitCFIInstruction(const MachineInstr &MI) {
  973 void AsmPrinter::emitFrameAlloc(const MachineInstr &MI) {
 1055     for (auto &MI : MBB) {
 3034   for (const auto &MI : Pred->terminators()) {
 3179 void AsmPrinter::recordSled(MCSymbol *Sled, const MachineInstr &MI,
lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
  171 static void EmitMSInlineAsmStr(const char *AsmStr, const MachineInstr *MI,
  283 static void EmitGCCInlineAsmStr(const char *AsmStr, const MachineInstr *MI,
  468 void AsmPrinter::EmitInlineAsm(const MachineInstr *MI) const {
  576 void AsmPrinter::PrintSpecial(const MachineInstr *MI, raw_ostream &OS,
  613 bool AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  655 bool AsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
 1218     const MachineInstr *DVInst = Entry.getInstr();
 1408     for (const auto &MI : MBB) {
 1409       if (!MI.isMetaInstruction() && !MI.getFlag(MachineInstr::FrameSetup) &&
 1427     for (const auto &MI : MBB) {
 2859     for (const auto &MI : MBB) {
 2883 void CodeViewDebug::beginInstruction(const MachineInstr *MI) {
 2888       MI->getFlag(MachineInstr::FrameSetup))
 2895     for (const auto &NextMI : *MI->getParent()) {
lib/CodeGen/AsmPrinter/CodeViewDebug.h
  464   void beginInstruction(const MachineInstr *MI) override;
lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp
   41 static Register isDescribedByReg(const MachineInstr &MI) {
   54                                        const MachineInstr &MI,
   74                                             const MachineInstr &MI) {
   92 void DbgLabelInstrMap::addInstr(InlinedEntity Label, const MachineInstr &MI) {
  137                               const MachineInstr &ClobberingInstr,
  159 static void handleNewDebugValue(InlinedEntity Var, const MachineInstr &DV,
  174       const MachineInstr &DV = *Entry.getInstr();
  241     for (const auto &MI : MBB) {
  286                    (!MI.getFlag(MachineInstr::FrameDestroy) &&
  287                    !MI.getFlag(MachineInstr::FrameSetup))) {
lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
   31     const MachineInstr &Instruction) {
  116 MCSymbol *DebugHandlerBase::getLabelBeforeInsn(const MachineInstr *MI) {
  123 MCSymbol *DebugHandlerBase::getLabelAfterInsn(const MachineInstr *MI) {
  129 DebugHandlerBase::getFunctionLocalOffsetAfterInsn(const MachineInstr *MI) {
  270     const MachineInstr *MI = I.second;
  279 void DebugHandlerBase::beginInstruction(const MachineInstr *MI) {
  287   DenseMap<const MachineInstr *, MCSymbol *>::iterator I =
  317   DenseMap<const MachineInstr *, MCSymbol *>::iterator I =
lib/CodeGen/AsmPrinter/DebugLocStream.h
  160   const MachineInstr &MI;
  165               DbgVariable &V, const MachineInstr &MI)
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  232 static DbgValueLoc getDebugLocValue(const MachineInstr *MI) {
  254 void DbgVariable::initializeDbgValue(const MachineInstr *DbgValue) {
  540 static void collectCallSiteParameters(const MachineInstr *CallMI,
  709     for (const MachineInstr &MI : MBB.instrs()) {
 1299                             const MachineInstr *DbgValue,
 1300                             const MachineInstr *RangeEnd) {
 1313   const MachineInstr *LScopeBegin = LSRange.front().first;
 1319     if (Pred->getFlag(MachineInstr::FrameSetup))
 1338   const MachineInstr *LScopeEnd = LSRange.back().second;
 1391   const MachineInstr *StartDebugMI = nullptr;
 1392   const MachineInstr *EndMI = nullptr;
 1395     const MachineInstr *Instr = EI->getInstr();
 1538     const MachineInstr *MInsn = HistoryMapEntries.front().getInstr();
 1548       const auto *End =
 1590     const MachineInstr *MI = I.second;
 1633 void DwarfDebug::beginInstruction(const MachineInstr *MI) {
 1644   if (MI->isMetaInstruction() || MI->getFlag(MachineInstr::FrameSetup))
 1730     for (const auto &MI : MBB)
 1731       if (!MI.isMetaInstruction() && !MI.getFlag(MachineInstr::FrameSetup) &&
lib/CodeGen/AsmPrinter/DwarfDebug.h
  163   void initializeDbgValue(const MachineInstr *DbgValue);
  613   void beginInstruction(const MachineInstr *MI) override;
lib/CodeGen/AsmPrinter/EHStreamer.cpp
  168 bool EHStreamer::callToNoUnwindFunction(const MachineInstr *MI) {
  244     for (const auto &MI : MBB) {
lib/CodeGen/AsmPrinter/EHStreamer.h
  130   void beginInstruction(const MachineInstr *MI) override {}
  135   static bool callToNoUnwindFunction(const MachineInstr *MI);
lib/CodeGen/AsmPrinter/WinCFGuard.h
   48   void beginInstruction(const MachineInstr *MI) override {}
lib/CodeGen/AsmPrinter/WinException.cpp
  457       const MachineInstr &MI = *MBBI;
lib/CodeGen/BranchFolding.cpp
  167     if (MI.isCall(MachineInstr::IgnoreBundle))
  231     for (const MachineInstr &I : BB)
  256 static unsigned HashMachineInstr(const MachineInstr &MI) {
  305 static bool countsAsInstruction(const MachineInstr &MI) {
  903   for (auto &MI : *MBB) {
 1347   for (MachineInstr &MI : MBB.instrs())
 1359   for (MachineInstr &MI : MBB.instrs())
 1491           MachineInstr &DuplicateDbg = *MBBIter;
 1587     MachineInstr &TailCall = *MBB->getFirstNonDebugInstr();
 2005     if (!TIB->isIdenticalTo(*FIB, MachineInstr::CheckKillDead))
lib/CodeGen/BranchRelaxation.cpp
   95   MachineBasicBlock *splitBlockBeforeInstr(MachineInstr &MI,
   98   bool isBlockInRange(const MachineInstr &MI, const MachineBasicBlock &BB) const;
  100   bool fixupConditionalBranch(MachineInstr &MI);
  101   bool fixupUnconditionalBranch(MachineInstr &MI);
  103   unsigned getInstrOffset(const MachineInstr &MI) const;
  170   for (const MachineInstr &MI : MBB)
  178 unsigned BranchRelaxation::getInstrOffset(const MachineInstr &MI) const {
  225 MachineBasicBlock *BranchRelaxation::splitBlockBeforeInstr(MachineInstr &MI,
  281   const MachineInstr &MI, const MachineBasicBlock &DestBB) const {
  300 bool BranchRelaxation::fixupConditionalBranch(MachineInstr &MI) {
  438 bool BranchRelaxation::fixupUnconditionalBranch(MachineInstr &MI) {
  513       MachineInstr &MI = *J;
lib/CodeGen/BreakFalseDeps.cpp
   41   std::vector<std::pair<MachineInstr *, unsigned>> UndefReads;
   74   void processDefs(MachineInstr *MI);
   81   bool pickBestRegisterForUndef(MachineInstr *MI, unsigned OpIdx,
   86   bool shouldBreakDependence(MachineInstr *, unsigned OpIdx, unsigned Pref);
  107 bool BreakFalseDeps::pickBestRegisterForUndef(MachineInstr *MI, unsigned OpIdx,
  163 bool BreakFalseDeps::shouldBreakDependence(MachineInstr *MI, unsigned OpIdx,
  177 void BreakFalseDeps::processDefs(MachineInstr *MI) {
  229   MachineInstr *UndefMI = UndefReads.back().first;
  232   for (MachineInstr &I : make_range(MBB->rbegin(), MBB->rend())) {
  256   for (MachineInstr &MI : *MBB) {
lib/CodeGen/CFGuardLongjmp.cpp
   70   SmallVector<MachineInstr *, 8> SetjmpCalls;
   75     for (MachineInstr &MI : MBB) {
  108   for (MachineInstr *Setjmp : SetjmpCalls) {
lib/CodeGen/CFIInstrInserter.cpp
  166   for (MachineInstr &MI : *MBBInfo.MBB) {
lib/CodeGen/CalcSpillWeights.cpp
   51 static Register copyHint(const MachineInstr *mi, unsigned reg,
   99     MachineInstr *MI = LIS.getInstructionFromIndex(VNI->def);
  160   SmallPtrSet<MachineInstr*, 8> visited;
  209     MachineInstr *mi = &*(I++);
lib/CodeGen/CriticalAntiDepBreaker.cpp
  106 void CriticalAntiDepBreaker::Observe(MachineInstr &MI, unsigned Count,
  165 void CriticalAntiDepBreaker::PrescanInstruction(MachineInstr &MI) {
  252 void CriticalAntiDepBreaker::ScanInstruction(MachineInstr &MI, unsigned Count) {
  360     MachineInstr *MI = RefOper->getParent();
  450   DenseMap<MachineInstr *, const SUnit *> MISUnitMap;
  478   MachineInstr *CriticalPathMI = CriticalPathSU->getInstr();
  529     MachineInstr &MI = *--I;
lib/CodeGen/CriticalAntiDepBreaker.h
   90     void Observe(MachineInstr &MI, unsigned Count,
   97     void PrescanInstruction(MachineInstr &MI);
   98     void ScanInstruction(MachineInstr &MI, unsigned Count);
lib/CodeGen/DFAPacketizer.cpp
  121 bool DFAPacketizer::canReserveResources(MachineInstr &MI) {
  128 void DFAPacketizer::reserveResources(MachineInstr &MI) {
  221     MachineInstr &MIFirst = *CurrentPacketMIs.front();
  260     MachineInstr &MI = *BeginItr;
  347 bool VLIWPacketizerList::alias(const MachineInstr &MI1,
  348                                const MachineInstr &MI2,
lib/CodeGen/DeadMachineInstructionElim.cpp
   49     bool isDead(const MachineInstr *MI) const;
   58 bool DeadMachineInstructionElim::isDead(const MachineInstr *MI) const {
   84         for (const MachineInstr &Use : MRI->use_nodbg_instructions(Reg)) {
  125       MachineInstr *MI = &*MII++;
lib/CodeGen/DetectDeadLanes.cpp
   80   void transferUsedLanesStep(const MachineInstr &MI, LaneBitmask UsedLanes);
   96   LaneBitmask transferUsedLanes(const MachineInstr &MI, LaneBitmask UsedLanes,
  137 static bool lowersToCopies(const MachineInstr &MI) {
  153                         const MachineInstr &MI,
  219 void DetectDeadLanes::transferUsedLanesStep(const MachineInstr &MI,
  229 LaneBitmask DetectDeadLanes::transferUsedLanes(const MachineInstr &MI,
  280   const MachineInstr &MI = *Use.getParent();
  312   const MachineInstr &MI = *Def.getParent();
  359   const MachineInstr &DefMI = *Def.getParent();
  393           const MachineInstr &MODefMI = *MODef.getParent();
  423     const MachineInstr &UseMI = *MO.getParent();
  469   const MachineInstr &MI = *MO.getParent();
  515     const MachineInstr &MI = *Def.getParent();
  535     for (MachineInstr &MI : MBB) {
lib/CodeGen/EarlyIfConversion.cpp
  111     MachineInstr *PHI;
  116     PHIInfo(MachineInstr *phi)
  128   SmallPtrSet<MachineInstr*, 8> InsertAfter;
  150   bool InstrDependenciesAllowIfConv(MachineInstr *I);
  254 bool SSAIfConv::InstrDependenciesAllowIfConv(MachineInstr *I) {
  271     MachineInstr *DefMI = MRI->getVRegDef(Reg);
  987     for (MachineInstr &I : IfBlock) {
 1001   for (MachineInstr &I : *IfConv.TBB) {
 1007   for (MachineInstr &I : *IfConv.FBB) {
lib/CodeGen/ExecutionDomainFix.cpp
  222 bool ExecutionDomainFix::visitInstr(MachineInstr *MI) {
  235 void ExecutionDomainFix::processDefs(MachineInstr *MI, bool Kill) {
  257 void ExecutionDomainFix::visitHardInstr(MachineInstr *mi, unsigned domain) {
  282 void ExecutionDomainFix::visitSoftInstr(MachineInstr *mi, unsigned mask) {
  402   for (MachineInstr &MI : *TraversedMBB.MBB) {
lib/CodeGen/ExpandPostRAPseudos.cpp
   50   bool LowerSubregToReg(MachineInstr *MI);
   51   bool LowerCopy(MachineInstr *MI);
   53   void TransferImplicitOperands(MachineInstr *MI);
   66 void ExpandPostRA::TransferImplicitOperands(MachineInstr *MI) {
   75 bool ExpandPostRA::LowerSubregToReg(MachineInstr *MI) {
  134 bool ExpandPostRA::LowerCopy(MachineInstr *MI) {
  194       MachineInstr &MI = *mi;
lib/CodeGen/FinalizeISel.cpp
   56       MachineInstr &MI = *MBBI++;
lib/CodeGen/GlobalISel/CSEInfo.cpp
  134 UniqueMachineInstr *GISelCSEInfo::getUniqueInstrForMI(const MachineInstr *MI) {
  140 void GISelCSEInfo::insertInstr(MachineInstr *MI, void *InsertPos) {
  148 MachineInstr *GISelCSEInfo::getMachineInstrIfExists(FoldingSetNodeID &ID,
  169 void GISelCSEInfo::recordNewInstruction(MachineInstr *MI) {
  176 void GISelCSEInfo::handleRecordedInst(MachineInstr *MI) {
  198 void GISelCSEInfo::handleRemoveInst(MachineInstr *MI) {
  208     auto *MI = TemporaryInsts.pop_back_val();
  221 void GISelCSEInfo::erasingInstr(MachineInstr &MI) { handleRemoveInst(&MI); }
  222 void GISelCSEInfo::createdInstr(MachineInstr &MI) { recordNewInstruction(&MI); }
  223 void GISelCSEInfo::changingInstr(MachineInstr &MI) {
  228 void GISelCSEInfo::changedInstr(MachineInstr &MI) { changingInstr(MI); }
  235     for (MachineInstr &MI : MBB) {
  268 GISelInstProfileBuilder::addNodeID(const MachineInstr *MI) const {
lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
   39   MachineInstr *MI =
  109   MachineInstr *MIBInstr = MIB;
lib/CodeGen/GlobalISel/Combiner.cpp
   56   SmallPtrSet<const MachineInstr *, 4> CreatedInstrs;
   64   void erasingInstr(MachineInstr &MI) override {
   68   void createdInstr(MachineInstr &MI) override {
   73   void changingInstr(MachineInstr &MI) override {
   77   void changedInstr(MachineInstr &MI) override {
  136         MachineInstr *CurMI = &*MII;
  150       MachineInstr *CurrInst = WorkList.pop_back_val();
lib/CodeGen/GlobalISel/CombinerHelper.cpp
   65 bool CombinerHelper::tryCombineCopy(MachineInstr &MI) {
   72 bool CombinerHelper::matchCombineCopy(MachineInstr &MI) {
   85 void CombinerHelper::applyCombineCopy(MachineInstr &MI) {
   92 bool CombinerHelper::tryCombineConcatVectors(MachineInstr &MI) {
  102 bool CombinerHelper::matchCombineConcatVectors(MachineInstr &MI, bool &IsUndef,
  107   MachineInstr *Undef = nullptr;
  117     MachineInstr *Def = MRI.getVRegDef(Reg);
  155     MachineInstr &MI, bool IsUndef, const ArrayRef<Register> Ops) {
  176 bool CombinerHelper::tryCombineShuffleVector(MachineInstr &MI) {
  185 bool CombinerHelper::matchCombineShuffleVector(MachineInstr &MI,
  251 void CombinerHelper::applyCombineShuffleVector(MachineInstr &MI,
  270                                   MachineInstr *MIForCandidate) {
  321     MachineIRBuilder &Builder, MachineInstr &DefMI, MachineOperand &UseMO,
  325   MachineInstr &UseMI = *UseMO.getParent();
  348 bool CombinerHelper::tryCombineExtendingLoads(MachineInstr &MI) {
  357 bool CombinerHelper::matchCombineExtendingLoads(MachineInstr &MI,
  402   for (auto &UseMI : MRI.use_instructions(LoadValue.getReg())) {
  423 void CombinerHelper::applyCombineExtendingLoads(MachineInstr &MI,
  430   DenseMap<MachineBasicBlock *, MachineInstr *> EmittedInsns;
  434     MachineInstr *PreviouslyEmitted = EmittedInsns.lookup(InsertIntoBB);
  444     MachineInstr *NewMI = Builder.buildTrunc(NewDstReg, ChosenDstReg);
  464     MachineInstr *UseMI = UseMO->getParent();
  533 bool CombinerHelper::isPredecessor(MachineInstr &DefMI, MachineInstr &UseMI) {
  533 bool CombinerHelper::isPredecessor(MachineInstr &DefMI, MachineInstr &UseMI) {
  546 bool CombinerHelper::dominates(MachineInstr &DefMI, MachineInstr &UseMI) {
  546 bool CombinerHelper::dominates(MachineInstr &DefMI, MachineInstr &UseMI) {
  555 bool CombinerHelper::findPostIndexCandidate(MachineInstr &MI, Register &Addr,
  567   MachineInstr *BaseDef = MRI.getUniqueVRegDef(Base);
  573   for (auto &Use : MRI.use_instructions(Base)) {
  588     MachineInstr *OffsetDef = MRI.getUniqueVRegDef(Offset);
  600     for (auto &GEPUse : MRI.use_instructions(Use.getOperand(0).getReg())) {
  622 bool CombinerHelper::findPreIndexCandidate(MachineInstr &MI, Register &Addr,
  634   MachineInstr *AddrDef = getOpcodeDef(TargetOpcode::G_GEP, Addr, MRI);
  649   MachineInstr *BaseDef = getDefIgnoringCopies(Base, MRI);
  673   for (auto &UseMI : MRI.use_instructions(Addr)) {
  683 bool CombinerHelper::tryCombineIndexedLoadStore(MachineInstr &MI) {
  714   MachineInstr &AddrDef = *MRI.getUniqueVRegDef(Addr);
  735 bool CombinerHelper::matchElideBrByInvertingCond(MachineInstr &MI) {
  760   MachineInstr *BrCond = &*std::prev(BrIt);
  768   MachineInstr *CmpMI = MRI.getVRegDef(BrCond->getOperand(0).getReg());
  775 bool CombinerHelper::tryElideBrByInvertingCond(MachineInstr &MI) {
  782 void CombinerHelper::applyElideBrByInvertingCond(MachineInstr &MI) {
  785   MachineInstr *BrCond = &*std::prev(BrIt);
  786   MachineInstr *CmpMI = MRI.getVRegDef(BrCond->getOperand(0).getReg());
  919 bool CombinerHelper::optimizeMemset(MachineInstr &MI, Register Dst, Register Val,
  933   MachineInstr *FIDef = getOpcodeDef(TargetOpcode::G_FRAME_INDEX, Dst, MRI);
 1032 bool CombinerHelper::optimizeMemcpy(MachineInstr &MI, Register Dst,
 1048   MachineInstr *FIDef = getOpcodeDef(TargetOpcode::G_FRAME_INDEX, Dst, MRI);
 1140 bool CombinerHelper::optimizeMemmove(MachineInstr &MI, Register Dst,
 1156   MachineInstr *FIDef = getOpcodeDef(TargetOpcode::G_FRAME_INDEX, Dst, MRI);
 1247 bool CombinerHelper::tryCombineMemCpyFamily(MachineInstr &MI, unsigned MaxLen) {
 1298 bool CombinerHelper::tryCombine(MachineInstr &MI) {
lib/CodeGen/GlobalISel/GISelChangeObserver.cpp
   20   for (auto &ChangingMI : MRI.use_instructions(Reg)) {
   27   for (auto *ChangedMI : ChangingAllUsesOfReg)
lib/CodeGen/GlobalISel/GISelKnownBits.cpp
   43 MaybeAlign GISelKnownBits::inferPtrAlignment(const MachineInstr &MI) {
   54   const MachineInstr &MI = *MRI.getVRegDef(R);
   65 KnownBits GISelKnownBits::getKnownBits(MachineInstr &MI) {
   93   MachineInstr &MI = *MRI.getVRegDef(R);
lib/CodeGen/GlobalISel/IRTranslator.cpp
  128   void erasingInstr(MachineInstr &MI) override {}
  129   void changingInstr(MachineInstr &MI) override {}
  130   void changedInstr(MachineInstr &MI) override {}
  132   void createdInstr(MachineInstr &MI) override {
  299     Flags = MachineInstr::copyFlagsFromInstruction(I);
  315       Flags = MachineInstr::copyFlagsFromInstruction(I);
  330     Flags = MachineInstr::copyFlagsFromInstruction(I);
  356                           MachineInstr::copyFlagsFromInstruction(*CI));
 1011     Flags = MachineInstr::copyFlagsFromInstruction(*Cmp);
 1274                         MachineInstr::copyFlagsFromInstruction(CI));
 1419                             MachineInstr::copyFlagsFromInstruction(CI));
 1423                                         MachineInstr::copyFlagsFromInstruction(CI));
 1425                             MachineInstr::copyFlagsFromInstruction(CI));
 1832                                       MachineInstr::NoUWrap);
 1930   SmallVector<MachineInstr *, 4> Insts;
 2055     ArrayRef<MachineInstr *> ComponentPHIs = Phi.second;
lib/CodeGen/GlobalISel/InstructionSelect.cpp
   93     if (const MachineInstr *MI = machineFunctionIsIllegal(MF)) {
  117       MachineInstr &MI = *MII;
  161       MachineInstr &MI = *MII;
  192     MachineInstr *MI = nullptr;
  235     for (const auto &MI : MBB) {
lib/CodeGen/GlobalISel/InstructionSelector.cpp
   37     MachineInstr &I, unsigned OpIdx, const TargetRegisterClass &RC,
   62   MachineInstr *RootI = MRI.getVRegDef(Root.getReg());
   67   MachineInstr *RHSI = MRI.getVRegDef(RHS.getReg());
   74 bool InstructionSelector::isObviouslySafeToFold(MachineInstr &MI,
   75                                                 MachineInstr &IntoMI) const {
lib/CodeGen/GlobalISel/Legalizer.cpp
   66 static bool isArtifact(const MachineInstr &MI) {
   90   SmallVector<MachineInstr *, 4> NewMIs;
   97   void createdOrChangedInstr(MachineInstr &MI) {
  109   void createdInstr(MachineInstr &MI) override {
  123   void erasingInstr(MachineInstr &MI) override {
  129   void changingInstr(MachineInstr &MI) override {
  133   void changedInstr(MachineInstr &MI) override {
  167     for (MachineInstr &MI : *MBB) {
  215   SmallVector<MachineInstr *, 128> RetryList;
  220       MachineInstr &MI = *InstList.pop_back_val();
  253         MachineInstr *MI = *RetryList.begin();
  259       MachineInstr &MI = *ArtifactList.pop_back_val();
  267       SmallVector<MachineInstr *, 4> DeadInstructions;
  271         for (auto *DeadMI : DeadInstructions) {
lib/CodeGen/GlobalISel/LegalizerHelper.cpp
   83 LegalizerHelper::legalizeInstrStep(MachineInstr &MI) {
  332 static bool isLibCallInTailPosition(MachineInstr &MI) {
  352   MachineInstr *Next = MI.getNextNode();
  380 simpleLibcall(MachineInstr &MI, MachineIRBuilder &MIRBuilder, unsigned Size,
  393                        MachineInstr &MI) {
  482 conversionLibcall(MachineInstr &MI, MachineIRBuilder &MIRBuilder, Type *ToType,
  490 LegalizerHelper::libcall(MachineInstr &MI) {
  597 LegalizerHelper::LegalizeResult LegalizerHelper::narrowScalar(MachineInstr &MI,
 1081 void LegalizerHelper::widenScalarSrc(MachineInstr &MI, LLT WideTy,
 1088 void LegalizerHelper::narrowScalarSrc(MachineInstr &MI, LLT NarrowTy,
 1096 void LegalizerHelper::widenScalarDst(MachineInstr &MI, LLT WideTy,
 1105 void LegalizerHelper::narrowScalarDst(MachineInstr &MI, LLT NarrowTy,
 1114 void LegalizerHelper::moreElementsVectorDst(MachineInstr &MI, LLT WideTy,
 1123 void LegalizerHelper::moreElementsVectorSrc(MachineInstr &MI, LLT MoreTy,
 1154 LegalizerHelper::widenScalarMergeValues(MachineInstr &MI, unsigned TypeIdx,
 1276 LegalizerHelper::widenScalarUnmergeValues(MachineInstr &MI, unsigned TypeIdx,
 1316 LegalizerHelper::widenScalarExtract(MachineInstr &MI, unsigned TypeIdx,
 1395 LegalizerHelper::widenScalarInsert(MachineInstr &MI, unsigned TypeIdx,
 1407 LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
 1909 LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 2286     MachineInstr &MI, unsigned TypeIdx, LLT NarrowTy) {
 2314 LegalizerHelper::fewerElementsVectorBasic(MachineInstr &MI, unsigned TypeIdx,
 2420   MachineInstr &MI, unsigned TypeIdx, LLT NarrowTyArg) {
 2503 LegalizerHelper::fewerElementsVectorCasts(MachineInstr &MI, unsigned TypeIdx,
 2534     MachineInstr *NewInst = MIRBuilder.buildInstr(MI.getOpcode())
 2552 LegalizerHelper::fewerElementsVectorCmp(MachineInstr &MI, unsigned TypeIdx,
 2603       MachineInstr *NewCmp
 2619 LegalizerHelper::fewerElementsVectorSelect(MachineInstr &MI, unsigned TypeIdx,
 2691 LegalizerHelper::fewerElementsVectorPhi(MachineInstr &MI, unsigned TypeIdx,
 2758 LegalizerHelper::fewerElementsVectorUnmergeValues(MachineInstr &MI,
 2798 LegalizerHelper::fewerElementsVectorBuildVector(MachineInstr &MI,
 2857 LegalizerHelper::reduceLoadStoreWidth(MachineInstr &MI, unsigned TypeIdx,
 2944 LegalizerHelper::fewerElementsVector(MachineInstr &MI, unsigned TypeIdx,
 3042 LegalizerHelper::narrowScalarShiftByConstant(MachineInstr &MI, const APInt &Amt,
 3131 LegalizerHelper::narrowScalarShift(MachineInstr &MI, unsigned TypeIdx,
 3158   if (const MachineInstr *KShiftAmt =
 3241 LegalizerHelper::moreElementsVectorPhi(MachineInstr &MI, unsigned TypeIdx,
 3260 LegalizerHelper::moreElementsVector(MachineInstr &MI, unsigned TypeIdx,
 3413 LegalizerHelper::narrowScalarMul(MachineInstr &MI, LLT NarrowTy) {
 3448 LegalizerHelper::narrowScalarExtract(MachineInstr &MI, unsigned TypeIdx,
 3513 LegalizerHelper::narrowScalarInsert(MachineInstr &MI, unsigned TypeIdx,
 3588 LegalizerHelper::narrowScalarBasic(MachineInstr &MI, unsigned TypeIdx,
 3629 LegalizerHelper::narrowScalarSelect(MachineInstr &MI, unsigned TypeIdx,
 3675 LegalizerHelper::lowerBitCount(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3790 LegalizerHelper::lowerU64ToF32BitOps(MachineInstr &MI) {
 3846 LegalizerHelper::lowerUITOFP(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3867 LegalizerHelper::lowerSITOFP(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3905 LegalizerHelper::lowerFPTOUI(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3962 LegalizerHelper::lowerMinMax(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3978 LegalizerHelper::lowerFCopySign(MachineInstr &MI, unsigned TypeIdx, LLT Ty) {
 3996   MachineInstr *Or;
 4026 LegalizerHelper::lowerFMinNumMaxNum(MachineInstr &MI) {
 4035   if (!MI.getFlag(MachineInstr::FmNoNans)) {
 4056 LegalizerHelper::LegalizeResult LegalizerHelper::lowerFMad(MachineInstr &MI) {
 4070 LegalizerHelper::lowerUnmergeValues(MachineInstr &MI) {
 4103 LegalizerHelper::lowerShuffleVector(MachineInstr &MI) {
 4162 LegalizerHelper::lowerDynStackAlloc(MachineInstr &MI) {
 4197 LegalizerHelper::lowerExtract(MachineInstr &MI) {
 4229 LegalizerHelper::LegalizeResult LegalizerHelper::lowerInsert(MachineInstr &MI) {
 4269 LegalizerHelper::lowerSADDO_SSUBO(MachineInstr &MI) {
lib/CodeGen/GlobalISel/LegalizerInfo.cpp
  390 static LLT getTypeFromTypeIdx(const MachineInstr &MI,
  476 LegalizerInfo::getAction(const MachineInstr &MI,
  507 bool LegalizerInfo::isLegal(const MachineInstr &MI,
  512 bool LegalizerInfo::isLegalOrCustom(const MachineInstr &MI,
  520 bool LegalizerInfo::legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI,
  682 bool LegalizerInfo::legalizeIntrinsic(MachineInstr &MI,
  737 const MachineInstr *llvm::machineFunctionIsIllegal(const MachineFunction &MF) {
  741       for (const MachineInstr &MI : MBB)
lib/CodeGen/GlobalISel/Localizer.cpp
   38 bool Localizer::shouldLocalize(const MachineInstr &MI) {
   98 bool Localizer::isLocalUse(MachineOperand &MOUse, const MachineInstr &Def,
  100   MachineInstr &MIUse = *MOUse.getParent();
  118     MachineInstr &MI = *RI;
  144         MachineInstr *LocalizedMI = MF.CloneMachineInstr(&MI);
  146         MachineInstr &UseMI = *MOUse.getParent();
  179   for (MachineInstr *MI : LocalizedInstrs) {
  183     SmallPtrSet<MachineInstr *, 32> Users;
  184     for (MachineInstr &UseMI : MRI->use_nodbg_instructions(Reg)) {
lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
   43 void MachineIRBuilder::setInstr(MachineInstr &MI) {
   59 void MachineIRBuilder::recordInsertion(MachineInstr *InsertedInstr) const {
lib/CodeGen/GlobalISel/RegBankSelect.cpp
  144   MachineInstr *MI;
  217   std::unique_ptr<MachineInstr *[]> NewInstrs(
  218       new MachineInstr *[RepairPt.getNumInsertPoints()]);
  222     MachineInstr *CurMI;
  289     MachineInstr &MI, RegisterBankInfo::InstructionMappings &PossibleMappings,
  325   const MachineInstr &MI = *MO.getParent();
  415     const MachineInstr *Next = MI.getNextNode();
  442     MachineInstr &MI, const RegisterBankInfo::InstructionMapping &InstrMapping,
  581     MachineInstr &MI, const RegisterBankInfo::InstructionMapping &InstrMapping,
  622 bool RegBankSelect::assignInstr(MachineInstr &MI) {
  669     if (const MachineInstr *MI = machineFunctionIsIllegal(MF)) {
  688       MachineInstr &MI = *MII++;
  723     MachineInstr &MI, unsigned OpIdx, const TargetRegisterInfo &TRI, Pass &P,
  816 void RegBankSelect::RepairingPlacement::addInsertPoint(MachineInstr &MI,
  838 RegBankSelect::InstrInsertPoint::InstrInsertPoint(MachineInstr &Instr,
lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
  110     const MachineInstr &MI, unsigned OpIdx, const TargetInstrInfo &TII,
  150 static bool isCopyLike(const MachineInstr &MI) {
  156 RegisterBankInfo::getInstrMappingImpl(const MachineInstr &MI) const {
  400 RegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
  434   MachineInstr &MI = OpdMapper.getMI();
  591     const MachineInstr &MI) const {
  647     MachineInstr &MI, const InstructionMapping &InstrMapping,
lib/CodeGen/GlobalISel/Utils.cpp
   43     const RegisterBankInfo &RBI, MachineInstr &InsertPt,
   73     const RegisterBankInfo &RBI, MachineInstr &InsertPt, const MCInstrDesc &II,
  111 bool llvm::constrainSelectedInstRegOperands(MachineInstr &I,
  158 bool llvm::isTriviallyDead(const MachineInstr &MI,
  197                               const MachineInstr &MI) {
  222   MachineInstr *MI;
  297   MachineInstr *MI = MRI.getVRegDef(VReg);
  303 llvm::MachineInstr *llvm::getDefIgnoringCopies(Register Reg,
  305   auto *DefMI = MRI.getVRegDef(Reg);
  319 llvm::MachineInstr *llvm::getOpcodeDef(unsigned Opcode, Register Reg,
  321   MachineInstr *DefMI = getDefIgnoringCopies(Reg, MRI);
  391   const MachineInstr *DefMI = MRI.getVRegDef(Val);
  395   if (DefMI->getFlag(MachineInstr::FmNoNans))
lib/CodeGen/IfConversion.cpp
  308         for (auto &I : make_range(TBBInfo.BB->begin(), TIB)) {
  312         for (auto &I : make_range(FBBInfo.BB->begin(), FIB)) {
  321         for (auto &I : make_range(TIE, TBBInfo.BB->end())) {
  330         for (auto &I : make_range(FIE, FBBInfo.BB->end())) {
  339         for (auto &I : CommBB.terminators()) {
  352         for (auto &I : make_range(TIB, TIE)) {
  358         for (auto &I : make_range(FIB, FIE)) {
 1066   for (MachineInstr &MI : make_range(Begin, End)) {
 1474 static void UpdatePredRedefs(MachineInstr &MI, LivePhysRegs &Redefs) {
 1494     MachineInstr *OpMI = Op.getParent();
 1847     if (DI2->isCall(MachineInstr::IgnoreBundle))
 1858     for (const MachineInstr &MI : make_range(MBB1.begin(), DI1)) {
 1896     if (DI1->isCall(MachineInstr::IgnoreBundle))
 1941     for (const MachineInstr &FI : make_range(MBB2.begin(), DI2)) {
 2107 static bool MaySpeculate(const MachineInstr &MI,
 2134   for (MachineInstr &I : make_range(BBI.BB->begin(), E)) {
 2177   for (MachineInstr &I : FromMBB) {
 2182     MachineInstr *MI = MF.CloneMachineInstr(&I);
 2184     if (MI->isCall(MachineInstr::IgnoreBundle))
lib/CodeGen/ImplicitNullChecks.cpp
   82   static bool canHandle(const MachineInstr *MI);
   87   bool canReorder(const MachineInstr *A, const MachineInstr *B);
   87   bool canReorder(const MachineInstr *A, const MachineInstr *B);
  100     Optional<ArrayRef<MachineInstr *>::iterator> PotentialDependence;
  104         Optional<ArrayRef<MachineInstr *>::iterator> PotentialDependence)
  116   DependenceResult computeDependence(const MachineInstr *MI,
  117                                      ArrayRef<MachineInstr *> Block);
  122     MachineInstr *MemOperation;
  125     MachineInstr *CheckOperation;
  138     MachineInstr *OnlyDependency;
  141     explicit NullCheck(MachineInstr *memOperation, MachineInstr *checkOperation,
  141     explicit NullCheck(MachineInstr *memOperation, MachineInstr *checkOperation,
  145                        MachineInstr *onlyDependency)
  150     MachineInstr *getMemOperation() const { return MemOperation; }
  152     MachineInstr *getCheckOperation() const { return CheckOperation; }
  160     MachineInstr *getOnlyDependency() const { return OnlyDependency; }
  170   MachineInstr *insertFaultingInstr(MachineInstr *MI, MachineBasicBlock *MBB,
  170   MachineInstr *insertFaultingInstr(MachineInstr *MI, MachineBasicBlock *MBB,
  183   AliasResult areMemoryOpsAliased(const MachineInstr &MI,
  184                                   const MachineInstr *PrevMI) const;
  198   SuitabilityResult isSuitableMemoryOp(const MachineInstr &MI,
  200                                        ArrayRef<MachineInstr *> PrevInsts);
  205   bool canHoistInst(MachineInstr *FaultingMI, unsigned PointerReg,
  206                     ArrayRef<MachineInstr *> InstsSeenSoFar,
  207                     MachineBasicBlock *NullSucc, MachineInstr *&Dependence);
  231 bool ImplicitNullChecks::canHandle(const MachineInstr *MI) {
  246 ImplicitNullChecks::computeDependence(const MachineInstr *MI,
  247                                       ArrayRef<MachineInstr *> Block) {
  251   Optional<ArrayRef<MachineInstr *>::iterator> Dep;
  269 bool ImplicitNullChecks::canReorder(const MachineInstr *A,
  270                                     const MachineInstr *B) {
  324 ImplicitNullChecks::areMemoryOpsAliased(const MachineInstr &MI,
  325                                         const MachineInstr *PrevMI) const {
  362 ImplicitNullChecks::isSuitableMemoryOp(const MachineInstr &MI,
  364                                        ArrayRef<MachineInstr *> PrevInsts) {
  379   for (auto *PrevMI : PrevInsts) {
  389 bool ImplicitNullChecks::canHoistInst(MachineInstr *FaultingMI,
  391                                       ArrayRef<MachineInstr *> InstsSeenSoFar,
  393                                       MachineInstr *&Dependence) {
  404   auto *DependenceMI = *DependenceItr;
  582   SmallVector<MachineInstr *, 8> InstsSeenSoFar;
  584   for (auto &MI : *NotNullSucc) {
  588     MachineInstr *Dependence;
  615 MachineInstr *ImplicitNullChecks::insertFaultingInstr(
  616     MachineInstr *MI, MachineBasicBlock *MBB, MachineBasicBlock *HandlerMBB) {
  673     if (auto *DepMI = NC.getOnlyDependency()) {
  682     MachineInstr *FaultingInstr = insertFaultingInstr(
  698     if (auto *DepMI = NC.getOnlyDependency()) {
lib/CodeGen/InlineSpiller.cpp
  110       MapVector<std::pair<int, VNInfo *>, SmallPtrSet<MachineInstr *, 16>>;
  122       SmallPtrSet<MachineInstr *, 16> &Spills,
  127       MachineBasicBlock *Root, SmallPtrSet<MachineInstr *, 16> &Spills,
  134                       SmallPtrSet<MachineInstr *, 16> &Spills,
  151   void addToMergeableSpills(MachineInstr &Spill, int StackSlot,
  153   bool rmFromMergeableSpills(MachineInstr &Spill, int StackSlot);
  182   SmallPtrSet<MachineInstr*, 8> SnippetCopies;
  188   SmallVector<MachineInstr*, 8> DeadDefs;
  217   bool hoistSpillInsideBB(LiveInterval &SpillLI, MachineInstr &CopyMI);
  221   bool canGuaranteeAssignmentAfterRemat(unsigned VReg, MachineInstr &MI);
  222   bool reMaterializeFor(LiveInterval &, MachineInstr &MI);
  225   bool coalesceStackAccess(MachineInstr *MI, unsigned Reg);
  226   bool foldMemoryOperand(ArrayRef<std::pair<MachineInstr *, unsigned>>,
  227                          MachineInstr *LoadMI = nullptr);
  261 static unsigned isFullCopyOf(const MachineInstr &MI, unsigned Reg) {
  287   MachineInstr *UseMI = nullptr;
  293     MachineInstr &MI = *RI++;
  332     MachineInstr &MI = *RI++;
  372                                        MachineInstr &CopyMI) {
  406     MachineInstr *DefMI = LIS.getInstructionFromIndex(SrcVNI->def);
  450       MachineInstr &MI = *UI++;
  509     MachineInstr *MI = LIS.getInstructionFromIndex(VNI->def);
  521                                                      MachineInstr &MI) {
  543 bool InlineSpiller::reMaterializeFor(LiveInterval &VirtReg, MachineInstr &MI) {
  545   SmallVector<std::pair<MachineInstr *, unsigned>, 8> Ops;
  614   auto *NewMI = LIS.getInstructionFromIndex(DefIdx);
  650       MachineInstr &MI = *RegI++;
  673       MachineInstr *MI = LIS.getInstructionFromIndex(VNI->def);
  718 bool InlineSpiller::coalesceStackAccess(MachineInstr *MI, unsigned Reg) {
  789 foldMemoryOperand(ArrayRef<std::pair<MachineInstr *, unsigned>> Ops,
  790                   MachineInstr *LoadMI) {
  794   MachineInstr *MI = Ops.front().first;
  837   MachineInstr *FoldMI =
  875   for (MachineInstr &MI : MIS)
  922 static bool isFullUndefDef(const MachineInstr &Def) {
  970     MachineInstr *MI = &*(RegI++);
  994     SmallVector<std::pair<MachineInstr*, unsigned>, 8> Ops;
 1096       MachineInstr &MI = *(RI++);
 1141 void HoistSpillHelper::addToMergeableSpills(MachineInstr &Spill, int StackSlot,
 1160 bool HoistSpillHelper::rmFromMergeableSpills(MachineInstr &Spill,
 1199     SmallPtrSet<MachineInstr *, 16> &Spills,
 1208     MachineInstr *PrevSpill = SpillBBToSpill[Node];
 1212       MachineInstr *SpillToRm = (CIdx > PIdx) ? CurrentSpill : PrevSpill;
 1213       MachineInstr *SpillToKeep = (CIdx > PIdx) ? PrevSpill : CurrentSpill;
 1231     MachineBasicBlock *Root, SmallPtrSet<MachineInstr *, 16> &Spills,
 1257     MachineInstr *SpillToRm = nullptr;
 1319     SmallPtrSet<MachineInstr *, 16> &Spills,
 1331   DenseMap<MachineDomTreeNode *, MachineInstr *> SpillBBToSpill;
 1410           MachineInstr *SpillToRm = SpillBBToSpill[SpillBB];
 1471     SmallPtrSet<MachineInstr *, 16> &EqValSpills = Ent.second;
 1484     SmallVector<MachineInstr *, 16> SpillsToRm;
lib/CodeGen/LexicalScopes.cpp
   58   DenseMap<const MachineInstr *, LexicalScope *> MI2ScopeMap;
   70     DenseMap<const MachineInstr *, LexicalScope *> &MI2ScopeMap) {
   73     const MachineInstr *RangeBeginMI = nullptr;
   74     const MachineInstr *PrevMI = nullptr;
   76     for (const auto &MInsn : MBB) {
  260     DenseMap<const MachineInstr *, LexicalScope *> &MI2ScopeMap) {
  312   for (auto &I : *MBB) {
lib/CodeGen/LiveDebugValues.cpp
   84 static Register isDbgValueDescribedByReg(const MachineInstr &MI) {
  150     DebugVariable(const MachineInstr &MI)
  200     const MachineInstr &MI;
  222     VarLoc(const MachineInstr &MI, LexicalScopes &LS)
  248     static VarLoc CreateEntryLoc(const MachineInstr &MI, LexicalScopes &LS,
  258     static VarLoc CreateCopyLoc(const MachineInstr &MI, LexicalScopes &LS,
  268     static VarLoc CreateSpillLoc(const MachineInstr &MI, unsigned SpillBase,
  281     MachineInstr *BuildDbgValue(MachineFunction &MF) const {
  372   using DebugParamMap = SmallDenseMap<const DILocalVariable *, MachineInstr *>;
  377     MachineInstr *TransferInst; /// Instruction where this transfer occurs.
  448   bool isSpillInstruction(const MachineInstr &MI, MachineFunction *MF);
  456   bool isLocationSpill(const MachineInstr &MI, MachineFunction *MF,
  461   Optional<VarLoc::SpillLoc> isRestoreInstruction(const MachineInstr &MI,
  466   VarLoc::SpillLoc extractSpillBaseRegAndOffset(const MachineInstr &MI);
  467   void insertTransferDebugPair(MachineInstr &MI, OpenRangesSet &OpenRanges,
  472   void transferDebugValue(const MachineInstr &MI, OpenRangesSet &OpenRanges,
  474   void transferSpillOrRestoreInst(MachineInstr &MI, OpenRangesSet &OpenRanges,
  476   void emitEntryValues(MachineInstr &MI, OpenRangesSet &OpenRanges,
  480   void transferRegisterCopy(MachineInstr &MI, OpenRangesSet &OpenRanges,
  482   void transferRegisterDef(MachineInstr &MI, OpenRangesSet &OpenRanges,
  488   void process(MachineInstr &MI, OpenRangesSet &OpenRanges,
  492   void accumulateFragmentMap(MachineInstr &MI, VarToFragments &SeenFragments,
  653 LiveDebugValues::extractSpillBaseRegAndOffset(const MachineInstr &MI) {
  669 void LiveDebugValues::transferDebugValue(const MachineInstr &MI,
  702 void LiveDebugValues::emitEntryValues(MachineInstr &MI,
  712     const MachineInstr *CurrDebugInstr = &VarLocIDs[ID].MI;
  737     MachineInstr &MI, OpenRangesSet &OpenRanges, TransferMap &Transfers,
  740   const MachineInstr *DebugInstr = &VarLocIDs[OldVarID].MI;
  805     MachineInstr &MI, OpenRangesSet &OpenRanges, VarLocMap &VarLocIDs,
  845 bool LiveDebugValues::isSpillInstruction(const MachineInstr &MI,
  858 bool LiveDebugValues::isLocationSpill(const MachineInstr &MI,
  899 LiveDebugValues::isRestoreInstruction(const MachineInstr &MI,
  920 void LiveDebugValues::transferSpillOrRestoreInst(MachineInstr &MI,
  996 void LiveDebugValues::transferRegisterCopy(MachineInstr &MI,
 1066 void LiveDebugValues::accumulateFragmentMap(MachineInstr &MI,
 1117 void LiveDebugValues::process(MachineInstr &MI, OpenRangesSet &OpenRanges,
 1243       MachineInstr *MI = DiffIt.BuildDbgValue(*MBB.getParent());
 1318   for (auto &MI : First_MBB)
 1329     for (auto &MI : MBB) {
 1380         for (auto &MI : *MBB)
 1408     MachineInstr *MI = VL.BuildDbgValue(MF);
lib/CodeGen/LiveDebugVariables.cpp
  425   bool handleDebugValue(MachineInstr &MI, SlotIndex Idx);
  433   bool handleDebugLabel(MachineInstr &MI, SlotIndex Idx);
  599 bool LDVImpl::handleDebugValue(MachineInstr &MI, SlotIndex Idx) {
  658 bool LDVImpl::handleDebugLabel(MachineInstr &MI, SlotIndex Idx) {
  774     MachineInstr *MI = MO.getParent();
  822       MachineInstr *CopyMI = LIS.getInstructionFromIndex(DstVNI->def);
 1244   MachineInstr *MI;
lib/CodeGen/LiveInterval.cpp
  900     const MachineInstr *MI = Indexes.getInstructionFromIndex(VNI->def);
  983       const MachineInstr &MI = *MO.getParent();
 1358     MachineInstr *MI = RI->getParent();
lib/CodeGen/LiveIntervals.cpp
  225     for (const MachineInstr &MI : MBB) {
  442                                  SmallVectorImpl<MachineInstr*> *dead) {
  462   for (MachineInstr &UseMI : MRI->reg_instructions(Reg)) {
  501                                       SmallVectorImpl<MachineInstr*> *dead) {
  515         MachineInstr *MI = getInstructionFromIndex(Def);
  530       MachineInstr *MI = getInstructionFromIndex(Def);
  563     MachineInstr *UseMI = MO.getParent();
  723       MachineInstr *MI = getInstructionFromIndex(RI->end);
  855                                     const MachineInstr &MI) {
  868 LiveIntervals::addSegmentToEndOfBlock(unsigned reg, MachineInstr &startInst) {
  972   void updateAllRanges(MachineInstr *MI) {
 1063       if (MachineInstr *KillMI = LIS.getInstructionFromIndex(OldIdxIn->end))
 1364         if (MachineInstr *KillMI = LIS.getInstructionFromIndex(NewIdx))
 1412         const MachineInstr &MI = *MO.getParent();
 1429     if (MachineInstr *MI = Indexes->getInstructionFromIndex(
 1456 void LiveIntervals::handleMove(MachineInstr &MI, bool UpdateFlags) {
 1472 void LiveIntervals::handleMoveIntoBundle(MachineInstr &MI,
 1473                                          MachineInstr &BundleStart,
 1500     MachineInstr &MI = *I;
 1510     for (MachineInstr::mop_iterator OI = MI.operands_begin(),
 1597     MachineInstr &MI = *I;
 1600     for (MachineInstr::const_mop_iterator MOI = MI.operands_begin(),
lib/CodeGen/LivePhysRegs.cpp
   44 void LivePhysRegs::removeDefs(const MachineInstr &MI) {
   59 void LivePhysRegs::addUses(const MachineInstr &MI) {
   72 void LivePhysRegs::stepBackward(const MachineInstr &MI) {
   84 void LivePhysRegs::stepForward(const MachineInstr &MI,
  253   for (const MachineInstr &MI : make_range(MBB.rbegin(), MBB.rend()))
  289   for (MachineInstr &MI : make_range(MBB.rbegin(), MBB.rend())) {
lib/CodeGen/LiveRangeCalc.cpp
   66   const MachineInstr &MI = *MO.getParent();
  188     const MachineInstr *MI = MO.getParent();
  369       const MachineInstr *MI = Indexes->getInstructionFromIndex(Use);
lib/CodeGen/LiveRangeEdit.cpp
   71                                           const MachineInstr *DefMI,
   90     MachineInstr *DefMI = LIS.getInstructionFromIndex(OrigVNI->def);
  106 bool LiveRangeEdit::allUsesAvailableAt(const MachineInstr *OrigMI,
  186                                SmallVectorImpl<MachineInstr*> &Dead) {
  187   MachineInstr *DefMI = nullptr, *UseMI = nullptr;
  191     MachineInstr *MI = MO.getParent();
  229   MachineInstr *FoldMI = TII.foldMemoryOperand(*UseMI, Ops, *DefMI, &LIS);
  245   const MachineInstr &MI = *MO.getParent();
  260 void LiveRangeEdit::eliminateDeadDef(MachineInstr *MI, ToShrinkSet &ToShrink,
  307   for (MachineInstr::mop_iterator MOI = MI->operands_begin(),
  392 void LiveRangeEdit::eliminateDeadDefs(SmallVectorImpl<MachineInstr *> &Dead,
lib/CodeGen/LiveRangeShrink.cpp
   69 using InstOrderMap = DenseMap<MachineInstr *, unsigned>;
   76 static MachineInstr *FindDominatedInstruction(MachineInstr &New,
   76 static MachineInstr *FindDominatedInstruction(MachineInstr &New,
   77                                               MachineInstr *Old,
   90   for (MachineInstr *I = Old->getNextNode(); M.find(I)->second == OrderNew;
  103   for (MachineInstr &I : make_range(Start, Start->getParent()->end()))
  120   DenseMap<unsigned, std::pair<unsigned, MachineInstr *>> UseMap;
  130       MachineInstr &MI = *Next;
  139       MachineInstr *BarrierMI = nullptr;
  166       MachineInstr *Insert = nullptr;
  198           MachineInstr &DefInstr = *MRI.def_instr_begin(Reg);
  210       for (MachineInstr *I = Insert; I && IOM[I] == Barrier;
lib/CodeGen/LiveRegUnits.cpp
   44 void LiveRegUnits::stepBackward(const MachineInstr &MI) {
   69 void LiveRegUnits::accumulate(const MachineInstr &MI) {
lib/CodeGen/LiveVariables.cpp
   59 MachineInstr *
  132                                      MachineInstr &MI) {
  182 void LiveVariables::HandleVirtRegDef(unsigned Reg, MachineInstr &MI) {
  192 MachineInstr *LiveVariables::FindLastPartialDef(unsigned Reg,
  196   MachineInstr *LastDef = nullptr;
  199     MachineInstr *Def = PhysRegDef[SubReg];
  231 void LiveVariables::HandlePhysRegUse(unsigned Reg, MachineInstr &MI) {
  232   MachineInstr *LastDef = PhysRegDef[Reg];
  244     MachineInstr *LastPartialDef = FindLastPartialDef(Reg, PartDefRegs);
  281 MachineInstr *LiveVariables::FindLastRefOrPartRef(unsigned Reg) {
  282   MachineInstr *LastDef = PhysRegDef[Reg];
  283   MachineInstr *LastUse = PhysRegUse[Reg];
  287   MachineInstr *LastRefOrPartRef = LastUse ? LastUse : LastDef;
  292     MachineInstr *Def = PhysRegDef[SubReg];
  299     } else if (MachineInstr *Use = PhysRegUse[SubReg]) {
  311 bool LiveVariables::HandlePhysRegKill(unsigned Reg, MachineInstr *MI) {
  312   MachineInstr *LastDef = PhysRegDef[Reg];
  313   MachineInstr *LastUse = PhysRegUse[Reg];
  317   MachineInstr *LastRefOrPartRef = LastUse ? LastUse : LastDef;
  336   MachineInstr *LastPartDef = nullptr;
  341     MachineInstr *Def = PhysRegDef[SubReg];
  352     if (MachineInstr *Use = PhysRegUse[SubReg]) {
  385       MachineInstr *LastSubRef = FindLastRefOrPartRef(SubReg);
  443 void LiveVariables::HandlePhysRegDef(unsigned Reg, MachineInstr *MI,
  486 void LiveVariables::UpdatePhysRegDefs(MachineInstr &MI,
  500 void LiveVariables::runOnInstr(MachineInstr &MI,
  576   for (MachineInstr &MI : *MBB) {
  681 void LiveVariables::replaceKillInstruction(unsigned Reg, MachineInstr &OldMI,
  682                                            MachineInstr &NewMI) {
  689 void LiveVariables::removeVirtualRegistersKilled(MachineInstr &MI) {
  710     for (const auto &BBI : MBB) {
  730   const MachineInstr *Def = MRI.getVRegDef(Reg);
  783     for (MachineInstr::mop_iterator I = BBI->operands_begin(),
lib/CodeGen/LocalStackSlotAllocation.cpp
   61     FrameRef(MachineInstr *I, int64_t Offset, int Idx, unsigned Ord) :
  272                        const MachineInstr &MI,
  304     for (MachineInstr &MI : BB) {
  348     MachineInstr &MI = *FR.getMachineInstr();
lib/CodeGen/MIRCanonicalizerPass.cpp
   99 rescheduleLexographically(std::vector<MachineInstr *> instructions,
  104   using StringInstrPair = std::pair<std::string, MachineInstr *>;
  107   for (auto *II : instructions) {
  157   std::vector<MachineInstr *> Instructions;
  158   for (auto &MI : *MBB) {
  162   std::map<MachineInstr *, std::vector<MachineInstr *>> MultiUsers;
  162   std::map<MachineInstr *, std::vector<MachineInstr *>> MultiUsers;
  163   std::map<unsigned, MachineInstr *> MultiUserLookup;
  165   std::vector<MachineInstr *> PseudoIdempotentInstructions;
  167   for (auto *II : Instructions) {
  183   for (auto *II : Instructions) {
  221     MachineInstr *Def = II;
  223     MachineInstr *UseToBringDefCloserTo = nullptr;
  226       MachineInstr *UseInst = UO.getParent();
  310   std::vector<MachineInstr *> Copies;
  311   for (MachineInstr &MI : MBB->instrs()) {
  316   for (MachineInstr *MI : Copies) {
  356   for (auto &MI : *MBB) {
  427     MachineInstr &MI = *MII++;
lib/CodeGen/MIRParser/MIParser.cpp
  397   bool parse(MachineInstr *&MI);
  502   bool assignRegisterTies(MachineInstr &MI,
  800   MachineInstr *PrevMI = nullptr;
  812     MachineInstr *MI = nullptr;
  817       PrevMI->setFlag(MachineInstr::BundledSucc);
  818       MI->setFlag(MachineInstr::BundledPred);
  826       MI->setFlag(MachineInstr::BundledSucc);
  884 bool MIParser::parse(MachineInstr *&MI) {
 1144       Flags |= MachineInstr::FrameSetup;
 1146       Flags |= MachineInstr::FrameDestroy;
 1148       Flags |= MachineInstr::FmNoNans;
 1150       Flags |= MachineInstr::FmNoInfs;
 1152       Flags |= MachineInstr::FmNsz;
 1154       Flags |= MachineInstr::FmArcp;
 1156       Flags |= MachineInstr::FmContract;
 1158       Flags |= MachineInstr::FmAfn;
 1160       Flags |= MachineInstr::FmReassoc;
 1162       Flags |= MachineInstr::NoUWrap;
 1164       Flags |= MachineInstr::NoSWrap;
 1166       Flags |= MachineInstr::IsExact;
 1168       Flags |= MachineInstr::FPExcept;
 1356 bool MIParser::assignRegisterTies(MachineInstr &MI,
lib/CodeGen/MIRParser/MIRParser.cpp
  322     for (const MachineInstr &MI : MBB) {
  361     if (!CallI->isCall(MachineInstr::IgnoreBundle))
  614     for (const MachineInstr &MI : MBB) {
lib/CodeGen/MIRPrinter.cpp
  162   void print(const MachineInstr &MI);
  164   void print(const MachineInstr &MI, unsigned OpIdx,
  554   for (const MachineInstr &MI : MBB) {
  688     const MachineInstr &MI = *I;
  695     if (!IsInBundle && MI.getFlag(MachineInstr::BundledSucc)) {
  705 void MIPrinter::print(const MachineInstr &MI) {
  731   if (MI.getFlag(MachineInstr::FrameSetup))
  733   if (MI.getFlag(MachineInstr::FrameDestroy))
  735   if (MI.getFlag(MachineInstr::FmNoNans))
  737   if (MI.getFlag(MachineInstr::FmNoInfs))
  739   if (MI.getFlag(MachineInstr::FmNsz))
  741   if (MI.getFlag(MachineInstr::FmArcp))
  743   if (MI.getFlag(MachineInstr::FmContract))
  745   if (MI.getFlag(MachineInstr::FmAfn))
  747   if (MI.getFlag(MachineInstr::FmReassoc))
  749   if (MI.getFlag(MachineInstr::NoUWrap))
  751   if (MI.getFlag(MachineInstr::NoSWrap))
  753   if (MI.getFlag(MachineInstr::IsExact))
  755   if (MI.getFlag(MachineInstr::FPExcept))
  818 void MIPrinter::print(const MachineInstr &MI, unsigned OpIdx,
lib/CodeGen/MIRVRegNamerUtils.cpp
   51 std::vector<MachineInstr *> populateCandidates(MachineBasicBlock *MBB) {
   52   std::vector<MachineInstr *> Candidates;
   56     MachineInstr *MI = &*II;
   83                      std::vector<MachineInstr *> &VisitedMIs,
  122       MachineInstr *Def = RI->getParent();
  260   std::vector<MachineInstr *> Candidates = populateCandidates(MBB);
  261   std::vector<MachineInstr *> VisitedMIs;
lib/CodeGen/MachineBasicBlock.cpp
  110 void ilist_traits<MachineInstr>::addNodeToList(MachineInstr *N) {
  123 void ilist_traits<MachineInstr>::removeNodeFromList(MachineInstr *N) {
  155 void ilist_traits<MachineInstr>::deleteNode(MachineInstr *MI) {
  410   for (const MachineInstr &MI : instrs()) {
  426     if (!IsInBundle && MI.getFlag(MachineInstr::BundledSucc)) {
  905       MachineInstr *MI = &*I;
  906       for (MachineInstr::mop_iterator OI = MI->operands_begin(),
  925       MachineInstr *MI = &*I;
  927       for (MachineInstr::mop_iterator OI = MI->operands_begin(),
  943   SmallVector<MachineInstr*, 4> Terminators;
  953     SmallVector<MachineInstr*, 4> NewTerminators;
  958     for (SmallVectorImpl<MachineInstr*>::iterator I = Terminators.begin(),
  973       for (MachineInstr &MI : NMBB->instrs()) {
 1143 static void unbundleSingleMI(MachineInstr *MI) {
 1160 MachineInstr *MachineBasicBlock::remove_instr(MachineInstr *MI) {
 1160 MachineInstr *MachineBasicBlock::remove_instr(MachineInstr *MI) {
 1162   MI->clearFlag(MachineInstr::BundledPred);
 1163   MI->clearFlag(MachineInstr::BundledSucc);
 1173     MI->setFlag(MachineInstr::BundledPred);
 1174     MI->setFlag(MachineInstr::BundledSucc);
 1218   for (MachineInstr &MI : phis())
lib/CodeGen/MachineCSE.cpp
  100                             ScopedHashTableVal<MachineInstr *, unsigned>>;
  102         ScopedHashTable<MachineInstr *, unsigned, MachineInstrExpressionTrait,
  109     DenseMap<MachineInstr *, MachineBasicBlock *, MachineInstrExpressionTrait>
  112     SmallVector<MachineInstr *, 64> Exps;
  115     bool PerformTrivialCopyPropagation(MachineInstr *MI,
  120     bool hasLivePhysRegDefUses(const MachineInstr *MI,
  124     bool PhysRegDefsReach(MachineInstr *CSMI, MachineInstr *MI,
  124     bool PhysRegDefsReach(MachineInstr *CSMI, MachineInstr *MI,
  127     bool isCSECandidate(MachineInstr *MI);
  129                            MachineBasicBlock *CSBB, MachineInstr *MI);
  137     bool isPRECandidate(MachineInstr *MI);
  164 bool MachineCSE::PerformTrivialCopyPropagation(MachineInstr *MI,
  174     MachineInstr *DefMI = MRI->getVRegDef(Reg);
  276 bool MachineCSE::hasLivePhysRegDefUses(const MachineInstr *MI,
  328 bool MachineCSE::PhysRegDefsReach(MachineInstr *CSMI, MachineInstr *MI,
  328 bool MachineCSE::PhysRegDefsReach(MachineInstr *CSMI, MachineInstr *MI,
  395 bool MachineCSE::isCSECandidate(MachineInstr *MI) {
  432                                    MachineBasicBlock *CSBB, MachineInstr *MI) {
  440     SmallPtrSet<MachineInstr*, 8> CSUses;
  441     for (MachineInstr &MI : MRI->use_nodbg_instructions(CSReg)) {
  444     for (MachineInstr &MI : MRI->use_nodbg_instructions(Reg)) {
  473     for (MachineInstr &MI : MRI->use_nodbg_instructions(Reg)) {
  487   for (MachineInstr &UseMI : MRI->use_nodbg_instructions(CSReg)) {
  517     MachineInstr *MI = &*I;
  541       if (MachineInstr *NewMI = TII->commuteInstruction(*MI)) {
  572         MachineInstr *CSMI = Exps[CSVN];
  586     MachineInstr *CSMI = Exps[CSVN];
  646         MachineInstr *Def = MRI->getUniqueVRegDef(NewReg);
  771 bool MachineCSE::isPRECandidate(MachineInstr *MI) {
  795     MachineInstr *MI = &*I;
  831         MachineInstr &NewMI =
lib/CodeGen/MachineCombiner.cpp
   87   MachineInstr *getOperandDef(const MachineOperand &MO);
   88   unsigned getDepth(SmallVectorImpl<MachineInstr *> &InsInstrs,
   91   unsigned getLatency(MachineInstr *Root, MachineInstr *NewRoot,
   91   unsigned getLatency(MachineInstr *Root, MachineInstr *NewRoot,
   94   improvesCriticalPathLen(MachineBasicBlock *MBB, MachineInstr *Root,
   96                           SmallVectorImpl<MachineInstr *> &InsInstrs,
   97                           SmallVectorImpl<MachineInstr *> &DelInstrs,
  102                             SmallVectorImpl<MachineInstr *> &InsInstrs,
  103                             SmallVectorImpl<MachineInstr *> &DelInstrs);
  104   void instr2instrSC(SmallVectorImpl<MachineInstr *> &Instrs,
  107   getLatenciesForInstrSequences(MachineInstr &MI,
  108                                 SmallVectorImpl<MachineInstr *> &InsInstrs,
  109                                 SmallVectorImpl<MachineInstr *> &DelInstrs,
  112   void verifyPatternOrder(MachineBasicBlock *MBB, MachineInstr &Root,
  137 MachineInstr *MachineCombiner::getOperandDef(const MachineOperand &MO) {
  138   MachineInstr *DefInstr = nullptr;
  157 MachineCombiner::getDepth(SmallVectorImpl<MachineInstr *> &InsInstrs,
  167   for (auto *InstrPtr : InsInstrs) { // for each Use
  182         MachineInstr *DefInstr = InsInstrs[II->second];
  191         MachineInstr *DefInstr = getOperandDef(MO);
  216 unsigned MachineCombiner::getLatency(MachineInstr *Root, MachineInstr *NewRoot,
  216 unsigned MachineCombiner::getLatency(MachineInstr *Root, MachineInstr *NewRoot,
  235     MachineInstr *UseMO = RI->getParent();
  275     MachineInstr &MI, SmallVectorImpl<MachineInstr *> &InsInstrs,
  275     MachineInstr &MI, SmallVectorImpl<MachineInstr *> &InsInstrs,
  276     SmallVectorImpl<MachineInstr *> &DelInstrs,
  281   MachineInstr *NewRoot = InsInstrs.back();
  299     MachineBasicBlock *MBB, MachineInstr *Root,
  301     SmallVectorImpl<MachineInstr *> &InsInstrs,
  302     SmallVectorImpl<MachineInstr *> &DelInstrs,
  358     SmallVectorImpl<MachineInstr *> &Instrs,
  360   for (auto *InstrPtr : Instrs) {
  371     SmallVectorImpl<MachineInstr *> &InsInstrs,
  372     SmallVectorImpl<MachineInstr *> &DelInstrs) {
  430 static void insertDeleteInstructions(MachineBasicBlock *MBB, MachineInstr &MI,
  431                                      SmallVector<MachineInstr *, 16> InsInstrs,
  432                                      SmallVector<MachineInstr *, 16> DelInstrs,
  436   for (auto *InstrPtr : InsInstrs)
  439   for (auto *InstrPtr : DelInstrs) {
  451     for (auto *InstrPtr : InsInstrs)
  462     MachineBasicBlock *MBB, MachineInstr &Root,
  467     SmallVector<MachineInstr *, 16> InsInstrs;
  468     SmallVector<MachineInstr *, 16> DelInstrs;
  511     auto &MI = *BlockIter++;
  547       SmallVector<MachineInstr *, 16> InsInstrs;
  548       SmallVector<MachineInstr *, 16> DelInstrs;
  620         for (auto *InstrPtr : InsInstrs)
lib/CodeGen/MachineCopyPropagation.cpp
   78     MachineInstr *MI;
  110         if (MachineInstr *MI = I->second.MI)
  119   void trackCopy(MachineInstr *MI, const TargetRegisterInfo &TRI) {
  143   MachineInstr *findCopyForUnit(unsigned RegUnit, const TargetRegisterInfo &TRI,
  153   MachineInstr *findAvailCopy(MachineInstr &DestCopy, unsigned Reg,
  153   MachineInstr *findAvailCopy(MachineInstr &DestCopy, unsigned Reg,
  158     MachineInstr *AvailCopy =
  168     for (const MachineInstr &MI :
  211   void ReadRegister(unsigned Reg, MachineInstr &Reader,
  214   bool eraseIfRedundant(MachineInstr &Copy, unsigned Src, unsigned Def);
  215   void forwardUses(MachineInstr &MI);
  216   bool isForwardableRegClassCopy(const MachineInstr &Copy,
  217                                  const MachineInstr &UseI, unsigned UseIdx);
  218   bool hasImplicitOverlap(const MachineInstr &MI, const MachineOperand &Use);
  221   SmallSetVector<MachineInstr *, 8> MaybeDeadCopies;
  224   DenseMap<MachineInstr*, SmallVector<MachineInstr*, 2>> CopyDbgUsers;
  224   DenseMap<MachineInstr*, SmallVector<MachineInstr*, 2>> CopyDbgUsers;
  240 void MachineCopyPropagation::ReadRegister(unsigned Reg, MachineInstr &Reader,
  246     if (MachineInstr *Copy = Tracker.findCopyForUnit(*RUI, *TRI)) {
  263 static bool isNopCopy(const MachineInstr &PreviousCopy, unsigned Src,
  280 bool MachineCopyPropagation::eraseIfRedundant(MachineInstr &Copy, unsigned Src,
  288   MachineInstr *PrevCopy = Tracker.findAvailCopy(Copy, Def, *TRI);
  305   for (MachineInstr &MI :
  318 bool MachineCopyPropagation::isForwardableRegClassCopy(const MachineInstr &Copy,
  319                                                        const MachineInstr &UseI,
  369 bool MachineCopyPropagation::hasImplicitOverlap(const MachineInstr &MI,
  381 void MachineCopyPropagation::forwardUses(MachineInstr &MI) {
  409     MachineInstr *Copy = Tracker.findAvailCopy(MI, MOUse.getReg(), *TRI);
  452     for (MachineInstr &KMI :
  465     MachineInstr *MI = &*I;
  582       for (SmallSetVector<MachineInstr *, 8>::iterator DI =
  585         MachineInstr *MaybeDead = *DI;
  619     for (MachineInstr *MaybeDead : MaybeDeadCopies) {
lib/CodeGen/MachineFrameInfo.cpp
  198     for (const MachineInstr &MI : MBB) {
lib/CodeGen/MachineFunction.cpp
  143 void MachineFunction::handleInsertion(MachineInstr &MI) {
  148 void MachineFunction::handleRemoval(MachineInstr &MI) {
  326 MachineInstr *MachineFunction::CreateMachineInstr(const MCInstrDesc &MCID,
  329   return new (InstructionRecycler.Allocate<MachineInstr>(Allocator))
  330     MachineInstr(*this, MCID, DL, NoImp);
  335 MachineInstr *
  336 MachineFunction::CloneMachineInstr(const MachineInstr *Orig) {
  337   return new (InstructionRecycler.Allocate<MachineInstr>(Allocator))
  338              MachineInstr(*this, *Orig);
  341 MachineInstr &MachineFunction::CloneMachineInstrBundle(MachineBasicBlock &MBB,
  343   MachineInstr *FirstClone = nullptr;
  346     MachineInstr *Cloned = CloneMachineInstr(&*I);
  366 MachineFunction::DeleteMachineInstr(MachineInstr *MI) {
  450 MachineInstr::ExtraInfo *MachineFunction::createMIExtraInfo(
  453   return MachineInstr::ExtraInfo::create(Allocator, MMOs, PreInstrSymbol,
  826 void MachineFunction::moveCallSiteInfo(const MachineInstr *Old,
  827                                        const MachineInstr *New) {
  839 void MachineFunction::eraseCallSiteInfo(const MachineInstr *MI) {
  846 void MachineFunction::copyCallSiteInfo(const MachineInstr *Old,
  847                                        const MachineInstr *New) {
lib/CodeGen/MachineInstr.cpp
   79 static const MachineFunction *getMFIfAvailable(const MachineInstr &MI) {
   88 static void tryToGetTargetInfo(const MachineInstr &MI,
  134 MachineInstr::MachineInstr(MachineFunction &MF, const MachineInstr &MI)
  382 void MachineInstr::cloneMemRefs(MachineFunction &MF, const MachineInstr &MI) {
  417                                       ArrayRef<const MachineInstr *> MIs) {
  442   for (const MachineInstr &MI : make_pointee_range(MIs.slice(1))) {
  507                                      const MachineInstr &MI) {
  520 uint16_t MachineInstr::mergeFlagsWith(const MachineInstr &Other) const {
  532       MIFlags |= MachineInstr::MIFlag::NoSWrap;
  534       MIFlags |= MachineInstr::MIFlag::NoUWrap;
  540       MIFlags |= MachineInstr::MIFlag::IsExact;
  546       MIFlags |= MachineInstr::MIFlag::FmNoNans;
  548       MIFlags |= MachineInstr::MIFlag::FmNoInfs;
  550       MIFlags |= MachineInstr::MIFlag::FmNsz;
  552       MIFlags |= MachineInstr::MIFlag::FmArcp;
  554       MIFlags |= MachineInstr::MIFlag::FmContract;
  556       MIFlags |= MachineInstr::MIFlag::FmAfn;
  558       MIFlags |= MachineInstr::MIFlag::FmReassoc;
  584 bool MachineInstr::isIdenticalTo(const MachineInstr &Other,
  659 MachineInstr *MachineInstr::removeFromParent() {
  664 MachineInstr *MachineInstr::removeFromBundle() {
  680   MachineInstr *MI = (MachineInstr *)this;
 1191 bool MachineInstr::mayAlias(AAResults *AA, const MachineInstr &Other,
 1399                                    const MachineInstr &MI) {
 1517   if (getFlag(MachineInstr::FrameSetup))
 1519   if (getFlag(MachineInstr::FrameDestroy))
 1521   if (getFlag(MachineInstr::FmNoNans))
 1523   if (getFlag(MachineInstr::FmNoInfs))
 1525   if (getFlag(MachineInstr::FmNsz))
 1527   if (getFlag(MachineInstr::FmArcp))
 1529   if (getFlag(MachineInstr::FmContract))
 1531   if (getFlag(MachineInstr::FmAfn))
 1533   if (getFlag(MachineInstr::FmReassoc))
 1535   if (getFlag(MachineInstr::NoUWrap))
 1537   if (getFlag(MachineInstr::NoSWrap))
 1539   if (getFlag(MachineInstr::IsExact))
 1541   if (getFlag(MachineInstr::FPExcept))
 1977 MachineInstrExpressionTrait::getHashValue(const MachineInstr* const &MI) {
 2054   MachineInstr *MI = BuildMI(MF, DL, MCID, IsIndirect, Reg, Variable, Expr);
 2065   MachineInstr *MI = BuildMI(MF, DL, MCID, IsIndirect, MO, Variable, Expr);
 2072 static const DIExpression *computeExprForSpill(const MachineInstr &MI) {
 2085 MachineInstr *llvm::buildDbgValueForSpill(MachineBasicBlock &BB,
 2097 void llvm::updateDbgValueForSpill(MachineInstr &Orig, int FrameIndex) {
 2105                                 SmallVectorImpl<MachineInstr *> &DbgValues) {
 2106   MachineInstr &MI = *this;
 2123   SmallVector<MachineInstr *, 2> DbgValues;
 2131     auto *DI = MO.getParent();
 2141   for (auto *DBI : DbgValues)
lib/CodeGen/MachineInstrBundle.cpp
   54       MachineInstr *MI = &*MII;
  231     if (MII->getFlag(MachineInstr::FrameSetup))
  232       MIB.setMIFlag(MachineInstr::FrameSetup);
  233     if (MII->getFlag(MachineInstr::FrameDestroy))
  234       MIB.setMIFlag(MachineInstr::FrameDestroy);
  286                     SmallVectorImpl<std::pair<MachineInstr*, unsigned> > *Ops) {
lib/CodeGen/MachineLICM.cpp
  132     DenseMap<unsigned, std::vector<const MachineInstr *>> CSEMap;
  170       MachineInstr *MI;
  174       CandidateInfo(MachineInstr *mi, unsigned def, int fi)
  180     void HoistPostRA(MachineInstr *MI, unsigned Def);
  182     void ProcessMI(MachineInstr *MI, BitVector &PhysRegDefs,
  188     bool IsLICMCandidate(MachineInstr &I);
  190     bool IsLoopInvariantInst(MachineInstr &I);
  192     bool HasLoopPHIUse(const MachineInstr *MI) const;
  194     bool HasHighOperandLatency(MachineInstr &MI, unsigned DefIdx,
  197     bool IsCheapInstruction(MachineInstr &MI) const;
  202     void UpdateBackTraceRegPressure(const MachineInstr *MI);
  204     bool IsProfitableToHoist(MachineInstr &MI);
  225     DenseMap<unsigned, int> calcRegisterCost(const MachineInstr *MI,
  229     void UpdateRegPressure(const MachineInstr *MI,
  232     MachineInstr *ExtractHoistableLoad(MachineInstr *MI);
  232     MachineInstr *ExtractHoistableLoad(MachineInstr *MI);
  234     const MachineInstr *
  235     LookForDuplicate(const MachineInstr *MI,
  236                      std::vector<const MachineInstr *> &PrevMIs);
  239         MachineInstr *MI,
  240         DenseMap<unsigned, std::vector<const MachineInstr *>>::iterator &CI);
  242     bool MayCSE(MachineInstr *MI);
  244     bool Hoist(MachineInstr *MI, MachineBasicBlock *Preheader);
  374 static bool InstructionStoresToFI(const MachineInstr *MI, int FI) {
  397 void MachineLICMBase::ProcessMI(MachineInstr *MI,
  517     for (MachineInstr &MI : *BB)
  552       MachineInstr *MI = Candidate.MI;
  577     for (MachineInstr &MI : *BB) {
  589 void MachineLICMBase::HoistPostRA(MachineInstr *MI, unsigned Def) {
  737       MachineInstr *MI = &*MII;
  758   SmallVector<MachineInstr *, 8> Candidates;
  767   for (MachineInstr *I : Candidates) {
  775     for (MachineInstr &MI : MRI->use_instructions(MO.getReg())) {
  821   for (const MachineInstr &MI : *BB)
  826 void MachineLICMBase::UpdateRegPressure(const MachineInstr *MI,
  845 MachineLICMBase::calcRegisterCost(const MachineInstr *MI, bool ConsiderSeen,
  889 static bool mayLoadFromGOTOrConstantPool(MachineInstr &MI) {
  912 static bool isInvariantStore(const MachineInstr &MI,
  946 static bool isCopyFeedingInvariantStore(const MachineInstr &MI,
  969   for (MachineInstr &UseMI : MRI->use_instructions(CopyDstReg)) {
  978 bool MachineLICMBase::IsLICMCandidate(MachineInstr &I) {
 1003 bool MachineLICMBase::IsLoopInvariantInst(MachineInstr &I) {
 1056 bool MachineLICMBase::HasLoopPHIUse(const MachineInstr *MI) const {
 1057   SmallVector<const MachineInstr*, 8> Work(1, MI);
 1066       for (MachineInstr &UseMI : MRI->use_instructions(Reg)) {
 1091 bool MachineLICMBase::HasHighOperandLatency(MachineInstr &MI,
 1097   for (MachineInstr &UseMI : MRI->use_nodbg_instructions(Reg)) {
 1123 bool MachineLICMBase::IsCheapInstruction(MachineInstr &MI) const {
 1174 void MachineLICMBase::UpdateBackTraceRegPressure(const MachineInstr *MI) {
 1188 bool MachineLICMBase::IsProfitableToHoist(MachineInstr &MI) {
 1283 MachineInstr *MachineLICMBase::ExtractHoistableLoad(MachineInstr *MI) {
 1283 MachineInstr *MachineLICMBase::ExtractHoistableLoad(MachineInstr *MI) {
 1308   SmallVector<MachineInstr *, 2> NewMIs;
 1342   for (MachineInstr &MI : *BB)
 1348 const MachineInstr*
 1349 MachineLICMBase::LookForDuplicate(const MachineInstr *MI,
 1350                                   std::vector<const MachineInstr*> &PrevMIs) {
 1351   for (const MachineInstr *PrevMI : PrevMIs)
 1362 bool MachineLICMBase::EliminateCSE(MachineInstr *MI,
 1363     DenseMap<unsigned, std::vector<const MachineInstr *>>::iterator &CI) {
 1369   if (const MachineInstr *Dup = LookForDuplicate(MI, CI->second)) {
 1420 bool MachineLICMBase::MayCSE(MachineInstr *MI) {
 1422   DenseMap<unsigned, std::vector<const MachineInstr *>>::iterator
 1435 bool MachineLICMBase::Hoist(MachineInstr *MI, MachineBasicBlock *Preheader) {
 1468   DenseMap<unsigned, std::vector<const MachineInstr *>>::iterator
lib/CodeGen/MachineLoopUtils.cpp
   18 MachineInstr &findEquivalentInstruction(MachineInstr &MI,
   18 MachineInstr &findEquivalentInstruction(MachineInstr &MI,
   47   for (MachineInstr &MI : *Loop) {
   48     MachineInstr *NewMI = MF.CloneMachineInstr(&MI);
   80     MachineInstr &MI = *I;
   84     MachineInstr &OrigPhi = findEquivalentInstruction(MI, Loop);
lib/CodeGen/MachineOperand.cpp
   41   if (const MachineInstr *MI = MO.getParent())
  122   const MachineInstr *MI = getParent();
  127     return !MI->hasExtraDefRegAllocReq(MachineInstr::IgnoreBundle);
  130   return !MI->hasExtraSrcRegAllocReq(MachineInstr::IgnoreBundle);
lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
   24     StringRef MKey, const MachineInstr &MI)
lib/CodeGen/MachineOutliner.cpp
  617   DenseMap<MachineInstr *, unsigned, MachineInstrExpressionTrait>
  663     MachineInstr &MI = *It;
  665     DenseMap<MachineInstr *, unsigned, MachineInstrExpressionTrait>::iterator
 1140     MachineInstr *NewMI = MF.CloneMachineInstr(&*I);
lib/CodeGen/MachinePipeliner.cpp
  352   for (MachineInstr &PI : make_range(B.begin(), B.getFirstNonPHI())) {
  531   DenseMap<MachineInstr *, int> Cycles, Stages;
  532   std::vector<MachineInstr *> OrderedInsts;
  541   DenseMap<MachineInstr *, std::pair<unsigned, int64_t>> NewInstrChanges;
  581 static void getPhiRegs(MachineInstr &Phi, MachineBasicBlock *Loop,
  597 static unsigned getLoopPhiReg(MachineInstr &Phi, MachineBasicBlock *LoopBB) {
  628 static bool isDependenceBarrier(MachineInstr &MI, AliasAnalysis *AA) {
  638 static void getUnderlyingObjects(const MachineInstr *MI,
  665     MachineInstr &MI = *SU.getInstr();
  690           MachineInstr &LdMI = *Load->getInstr();
  765     MachineInstr *MI = I.getInstr();
  767     for (MachineInstr::mop_iterator MOI = MI->operands_begin(),
  779           MachineInstr *UseMI = &*UI;
  797         MachineInstr *DefMI = MRI.getUniqueVRegDef(Reg);
  821       MachineInstr *PMI = PI.getSUnit()->getInstr();
  852     MachineInstr *DefMI = MRI.getUniqueVRegDef(OrigBase);
  859     MachineInstr *LastMI = MRI.getUniqueVRegDef(NewBase);
  916   unsigned minFuncUnits(const MachineInstr *Inst, unsigned &F) const {
  963   void calcCriticalResources(MachineInstr &MI) {
  996   bool operator()(const MachineInstr *IS1, const MachineInstr *IS2) const {
  996   bool operator()(const MachineInstr *IS1, const MachineInstr *IS2) const {
 1028   PriorityQueue<MachineInstr *, std::vector<MachineInstr *>, FuncUnitSorter>
 1028   PriorityQueue<MachineInstr *, std::vector<MachineInstr *>, FuncUnitSorter>
 1037     MachineInstr *MI = FuncUnitOrder.top();
 1300       MachineInstr *TmpMI = TmpSU->getInstr();
 1323         MachineInstr *TmpMI = TmpSU->getInstr();
 1551     const MachineInstr *MI = SU->getInstr();
 2056 bool SwingSchedulerDAG::computeDelta(MachineInstr &MI, unsigned &Delta) {
 2070   MachineInstr *BaseDef = MRI.getVRegDef(BaseReg);
 2093 bool SwingSchedulerDAG::canUseLastOffsetValue(MachineInstr *MI,
 2108   MachineInstr *Phi = MRI.getVRegDef(BaseReg);
 2117   MachineInstr *PrevDef = MRI.getVRegDef(PrevReg);
 2132   MachineInstr *NewMI = MF.CloneMachineInstr(MI);
 2149 void SwingSchedulerDAG::applyInstrChange(MachineInstr *MI,
 2160     MachineInstr *LoopDef = findDefInLoop(BaseReg);
 2166       MachineInstr *NewMI = MF.CloneMachineInstr(MI);
 2186 MachineInstr *SwingSchedulerDAG::findDefInLoop(unsigned Reg) {
 2187   SmallPtrSet<MachineInstr *, 8> Visited;
 2188   MachineInstr *Def = MRI.getVRegDef(Reg);
 2216   MachineInstr *SI = Source->getInstr();
 2217   MachineInstr *DI = Dep.getSUnit()->getInstr();
 2248   MachineInstr *Def = MRI.getVRegDef(BaseOpS->getReg());
 2254   MachineInstr *LoopDef = MRI.getVRegDef(LoopVal);
 2461   MachineInstr *MI = SU->getInstr();
 2588 bool SMSchedule::isLoopCarried(SwingSchedulerDAG *SSD, MachineInstr &Phi) {
 2617                                        MachineInstr *Def, MachineOperand &MO) {
 2622   MachineInstr *Phi = MRI.getVRegDef(MO.getReg());
 2764     MachineInstr *MI = SU->getInstr();
 2778             MachineInstr *NewMI = MF.CloneMachineInstr(MI);
 3013 bool ResourceManager::canReserveResources(const MachineInstr &MI) const {
 3017 void ResourceManager::reserveResources(const MachineInstr &MI) {
lib/CodeGen/MachineRegisterInfo.cpp
  135     MachineInstr *MI = MO.getParent();
  222     MachineInstr *MI = MO->getParent();
  400 MachineInstr *MachineRegisterInfo::getVRegDef(unsigned Reg) const {
  411 MachineInstr *MachineRegisterInfo::getUniqueVRegDef(unsigned Reg) const {
  508   for (MachineInstr &I : use_instructions(Reg))
  551     MachineInstr *UseMI = &*I;
  557 static const Function *getCalledFunction(const MachineInstr &MI) {
  570   const MachineInstr &MI = *MO.getParent();
lib/CodeGen/MachineSSAUpdater.cpp
   44                                      SmallVectorImpl<MachineInstr*> *NewPHI)
  152     MachineInstr *NewDef = InsertNewDef(TargetOpcode::IMPLICIT_DEF,
  211 MachineBasicBlock *findCorrespondingPred(const MachineInstr *MI,
  224   MachineInstr *UseMI = U.getParent();
  245   using PhiT = MachineInstr;
  254     MachineInstr *PHI;
  258     explicit PHI_iterator(MachineInstr *P) // begin iterator
  260     PHI_iterator(MachineInstr *P, bool) // end iterator
  294     MachineInstr *NewDef = InsertNewDef(TargetOpcode::IMPLICIT_DEF,
  306     MachineInstr *PHI = InsertNewDef(TargetOpcode::PHI, BB, Loc,
  314   static void AddPHIOperand(MachineInstr *PHI, unsigned Val,
  320   static MachineInstr *InstrIsPHI(MachineInstr *I) {
  320   static MachineInstr *InstrIsPHI(MachineInstr *I) {
  328   static MachineInstr *ValueIsPHI(unsigned Val, MachineSSAUpdater *Updater) {
  334   static MachineInstr *ValueIsNewPHI(unsigned Val, MachineSSAUpdater *Updater) {
  335     MachineInstr *PHI = ValueIsPHI(Val, Updater);
  343   static unsigned GetPHIValue(MachineInstr *PHI) {
lib/CodeGen/MachineScheduler.cpp
  488       MachineInstr &MI = *std::prev(I);
  714   MachineInstr *MI, MachineBasicBlock::iterator InsertPos) {
  779     MachineInstr *MI = SU->getInstr();
  893   for (std::vector<std::pair<MachineInstr *, MachineInstr *>>::iterator
  893   for (std::vector<std::pair<MachineInstr *, MachineInstr *>>::iterator
  895     std::pair<MachineInstr *, MachineInstr *> P = *std::prev(DI);
  895     std::pair<MachineInstr *, MachineInstr *> P = *std::prev(DI);
  896     MachineInstr *DbgValue = P.first;
  929   const MachineInstr &MI = *SU.getInstr();
 1331     MachineInstr *DefMI = LIS->getInstructionFromIndex(DefVNI->def);
 1388   MachineInstr *MI = SU->getInstr();
 1688   MachineInstr *Copy = CopySU->getInstr();
 1756   MachineInstr *GlobalDef = LIS->getInstructionFromIndex(GlobalSegment->start);
 1768   MachineInstr *LastLocalDef = LIS->getInstructionFromIndex(LastLocalVN->def);
 1782   MachineInstr *FirstLocalDef =
 2912   const MachineInstr *MI = SU->getInstr();
 3268     MachineInstr *Copy = DepSU->getInstr();
lib/CodeGen/MachineSink.cpp
  109     DenseMap<unsigned, TinyPtrVector<MachineInstr *>> SeenDbgUsers;
  138     void ProcessDbgInst(MachineInstr &MI);
  139     bool isWorthBreakingCriticalEdge(MachineInstr &MI,
  155     bool PostponeSplitCriticalEdge(MachineInstr &MI,
  159     bool SinkInstruction(MachineInstr &MI, bool &SawStore,
  166     void SalvageUnsunkDebugUsersOfCopy(MachineInstr &,
  171     MachineBasicBlock *FindSuccToSinkTo(MachineInstr &MI, MachineBasicBlock *MBB,
  173     bool isProfitableToSinkTo(unsigned Reg, MachineInstr &MI,
  178     bool PerformTrivialForwardCoalescing(MachineInstr &MI,
  201 bool MachineSinking::PerformTrivialForwardCoalescing(MachineInstr &MI,
  217   MachineInstr *DefMI = MRI->getVRegDef(SrcReg);
  266     MachineInstr *UseInst = MO.getParent();
  280     MachineInstr *UseInst = MO.getParent();
  372     MachineInstr &MI = *I;  // The instruction to sink.
  405 void MachineSinking::ProcessDbgInst(MachineInstr &MI) {
  417 bool MachineSinking::isWorthBreakingCriticalEdge(MachineInstr &MI,
  459       MachineInstr *DefMI = MRI->getVRegDef(Reg);
  468 bool MachineSinking::PostponeSplitCriticalEdge(MachineInstr &MI,
  539 bool MachineSinking::isProfitableToSinkTo(unsigned Reg, MachineInstr &MI,
  559   for (MachineInstr &UseInst : MRI->use_nodbg_instructions(Reg)) {
  626 MachineSinking::FindSuccToSinkTo(MachineInstr &MI, MachineBasicBlock *MBB,
  721 static bool SinkingPreventsImplicitNullCheck(MachineInstr &MI,
  762 static void performSink(MachineInstr &MI, MachineBasicBlock &SuccToSinkTo,
  789   for (SmallVectorImpl<MachineInstr *>::iterator DBI = DbgValuesToSink.begin(),
  792     MachineInstr *DbgMI = *DBI;
  793     MachineInstr *NewDbgMI = DbgMI->getMF()->CloneMachineInstr(*DBI);
  838 bool MachineSinking::SinkInstruction(MachineInstr &MI, bool &SawStore,
  951   SmallVector<MachineInstr *, 4> DbgUsersToSink;
  984     MachineInstr &MI, MachineBasicBlock *TargetBlock) {
  991   SmallVector<MachineInstr *, 4> DbgDefUsers;
  996     for (auto &User : MRI.use_instructions(MO.getReg())) {
 1012   for (auto *User : DbgDefUsers) {
 1078   DenseMap<unsigned, TinyPtrVector<MachineInstr *>> SeenDbgInstrs;
 1143 static void clearKillFlags(MachineInstr *MI, MachineBasicBlock &CurBB,
 1152       for (MachineInstr &UI : make_range(NI, CurBB.end())) {
 1163 static void updateLiveIn(MachineInstr *MI, MachineBasicBlock *SuccBB,
 1178 static bool hasRegisterDependency(MachineInstr *MI,
 1245     MachineInstr *MI = &*I;
 1309     SetVector<MachineInstr *> DbgValsToSinkSet;
 1310     SmallVector<MachineInstr *, 4> DbgValsToSink;
 1317         for (auto *MI : SeenDbgInstrs.lookup(Reg))
lib/CodeGen/MachineTraceMetrics.cpp
  111   for (const auto &MI : *MBB) {
  581   for (const auto &I : *BadMBB)
  627   const MachineInstr *DefMI;
  631   DataDep(const MachineInstr *DefMI, unsigned DefOp, unsigned UseOp)
  650 static bool getDataDeps(const MachineInstr &UseMI,
  658   for (MachineInstr::const_mop_iterator I = UseMI.operands_begin(),
  680 static void getPHIDeps(const MachineInstr &UseMI,
  699 static void updatePhysDepsDownwards(const MachineInstr *UseMI,
  706   for (MachineInstr::const_mop_iterator MI = UseMI->operands_begin(),
  770     const MachineInstr *DefMI = MTM.MRI->getVRegDef(LIR.Reg);
  782 updateDepth(MachineTraceMetrics::TraceBlockInfo &TBI, const MachineInstr &UseMI,
  821 updateDepth(const MachineBasicBlock *MBB, const MachineInstr &UseMI,
  883     for (const auto &UseMI : *MBB) {
  892 static unsigned updatePhysDepsUpwards(const MachineInstr &MI, unsigned Height,
  899   for (MachineInstr::const_mop_iterator MOI = MI.operands_begin(),
  948 using MIHeightMap = DenseMap<const MachineInstr *, unsigned>;
  952 static bool pushDepHeight(const DataDep &Dep, const MachineInstr &UseMI,
  978 addLiveIns(const MachineInstr *DefMI, unsigned DefOp,
 1074       for (const auto &PHI : *Succ) {
 1093       const MachineInstr &MI = *--BI;
 1135       const MachineInstr *DefMI = MTM.MRI->getVRegDef(LIR.Reg);
 1173 MachineTraceMetrics::Trace::getInstrSlack(const MachineInstr &MI) const {
 1181 MachineTraceMetrics::Trace::getPHIDepth(const MachineInstr &PHI) const {
 1277 bool MachineTraceMetrics::Trace::isDepInTrace(const MachineInstr &DefMI,
 1278                                               const MachineInstr &UseMI) const {
lib/CodeGen/MachineVerifier.cpp
  108     using RegMap = DenseMap<unsigned, const MachineInstr *>;
  111     const MachineInstr *FirstNonPHI;
  112     const MachineInstr *FirstTerminator;
  232     void visitMachineBundleBefore(const MachineInstr *MI);
  234     bool verifyVectorElementMatch(LLT Ty0, LLT Ty1, const MachineInstr *MI);
  235     void verifyPreISelGenericInstruction(const MachineInstr *MI);
  236     void visitMachineInstrBefore(const MachineInstr *MI);
  238     void visitMachineInstrAfter(const MachineInstr *MI);
  239     void visitMachineBundleAfter(const MachineInstr *MI);
  245     void report(const char *msg, const MachineInstr *MI);
  261     void verifyInlineAsm(const MachineInstr *MI);
  407     const MachineInstr *CurBundle = nullptr;
  439         const MachineInstr &MI = *MBBI;
  500 void MachineVerifier::report(const char *msg, const MachineInstr *MI) {
  827 void MachineVerifier::visitMachineBundleBefore(const MachineInstr *MI) {
  851 void MachineVerifier::verifyInlineAsm(const MachineInstr *MI) {
  898                                                const MachineInstr *MI) {
  917 void MachineVerifier::verifyPreISelGenericInstruction(const MachineInstr *MI) {
 1480 void MachineVerifier::visitMachineInstrBefore(const MachineInstr *MI) {
 1503   for (MachineInstr::mmo_iterator I = MI->memoperands_begin(),
 1594   const MachineInstr *MI = MO->getParent();
 1940   const MachineInstr *MI = MO->getParent();
 2096 void MachineVerifier::visitMachineInstrAfter(const MachineInstr *MI) {}
 2102 void MachineVerifier::visitMachineBundleAfter(const MachineInstr *MI) {
 2209   for (const MachineInstr &Phi : MBB) {
 2404   const MachineInstr *MI = LiveInts->getInstructionFromIndex(VNI->def);
 2510   const MachineInstr *MI =
 2779     for (const auto &I : *MBB) {
lib/CodeGen/MacroFusion.cpp
  146   const MachineInstr &AnchorMI = *AnchorSU.getInstr();
  164     const MachineInstr *DepMI = DepSU.getInstr();
lib/CodeGen/ModuloSchedule.cpp
   25   for (MachineInstr *MI : ScheduledInstrs)
   35 static void getPhiRegs(MachineInstr &Phi, MachineBasicBlock *Loop,
   51 static unsigned getInitPhiReg(MachineInstr &Phi, MachineBasicBlock *LoopBB) {
   59 static unsigned getLoopPhiReg(MachineInstr &Phi, MachineBasicBlock *LoopBB) {
   74   for (MachineInstr *MI : Schedule.getInstructions()) {
   88         MachineInstr *UseMI = UseOp.getParent();
  132   for (MachineInstr *CI : Schedule.getInstructions()) {
  136     MachineInstr *NewMI = cloneInstr(CI, MaxStageCount, StageNum);
  147     MachineInstr *NewMI = MF.CloneMachineInstr(&*I);
  183   for (auto &I : *BB)
  219           MachineInstr *NewMI =
  290       for (auto &BBI : *BB) {
  293         MachineInstr *In = &BBI;
  297           MachineInstr *NewMI = cloneInstr(In, UINT_MAX, 0);
  450         MachineInstr *InstOp1 = MRI.getVRegDef(PhiOp1);
  472       if (MachineInstr *InstOp1 = MRI.getVRegDef(PhiOp1))
  476       MachineInstr *PhiInst = MRI.getVRegDef(LoopVal);
  643       if (MachineInstr *InstOp2 = MRI.getVRegDef(PhiOp2))
  654         if (MachineInstr *InstOp1 = MRI.getVRegDef(PhiOp1)) {
  724       for (MachineInstr::mop_iterator MOI = MI->operands_begin(),
  765     MachineInstr *MI = &*BBI;
  788   for (auto &PHI : KernelBB->phis()) {
  800         MachineInstr *MI = MRI.getVRegDef(LCDef);
  806         for (auto &BBJ : make_range(MachineBasicBlock::instr_iterator(MI),
  822           for (auto &I : *Epilog)
  833   for (MachineInstr &MI : *BB) {
  859   SmallVector<MachineInstr *, 4> PrevInsts;
  911 bool ModuloScheduleExpander::computeDelta(MachineInstr &MI, unsigned &Delta) {
  925   MachineInstr *BaseDef = MRI.getVRegDef(BaseReg);
  944 void ModuloScheduleExpander::updateMemOperands(MachineInstr &NewMI,
  945                                                MachineInstr &OldMI,
  977 MachineInstr *ModuloScheduleExpander::cloneInstr(MachineInstr *OldMI,
  977 MachineInstr *ModuloScheduleExpander::cloneInstr(MachineInstr *OldMI,
  980   MachineInstr *NewMI = MF.CloneMachineInstr(OldMI);
  999 MachineInstr *ModuloScheduleExpander::cloneAndChangeInstr(
 1000     MachineInstr *OldMI, unsigned CurStageNum, unsigned InstStageNum) {
 1001   MachineInstr *NewMI = MF.CloneMachineInstr(OldMI);
 1009     MachineInstr *LoopDef = findDefInLoop(RegAndOffset.first);
 1020 void ModuloScheduleExpander::updateInstruction(MachineInstr *NewMI,
 1039       MachineInstr *Def = MRI.getVRegDef(reg);
 1058 MachineInstr *ModuloScheduleExpander::findDefInLoop(unsigned Reg) {
 1059   SmallPtrSet<MachineInstr *, 8> Visited;
 1060   MachineInstr *Def = MRI.getVRegDef(Reg);
 1079     MachineInstr *LoopInst = MRI.getVRegDef(LoopVal);
 1110   for (auto &PHI : BB->phis()) {
 1137     unsigned PhiNum, MachineInstr *Phi, unsigned OldReg, unsigned NewReg,
 1147     MachineInstr *UseMI = UseOp.getParent();
 1159     MachineInstr *OrigMI = OrigInstr->second;
 1189 bool ModuloScheduleExpander::isLoopCarried(MachineInstr &Phi) {
 1198   MachineInstr *Use = MRI.getVRegDef(LoopVal);
 1222       MachineInstr &MI = *I++;
 1263   Register remapUse(Register Reg, MachineInstr &MI);
 1295   MachineInstr *FirstMI = nullptr;
 1296   for (MachineInstr *MI : S.getInstructions()) {
 1316   for (MachineInstr &MI : *BB) {
 1340       for (MachineInstr &MI : MRI.use_instructions(Def.getReg())) {
 1350 Register KernelRewriter::remapUse(Register Reg, MachineInstr &MI) {
 1351   MachineInstr *Producer = MRI.getUniqueVRegDef(Reg);
 1472     MachineInstr *MI = MRI.getVRegDef(R);
 1525                     const SmallPtrSetImpl<MachineInstr *> &IllegalPhis)
 1530       MachineInstr *MI = MRI.getVRegDef(MO->getReg());
 1638     for (MachineInstr &MI : (*EI)->phis()) {
 1640       MachineInstr *Use = MRI.getUniqueVRegDef(Reg);
 1658       MachineInstr *MI = &*I++;
 1678   for (MachineInstr &MI : BB->phis()) {
 1682     SmallVector<MachineInstr *, 4> Uses;
 1683     for (MachineInstr &Use : MRI.use_instructions(OldR))
 1686     for (MachineInstr *Use : Uses)
 1689     MachineInstr *NI = BuildMI(NewBB, DebugLoc(), TII->get(TargetOpcode::PHI), R)
 1714   MachineInstr *MI = MRI.getUniqueVRegDef(Reg);
 1719 void PeelingModuloScheduleExpander::rewriteUsesOf(MachineInstr *MI) {
 1743     SmallVector<std::pair<MachineInstr *, Register>, 4> Subs;
 1744     for (MachineInstr &UseMI : MRI.use_instructions(DefMO.getReg())) {
 1787       for (MachineInstr &P : Fallthrough->phis()) {
 1797       for (MachineInstr &P : Epilog->phis()) {
 1860   SmallPtrSet<MachineInstr *, 4> IllegalPhis;
 1990   DenseMap<MachineInstr *, int> Cycle, Stage;
 1991   std::vector<MachineInstr *> Instrs;
 1992   for (MachineInstr &MI : *BB) {
 2015   for (MachineInstr *MI : S.getInstructions()) {
lib/CodeGen/OptimizePHIs.cpp
   55     using InstrSet = SmallPtrSet<MachineInstr *, 16>;
   56     using InstrSetIterator = SmallPtrSetIterator<MachineInstr *>;
   58     bool IsSingleValuePHICycle(MachineInstr *MI, unsigned &SingleValReg,
   60     bool IsDeadPHICycle(MachineInstr *MI, InstrSet &PHIsInCycle);
   96 bool OptimizePHIs::IsSingleValuePHICycle(MachineInstr *MI,
  115     MachineInstr *SrcMI = MRI->getVRegDef(SrcReg);
  142 bool OptimizePHIs::IsDeadPHICycle(MachineInstr *MI, InstrSet &PHIsInCycle) {
  156   for (MachineInstr &UseMI : MRI->use_nodbg_instructions(DstReg)) {
  170     MachineInstr *MI = &*MII++;
  199         MachineInstr *PhiMI = *PI;
lib/CodeGen/PHIElimination.cpp
  112     SmallPtrSet<MachineInstr*, 4> ImpDefs;
  116         DenseMap<MachineInstr*, unsigned, MachineInstrExpressionTrait>;
  172   for (MachineInstr *DefMI : ImpDefs) {
  223   for (MachineInstr &DI : MRI.def_instructions(VirtReg))
  230 static bool allPhiOperandsUndefined(const MachineInstr &MPhi,
  247   MachineInstr *MPhi = MBB.remove(&*MBB.begin());
  262   MachineInstr *PHICopy = nullptr;
  301         if (MachineInstr *OldKill = VI.findKill(&MBB)) {
  399     MachineInstr *NewSrcInstr = nullptr;
  410         if (MachineInstr *DefMI = MRI->getVRegDef(SrcReg))
  553     for (const auto &BBI : MBB) {
lib/CodeGen/PHIEliminationUtils.cpp
   34   SmallPtrSet<MachineInstr*, 8> DefUsesInMBB;
   36   for (MachineInstr &RI : MRI.reg_instructions(SrcReg)) {
lib/CodeGen/PatchableFunction.cpp
   41 static bool doesNotGeneratecode(const MachineInstr &MI) {
lib/CodeGen/PeepholeOptimizer.cpp
  187     bool optimizeCmpInstr(MachineInstr &MI);
  188     bool optimizeExtInstr(MachineInstr &MI, MachineBasicBlock &MBB,
  189                           SmallPtrSetImpl<MachineInstr*> &LocalMIs);
  190     bool optimizeSelect(MachineInstr &MI,
  191                         SmallPtrSetImpl<MachineInstr *> &LocalMIs);
  192     bool optimizeCondBranch(MachineInstr &MI);
  193     bool optimizeCoalescableCopy(MachineInstr &MI);
  194     bool optimizeUncoalescableCopy(MachineInstr &MI,
  195                                    SmallPtrSetImpl<MachineInstr *> &LocalMIs);
  196     bool optimizeRecurrence(MachineInstr &PHI);
  198     bool isMoveImmediate(MachineInstr &MI,
  200                          DenseMap<unsigned, MachineInstr*> &ImmDefMIs);
  201     bool foldImmediate(MachineInstr &MI, SmallSet<unsigned, 4> &ImmDefRegs,
  202                        DenseMap<unsigned, MachineInstr*> &ImmDefMIs);
  216     bool foldRedundantCopy(MachineInstr &MI,
  218                            DenseMap<unsigned, MachineInstr *> &CopyMIs);
  228     bool foldRedundantNAPhysCopy(MachineInstr &MI,
  229         DenseMap<unsigned, MachineInstr *> &NAPhysToVirtMIs);
  231     bool isLoadFoldable(MachineInstr &MI,
  236     bool isCoalescableCopy(const MachineInstr &MI) {
  246     bool isUncoalescableCopy(const MachineInstr &MI) {
  253     MachineInstr &rewriteSource(MachineInstr &CopyLike,
  253     MachineInstr &rewriteSource(MachineInstr &CopyLike,
  267     RecurrenceInstr(MachineInstr *MI) : MI(MI) {}
  268     RecurrenceInstr(MachineInstr *MI, unsigned Idx1, unsigned Idx2)
  271     MachineInstr *getMI() const { return MI; }
  275     MachineInstr *MI;
  288     const MachineInstr *Inst = nullptr;
  299     void setInst(const MachineInstr *I) { Inst = I; }
  300     const MachineInstr *getInst() const { return Inst; }
  366     const MachineInstr *Def = nullptr;
  457 optimizeExtInstr(MachineInstr &MI, MachineBasicBlock &MBB,
  458                  SmallPtrSetImpl<MachineInstr*> &LocalMIs) {
  489   for (MachineInstr &UI : MRI->use_nodbg_instructions(DstReg))
  500     MachineInstr *UseMI = UseMO.getParent();
  566     for (MachineInstr &UI : MRI->use_nodbg_instructions(DstReg))
  573       MachineInstr *UseMI = UseMO->getParent();
  585       MachineInstr *Copy = BuildMI(*UseMBB, UseMI, UseMI->getDebugLoc(),
  606 bool PeepholeOptimizer::optimizeCmpInstr(MachineInstr &MI) {
  626 bool PeepholeOptimizer::optimizeSelect(MachineInstr &MI,
  627                             SmallPtrSetImpl<MachineInstr *> &LocalMIs) {
  644 bool PeepholeOptimizer::optimizeCondBranch(MachineInstr &MI) {
  754 static MachineInstr &
  757           MachineInstr &OrigPHI) {
  788   MachineInstr &CopyLike;
  791   Rewriter(MachineInstr &CopyLike) : CopyLike(CopyLike) {}
  830   CopyRewriter(MachineInstr &MI) : Rewriter(MI) {
  868   UncoalescableRewriter(MachineInstr &MI) : Rewriter(MI) {
  905   InsertSubregRewriter(MachineInstr &MI) : Rewriter(MI) {
  957   ExtractSubregRewriter(MachineInstr &MI, const TargetInstrInfo &TII)
 1017   RegSequenceRewriter(MachineInstr &MI) : Rewriter(MI) {
 1084 static Rewriter *getCopyRewriter(MachineInstr &MI, const TargetInstrInfo &TII) {
 1144     MachineInstr &OrigPHI = const_cast<MachineInstr &>(*Res.getInst());
 1145     MachineInstr &NewPHI = insertPHI(*MRI, *TII, NewPHISrcs, OrigPHI);
 1167 bool PeepholeOptimizer::optimizeCoalescableCopy(MachineInstr &MI) {
 1221 MachineInstr &
 1222 PeepholeOptimizer::rewriteSource(MachineInstr &CopyLike,
 1234   MachineInstr *NewCopy =
 1269     MachineInstr &MI, SmallPtrSetImpl<MachineInstr *> &LocalMIs) {
 1269     MachineInstr &MI, SmallPtrSetImpl<MachineInstr *> &LocalMIs) {
 1297     MachineInstr &NewCopy = rewriteSource(MI, Def, RewriteMap);
 1311     MachineInstr &MI, SmallSet<unsigned, 16> &FoldAsLoadDefCandidates) {
 1331     MachineInstr &MI, SmallSet<unsigned, 4> &ImmDefRegs,
 1332     DenseMap<unsigned, MachineInstr *> &ImmDefMIs) {
 1351 bool PeepholeOptimizer::foldImmediate(MachineInstr &MI,
 1353     DenseMap<unsigned, MachineInstr *> &ImmDefMIs) {
 1366     DenseMap<unsigned, MachineInstr*>::iterator II = ImmDefMIs.find(Reg);
 1390 bool PeepholeOptimizer::foldRedundantCopy(MachineInstr &MI,
 1392     DenseMap<unsigned, MachineInstr *> &CopyMIs) {
 1409   MachineInstr *PrevCopy = CopyMIs.find(SrcReg)->second;
 1439     MachineInstr &MI, DenseMap<unsigned, MachineInstr *> &NAPhysToVirtMIs) {
 1439     MachineInstr &MI, DenseMap<unsigned, MachineInstr *> &NAPhysToVirtMIs) {
 1512   MachineInstr &MI = *(MRI->use_instr_nodbg_begin(Reg));
 1564 bool PeepholeOptimizer::optimizeRecurrence(MachineInstr &PHI) {
 1620     SmallPtrSet<MachineInstr*, 16> LocalMIs;
 1622     DenseMap<unsigned, MachineInstr*> ImmDefMIs;
 1630     DenseMap<unsigned, MachineInstr *> NAPhysToVirtMIs;
 1634     DenseMap<unsigned, MachineInstr *> CopySrcMIs;
 1640       MachineInstr *MI = &*MII;
 1768             MachineInstr *DefMI = nullptr;
 1769             if (MachineInstr *FoldMI =
 1867   for (const MachineInstr &UseMI : MRI.use_nodbg_instructions(DefOp.getReg())) {
lib/CodeGen/PostRAHazardRecognizer.cpp
   81     for (MachineInstr &MI : MBB) {
lib/CodeGen/PostRASchedulerList.cpp
  180     void Observe(MachineInstr &MI, unsigned Count);
  337       MachineInstr &MI = *std::prev(I);
  426 void SchedulePostRATDList::Observe(MachineInstr &MI, unsigned Count) {
  693   for (std::vector<std::pair<MachineInstr *, MachineInstr *> >::iterator
  693   for (std::vector<std::pair<MachineInstr *, MachineInstr *> >::iterator
  695     std::pair<MachineInstr *, MachineInstr *> P = *std::prev(DI);
  695     std::pair<MachineInstr *, MachineInstr *> P = *std::prev(DI);
  696     MachineInstr *DbgValue = P.first;
lib/CodeGen/ProcessImplicitDefs.cpp
   32   SmallSetVector<MachineInstr*, 16> WorkList;
   34   void processImplicitDef(MachineInstr *MI);
   35   bool canTurnIntoImplicitDef(MachineInstr *MI);
   62 bool ProcessImplicitDefs::canTurnIntoImplicitDef(MachineInstr *MI) {
   74 void ProcessImplicitDefs::processImplicitDef(MachineInstr *MI) {
   83       MachineInstr *UserMI = MO.getParent();
lib/CodeGen/PrologEpilogInserter.cpp
  173     SmallDenseMap<MachineBasicBlock *, SmallVector<MachineInstr *, 4>, 4>;
  180   SmallVector<const MachineInstr *, 4> FrameIndexValues;
  182   for (auto &MI : MBB) {
  208     for (auto *MI : EntryDbgValues[&MBB])
 1195     MachineInstr &MI = *I;
lib/CodeGen/ReachingDefAnalysis.cpp
   95 void ReachingDefAnalysis::processDefs(MachineInstr *MI) {
  127   for (MachineInstr &MI : *TraversedMBB.MBB) {
  173 int ReachingDefAnalysis::getReachingDef(MachineInstr *MI, int PhysReg) {
  192 int ReachingDefAnalysis::getClearance(MachineInstr *MI, MCPhysReg PhysReg) {
lib/CodeGen/RegAllocBase.cpp
  118       MachineInstr *MI = nullptr;
lib/CodeGen/RegAllocBase.h
   75   SmallPtrSet<MachineInstr *, 32> DeadRemats;
lib/CodeGen/RegAllocFast.cpp
   84       MachineInstr *LastUse = nullptr; ///< Last instr to use reg.
  102     DenseMap<unsigned, SmallVector<MachineInstr *, 2>> LiveDbgValueMap;
  132     SmallVector<MachineInstr *, 32> Coalesced;
  184     void allocateInstruction(MachineInstr &MI);
  185     void handleDebugValue(MachineInstr &MI);
  186     void handleThroughOperands(MachineInstr &MI,
  210     void allocVirtReg(MachineInstr &MI, LiveReg &LR, unsigned Hint);
  212     MCPhysReg defineVirtReg(MachineInstr &MI, unsigned OpNum, unsigned VirtReg,
  214     LiveReg &reloadVirtReg(MachineInstr &MI, unsigned OpNum, unsigned VirtReg,
  217     bool setPhysReg(MachineInstr &MI, MachineOperand &MO, MCPhysReg PhysReg);
  283   for (const MachineInstr &UseInst : MRI->reg_nodbg_instructions(VirtReg)) {
  302   for (const MachineInstr &DefInst : MRI->def_instructions(VirtReg)) {
  328   SmallVectorImpl<MachineInstr *> &LRIDbgValues = LiveDbgValueMap[VirtReg];
  329   for (MachineInstr *DBG : LRIDbgValues) {
  330     MachineInstr *NewDV = buildDbgValueForSpill(*MBB, Before, *DBG, FI);
  620 static bool isCoalescable(const MachineInstr &MI) {
  632     MachineInstr *VRegDef = MRI->getUniqueVRegDef(Reg);
  646   for (const MachineInstr &MI : MRI->def_instructions(VirtReg)) {
  661 void RegAllocFast::allocVirtReg(MachineInstr &MI, LiveReg &LR, unsigned Hint0) {
  777 MCPhysReg RegAllocFast::defineVirtReg(MachineInstr &MI, unsigned OpNum,
  787       const MachineInstr &UseMI = *MRI->use_instr_nodbg_begin(VirtReg);
  808 RegAllocFast::LiveReg &RegAllocFast::reloadVirtReg(MachineInstr &MI,
  855 bool RegAllocFast::setPhysReg(MachineInstr &MI, MachineOperand &MO,
  886 void RegAllocFast::handleThroughOperands(MachineInstr &MI,
 1012 void RegAllocFast::allocateInstruction(MachineInstr &MI) {
 1210 void RegAllocFast::handleDebugValue(MachineInstr &MI) {
 1263   for (MachineInstr &MI : MBB) {
 1285   for (MachineInstr *MI : Coalesced)
lib/CodeGen/RegAllocGreedy.cpp
 1822   MachineInstr *MI = MRI->getUniqueVRegDef(VirtReg.reg);
 2065     const MachineInstr *MI, unsigned Reg, const TargetRegisterClass *SuperRC,
 2113     if (const MachineInstr *MI = Indexes->getInstructionFromIndex(Uses[i]))
 2873   for (const MachineInstr &Instr : MRI->reg_nodbg_instructions(Reg)) {
 3169       for (MachineInstr &MI : *MBB) {
lib/CodeGen/RegAllocPBQP.cpp
  160   SmallPtrSet<MachineInstr *, 32> DeadRemats;
  446       for (const auto &MI : MBB) {
lib/CodeGen/RegUsageInfoPropagate.cpp
   64   static void setRegMask(MachineInstr &MI, ArrayRef<uint32_t> RegMask) {
   89                                           const MachineInstr &MI) {
  116     for (MachineInstr &MI : MBB) {
lib/CodeGen/RegisterCoalescer.cpp
  150     SmallVector<MachineInstr*, 8> WorkList;
  151     SmallVector<MachineInstr*, 8> LocalWorkList;
  155     SmallPtrSet<MachineInstr*, 8> ErasedInstrs;
  158     SmallVector<MachineInstr*, 8> DeadDefs;
  176     void LRE_WillEraseInstruction(MachineInstr *MI) override;
  190     bool copyCoalesceWorkList(MutableArrayRef<MachineInstr*> CurrList);
  204     bool joinCopy(MachineInstr *CopyMI, bool &Again);
  239     bool adjustCopiesBackFrom(const CoalescerPair &CP, MachineInstr *CopyMI);
  255                                                   MachineInstr *CopyMI);
  258     bool removePartialRedundancy(const CoalescerPair &CP, MachineInstr &CopyMI);
  262     bool reMaterializeTrivialDef(const CoalescerPair &CP, MachineInstr *CopyMI,
  288     MachineInstr *eliminateUndefCopy(MachineInstr *CopyMI);
  288     MachineInstr *eliminateUndefCopy(MachineInstr *CopyMI);
  302     bool applyTerminalRule(const MachineInstr &Copy) const;
  308                       SmallVectorImpl<MachineInstr * > *Dead = nullptr) {
  322     void deleteInstr(MachineInstr* MI) {
  362                                        const MachineInstr *MI, unsigned &Src,
  390   for (const auto &MI : *MBB) {
  397 bool CoalescerPair::setRegisters(const MachineInstr *MI) {
  494 bool CoalescerPair::isCoalescable(const MachineInstr *MI) const {
  550 void RegisterCoalescer::LRE_WillEraseInstruction(MachineInstr *MI) {
  556                                              MachineInstr *CopyMI) {
  600   MachineInstr *ACopyMI = LIS->getInstructionFromIndex(AValNo->def);
  613   MachineInstr *ValSEndInst =
  739                                             MachineInstr *CopyMI) {
  778   MachineInstr *DefMI = LIS->getInstructionFromIndex(AValNo->def);
  817     MachineInstr *UseMI = MO.getParent();
  834   MachineInstr *NewMI =
  866     MachineInstr *UseMI = UseMO.getParent();
 1026                                                 MachineInstr &CopyMI) {
 1060     MachineInstr *DefMI = LIS->getInstructionFromIndex(PVal->def);
 1123     MachineInstr *NewCopyMI = BuildMI(*CopyLeftBB, InsPos, CopyMI.getDebugLoc(),
 1190 static bool definesFullReg(const MachineInstr &MI, unsigned Reg) {
 1205                                                 MachineInstr *CopyMI,
 1222   MachineInstr *DefMI = LIS->getInstructionFromIndex(ValNo->def);
 1282   MachineInstr &NewMI = *std::prev(MII);
 1481       MachineInstr *UseMI = UseMO.getParent();
 1514 MachineInstr *RegisterCoalescer::eliminateUndefCopy(MachineInstr *CopyMI) {
 1514 MachineInstr *RegisterCoalescer::eliminateUndefCopy(MachineInstr *CopyMI) {
 1590     const MachineInstr &MI = *MO.getParent();
 1662       MachineInstr &MI = *MO.getParent();
 1670   SmallPtrSet<MachineInstr*, 8> Visited;
 1674     MachineInstr *UseMI = &*(I++);
 1751 bool RegisterCoalescer::joinCopy(MachineInstr *CopyMI, bool &Again) {
 1790     if (MachineInstr *UndefMI = eliminateUndefCopy(CopyMI)) {
 2024   MachineInstr *CopyMI;
 2052     MachineInstr &DestMI = *MRI->getVRegDef(SrcReg);
 2064         MachineInstr *MI = LIS->getInstructionFromIndex(SI);
 2283   LaneBitmask computeWriteLanes(const MachineInstr *DefMI, bool &Redef) const;
 2325   bool usesLanes(const MachineInstr &MI, unsigned, unsigned, LaneBitmask) const;
 2377   void eraseInstrs(SmallPtrSetImpl<MachineInstr*> &ErasedInstrs,
 2390 LaneBitmask JoinVals::computeWriteLanes(const MachineInstr *DefMI, bool &Redef)
 2410     MachineInstr *MI = Indexes->getInstructionFromIndex(Def);
 2492   const MachineInstr *DefMI = nullptr;
 2823 bool JoinVals::usesLanes(const MachineInstr &MI, unsigned Reg, unsigned SubIdx,
 2876     MachineInstr *LastMI =
 3113 void JoinVals::eraseInstrs(SmallPtrSetImpl<MachineInstr*> &ErasedInstrs,
 3189       MachineInstr *MI = Indexes->getInstructionFromIndex(Def);
 3459 static bool isLocalCopy(MachineInstr *Copy, const LiveIntervals *LIS) {
 3489 copyCoalesceWorkList(MutableArrayRef<MachineInstr*> CurrList) {
 3511 static bool isTerminalReg(unsigned DstReg, const MachineInstr &Copy,
 3515   for (const MachineInstr &MI : MRI->reg_nodbg_instructions(DstReg))
 3521 bool RegisterCoalescer::applyTerminalRule(const MachineInstr &Copy) const {
 3540   for (const MachineInstr &MI : MRI->reg_nodbg_instructions(SrcReg)) {
 3577     SmallVector<MachineInstr*, 2> LocalTerminals;
 3578     SmallVector<MachineInstr*, 2> GlobalTerminals;
 3605     SmallVector<MachineInstr*, 2> Terminals;
 3606     for (MachineInstr &MII : *MBB)
 3619   MutableArrayRef<MachineInstr*>
lib/CodeGen/RegisterCoalescer.h
   68     bool setRegisters(const MachineInstr*);
   76     bool isCoalescable(const MachineInstr*) const;
lib/CodeGen/RegisterPressure.cpp
  480   void collectInstr(const MachineInstr &MI) const {
  489   void collectInstrLanes(const MachineInstr &MI) const {
  568 void RegisterOperands::collect(const MachineInstr &MI,
  579 void RegisterOperands::detectDeadDefs(const MachineInstr &MI,
  602                                           MachineInstr *AddFlagsMI) {
  881   const MachineInstr &MI = *CurrPos;
  947   const MachineInstr &MI = *CurrPos;
 1041 void RegPressureTracker::bumpUpwardPressure(const MachineInstr *MI) {
 1093 getMaxUpwardPressureDelta(const MachineInstr *MI, PressureDiff *PDiff,
 1161 getUpwardPressureDelta(const MachineInstr *MI, /*const*/ PressureDiff &PDiff,
 1230     const MachineInstr *MI = MO.getParent();
 1282 void RegPressureTracker::bumpDownwardPressure(const MachineInstr *MI) {
 1342 getMaxDownwardPressureDelta(const MachineInstr *MI, RegPressureDelta &Delta,
 1365 getUpwardPressure(const MachineInstr *MI,
 1381 getDownwardPressure(const MachineInstr *MI,
lib/CodeGen/RegisterScavenging.cpp
  112   MachineInstr &MI = *MBBI;
  159   MachineInstr &MI = *MBBI;
  186   MachineInstr &MI = *MBBI;
  263   const MachineInstr &MI = *MBBI;
  392     const MachineInstr &MI = *I;
  450 static unsigned getFrameIndexOperandNum(MachineInstr &MI) {
  537   MachineInstr &MI = *I;
  630   const MachineInstr *RealDef = nullptr;
  637       const MachineInstr &MI = *MO.getParent();
  661   MachineInstr &DefMI = *FirstDef->getParent();
  693       const MachineInstr &NMI = *N;
  715     const MachineInstr &MI = *I;
lib/CodeGen/RenameIndependentSubregs.cpp
  221     auto *MI = MO.getParent();
lib/CodeGen/ScheduleDAGInstrs.cpp
  127 static bool getUnderlyingObjectsForInstr(const MachineInstr *MI,
  201   MachineInstr *ExitMI = RegionEnd != BB->end() ? &*RegionEnd : nullptr;
  253       MachineInstr *RegUse = nullptr;
  285   MachineInstr *MI = SU->getInstr();
  389   MachineInstr *MI = SU->getInstr();
  438         MachineInstr *Use = UseSU->getInstr();
  509   const MachineInstr *MI = SU->getInstr();
  534 static inline bool isGlobalMemoryObject(AAResults *AA, MachineInstr *MI) {
  565   for (MachineInstr &MI : make_range(RegionBegin, RegionEnd)) {
  792   MachineInstr *DbgMI = nullptr;
  795     MachineInstr &MI = *std::prev(MII);
 1087                         MachineInstr &MI, bool addToLiveRegs) {
 1110   for (MachineInstr &MI : make_range(MBB.rbegin(), MBB.rend())) {
lib/CodeGen/SelectionDAG/FastISel.cpp
  168 static unsigned findSinkableLocalRegDef(MachineInstr &MI) {
  200       MachineInstr &LocalMI = *RI;
  234   for (MachineInstr &I : *MBB) {
  248 void FastISel::sinkLocalValueMaterialization(MachineInstr &LocalMI,
  278   MachineInstr *FirstUser = nullptr;
  280   for (MachineInstr &UseInst : MRI.use_nodbg_instructions(DefReg)) {
  307   SmallVector<MachineInstr *, 1> DbgValues;
  308   for (MachineInstr &DbgVal : MRI.use_instructions(DefReg)) {
  324   for (MachineInstr *DI : DbgValues) {
  558     MachineInstr *Dead = &*I;
 1573 void FastISel::removeDeadLocalValueCode(MachineInstr *SavedLastLocalValue)
 1575   MachineInstr *CurLastLocalValue = getLastLocalValue();
 1591   MachineInstr *SavedLastLocalValue = getLastLocalValue();
 2360   MachineInstr *User = RI->getParent();
lib/CodeGen/SelectionDAG/InstrEmitter.cpp
  503     MachineInstr *DefMI;
  676 MachineInstr *
  764 MachineInstr *
  853     MachineInstr *MI = MIB.getInstr();
  856       MI->setFlag(MachineInstr::MIFlag::FmNsz);
  859       MI->setFlag(MachineInstr::MIFlag::FmArcp);
  862       MI->setFlag(MachineInstr::MIFlag::FmNoNans);
  865       MI->setFlag(MachineInstr::MIFlag::FmNoInfs);
  868       MI->setFlag(MachineInstr::MIFlag::FmContract);
  871       MI->setFlag(MachineInstr::MIFlag::FmAfn);
  874       MI->setFlag(MachineInstr::MIFlag::FmReassoc);
  877       MI->setFlag(MachineInstr::MIFlag::NoUWrap);
  880       MI->setFlag(MachineInstr::MIFlag::NoSWrap);
  883       MI->setFlag(MachineInstr::MIFlag::IsExact);
  886       MI->setFlag(MachineInstr::MIFlag::FPExcept);
lib/CodeGen/SelectionDAG/InstrEmitter.h
  107   MachineInstr *EmitDbgValue(SDDbgValue *SD,
  111   MachineInstr *EmitDbgLabel(SDDbgLabel *SD);
lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
  780           if (auto *DbgMI = Emitter.EmitDbgValue(DV, VRBaseMap))
lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
  733                    SmallVectorImpl<std::pair<unsigned, MachineInstr*> > &Orders,
  747       MachineInstr *DbgMI = Emitter.EmitDbgValue(DV, VRBaseMap);
  762                   SmallVectorImpl<std::pair<unsigned, MachineInstr *>> &Orders,
  763                   SmallSet<unsigned, 8> &Seen, MachineInstr *NewInsn) {
  831   SmallVector<std::pair<unsigned, MachineInstr*>, 32> Orders;
  856     MachineInstr *MI;
  877       MachineInstr *DbgMI= Emitter.EmitDbgValue(*PDI, VRBaseMap);
  952       MachineInstr *MI = Orders[i].second;
  961         MachineInstr *DbgMI = Emitter.EmitDbgValue(*DI, VRBaseMap);
  978     SmallVector<MachineInstr*, 8> DbgMIs;
  984       if (MachineInstr *DbgMI = Emitter.EmitDbgValue(*DI, VRBaseMap))
  998       MachineInstr *MI = InstrOrder.second;
 1006         MachineInstr *DbgMI = Emitter.EmitDbgLabel(*DLI);
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  287 TargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
  297 void TargetLowering::AdjustInstrPostInstrSelection(MachineInstr &MI,
  571     MachineInstr *MI = FuncInfo->ArgDbgValues[e-i-1];
  578       MachineInstr *Def = RegInfo->getVRegDef(Reg);
  593       MachineInstr *Def = RegInfo->getVRegDef(LDI->second);
  611       MachineInstr *CopyUseMI = nullptr;
  615         MachineInstr *UseMI = &*(UI++);
  626         MachineInstr *NewMI =
  641     for (const auto &MI : MBB) {
 1620 static bool MIIsInTerminatorSequence(const MachineInstr &MI) {
 1638   MachineInstr::const_mop_iterator OPI = MI.operands_begin();
 1647   MachineInstr::const_mop_iterator OPI2 = OPI;
lib/CodeGen/ShrinkWrap.cpp
  162   bool useOrDefCSROrFI(const MachineInstr &MI, RegScavenger *RS) const;
  259 bool ShrinkWrap::useOrDefCSROrFI(const MachineInstr &MI,
  353     for (const MachineInstr &Terminator : MBB.terminators()) {
  512     for (const MachineInstr &MI : MBB) {
lib/CodeGen/SlotIndexes.cpp
   74     for (MachineInstr &MI : MBB) {
  104 void SlotIndexes::removeMachineInstrFromMaps(MachineInstr &MI) {
  119 void SlotIndexes::removeSingleMachineInstrFromMaps(MachineInstr &MI) {
  136     MachineInstr &NextMI = *Next;
  205     MachineInstr *SlotMI = ListI->getInstr();
  206     MachineInstr *MI = (MBBI != MBB->end() && !pastStart) ? &*MBBI : nullptr;
  231     MachineInstr &MI = *I;
lib/CodeGen/SplitKit.cpp
  436     const MachineInstr *DefMI = LIS.getInstructionFromIndex(Def);
  517   MachineInstr *CopyMI = BuildMI(MBB, InsertBefore, DebugLoc(), Desc)
  544     MachineInstr *CopyMI =
  702   MachineInstr *MI = LIS.getInstructionFromIndex(Idx);
  719   MachineInstr *MI = LIS.getInstructionFromIndex(Idx);
  770   MachineInstr *MI = LIS.getInstructionFromIndex(Boundary);
  802   MachineInstr *MI = LIS.getInstructionFromIndex(Idx);
  855     MachineInstr *MI = LIS.getInstructionFromIndex(Def);
 1318     MachineInstr *MI = MO.getParent();
 1408   SmallVector<MachineInstr*, 8> Dead;
 1417       MachineInstr *MI = LIS.getInstructionFromIndex(S.valno->def);
lib/CodeGen/StackColoring.cpp
  426   SmallVector<MachineInstr*, 8> Markers;
  489   bool isLifetimeStartOrEnd(const MachineInstr &MI,
  566 static inline int getStartOrEndSlot(const MachineInstr &MI)
  582 bool StackColoring::isLifetimeStartOrEnd(const MachineInstr &MI,
  653     for (MachineInstr &MI : *MBB) {
  722     for (MachineInstr &MI : *MBB) {
  833     for (const MachineInstr &MI : MBB) {
  876   for (MachineInstr *MI : Markers) {
  963     for (MachineInstr &I : BB) {
 1079     for (MachineInstr &I : BB) {
lib/CodeGen/StackMapLivenessAnalysis.cpp
   76   void addLiveOutSetToMI(MachineFunction &MF, MachineInstr &MI);
  152                                          MachineInstr &MI) {
lib/CodeGen/StackMaps.cpp
   48 StackMapOpers::StackMapOpers(const MachineInstr *MI)
   54 PatchPointOpers::PatchPointOpers(const MachineInstr *MI)
  101 MachineInstr::const_mop_iterator
  102 StackMaps::parseOperand(MachineInstr::const_mop_iterator MOI,
  103                         MachineInstr::const_mop_iterator MOE, LocationVec &Locs,
  297 void StackMaps::recordStackMapOpers(const MachineInstr &MI, uint64_t ID,
  298                                     MachineInstr::const_mop_iterator MOI,
  299                                     MachineInstr::const_mop_iterator MOE,
  363 void StackMaps::recordStackMap(const MachineInstr &MI) {
  372 void StackMaps::recordPatchPoint(const MachineInstr &MI) {
  393 void StackMaps::recordStatepoint(const MachineInstr &MI) {
lib/CodeGen/StackSlotColoring.cpp
  122     void RewriteInstruction(MachineInstr &MI, SmallVectorImpl<int> &SlotMapping,
  164       MachineInstr &MI = *MII;
  178       for (MachineInstr::mmo_iterator MMOI = MI.memoperands_begin(),
  375     for (MachineInstr &MI : MBB)
  395 void StackSlotColoring::RewriteInstruction(MachineInstr &MI,
  427   SmallVector<MachineInstr*, 4> toErase;
  475   for (SmallVectorImpl<MachineInstr *>::iterator I = toErase.begin(),
lib/CodeGen/TailDuplicator.cpp
  161   SmallVector<MachineInstr *, 16> Copies;
  167   SmallVector<MachineInstr *, 8> NewPHIs;
  192       MachineInstr *DefMI = MRI->getVRegDef(VReg);
  212         MachineInstr *UseMI = UseMO.getParent();
  235     MachineInstr *Copy = Copies[i];
  290   for (MachineInstr &UseMI : MRI->use_instructions(Reg)) {
  299 static unsigned getPHISrcRegOpIdx(MachineInstr *MI, MachineBasicBlock *SrcBB) {
  311   for (const auto &MI : BB) {
  339     MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB,
  371     MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB,
  381   MachineInstr &NewMI = TII->duplicate(*PredBB, PredBB->end(), *MI);
  465     for (MachineInstr &MI : *SuccBB) {
  593   for (MachineInstr &MI : TailBB) {
  638     for (auto &I : *SB) {
  701     SmallVectorImpl<MachineInstr *> &Copies) {
  800                                    SmallVectorImpl<MachineInstr *> &Copies) {
  845       MachineInstr *MI = &*I;
  904         MachineInstr *MI = &*I++;
  912         MachineInstr *MI = &*I++;
  967       MachineInstr *MI = &*I++;
  980       SmallVectorImpl<MachineInstr*> &Copies) {
lib/CodeGen/TargetInstrInfo.cpp
  156 MachineInstr *TargetInstrInfo::commuteInstructionImpl(MachineInstr &MI,
  156 MachineInstr *TargetInstrInfo::commuteInstructionImpl(MachineInstr &MI,
  207   MachineInstr *CommutedMI = nullptr;
  239 MachineInstr *TargetInstrInfo::commuteInstruction(MachineInstr &MI, bool NewMI,
  239 MachineInstr *TargetInstrInfo::commuteInstruction(MachineInstr &MI, bool NewMI,
  285 bool TargetInstrInfo::findCommutedOpIndices(const MachineInstr &MI,
  309 bool TargetInstrInfo::isUnpredicatedTerminator(const MachineInstr &MI) const {
  321     MachineInstr &MI, ArrayRef<MachineOperand> Pred) const {
  351     const MachineInstr &MI,
  354   for (MachineInstr::mmo_iterator o = MI.memoperands_begin(),
  365     const MachineInstr &MI,
  368   for (MachineInstr::mmo_iterator o = MI.memoperands_begin(),
  413   MachineInstr *MI = MBB.getParent()->CloneMachineInstr(&Orig);
  418 bool TargetInstrInfo::produceSameValue(const MachineInstr &MI0,
  419                                        const MachineInstr &MI1,
  421   return MI0.isIdenticalTo(MI1, MachineInstr::IgnoreVRegDefs);
  424 MachineInstr &TargetInstrInfo::duplicate(MachineBasicBlock &MBB,
  433 static const TargetRegisterClass *canFoldCopy(const MachineInstr &MI,
  468 static MachineInstr *foldPatchpoint(MachineFunction &MF, MachineInstr &MI,
  468 static MachineInstr *foldPatchpoint(MachineFunction &MF, MachineInstr &MI,
  500   MachineInstr *NewMI =
  531 MachineInstr *TargetInstrInfo::foldMemoryOperand(MachineInstr &MI,
  531 MachineInstr *TargetInstrInfo::foldMemoryOperand(MachineInstr &MI,
  569   MachineInstr *NewMI = nullptr;
  619 MachineInstr *TargetInstrInfo::foldMemoryOperand(MachineInstr &MI,
  619 MachineInstr *TargetInstrInfo::foldMemoryOperand(MachineInstr &MI,
  621                                                  MachineInstr &LoadMI,
  633   MachineInstr *NewMI = nullptr;
  658     for (MachineInstr::mmo_iterator I = LoadMI.memoperands_begin(),
  668     const MachineInstr &Inst, const MachineBasicBlock *MBB) const {
  675   MachineInstr *MI1 = nullptr;
  676   MachineInstr *MI2 = nullptr;
  686 bool TargetInstrInfo::hasReassociableSibling(const MachineInstr &Inst,
  690   MachineInstr *MI1 = MRI.getUniqueVRegDef(Inst.getOperand(1).getReg());
  691   MachineInstr *MI2 = MRI.getUniqueVRegDef(Inst.getOperand(2).getReg());
  713 bool TargetInstrInfo::isReassociationCandidate(const MachineInstr &Inst,
  742     MachineInstr &Root,
  772     MachineInstr &Root, MachineInstr &Prev,
  772     MachineInstr &Root, MachineInstr &Prev,
  774     SmallVectorImpl<MachineInstr *> &InsInstrs,
  775     SmallVectorImpl<MachineInstr *> &DelInstrs,
  856     MachineInstr &Root, MachineCombinerPattern Pattern,
  857     SmallVectorImpl<MachineInstr *> &InsInstrs,
  858     SmallVectorImpl<MachineInstr *> &DelInstrs,
  863   MachineInstr *Prev = nullptr;
  883     const MachineInstr &MI, AAResults *AA) const {
  962 int TargetInstrInfo::getSPAdjust(const MachineInstr &MI) const {
  986 bool TargetInstrInfo::isSchedulingBoundary(const MachineInstr &MI,
 1070                                          const MachineInstr &MI) const {
 1086                                             const MachineInstr &DefMI) const {
 1096 unsigned TargetInstrInfo::getPredicationCost(const MachineInstr &) const {
 1101                                           const MachineInstr &MI,
 1112                                        const MachineInstr &DefMI,
 1124 TargetInstrInfo::describeLoadedValue(const MachineInstr &MI) const {
 1141                                        const MachineInstr &DefMI,
 1143                                        const MachineInstr &UseMI,
 1153     const InstrItineraryData *ItinData, const MachineInstr &DefMI) const {
 1167     const MachineInstr &MI, unsigned DefIdx,
 1194     const MachineInstr &MI, unsigned DefIdx,
 1219     const MachineInstr &MI, unsigned DefIdx,
lib/CodeGen/TargetLoweringBase.cpp
 1019 TargetLoweringBase::emitPatchPoint(MachineInstr &InitialMI,
 1021   MachineInstr *MI = &InitialMI;
 1100 TargetLoweringBase::emitXRayCustomEvent(MachineInstr &MI,
 1115 TargetLoweringBase::emitXRayTypedEvent(MachineInstr &MI,
lib/CodeGen/TargetRegisterInfo.cpp
  498     const MachineInstr *MI = MRI->getVRegDef(SrcReg);
lib/CodeGen/TargetSchedule.cpp
   85 bool TargetSchedModel::mustBeginGroup(const MachineInstr *MI,
   96 bool TargetSchedModel::mustEndGroup(const MachineInstr *MI,
  107 unsigned TargetSchedModel::getNumMicroOps(const MachineInstr *MI,
  133 resolveSchedClass(const MachineInstr *MI) const {
  157 static unsigned findDefIdx(const MachineInstr *MI, unsigned DefOperIdx) {
  173 static unsigned findUseIdx(const MachineInstr *MI, unsigned UseOperIdx) {
  185   const MachineInstr *DefMI, unsigned DefOperIdx,
  186   const MachineInstr *UseMI, unsigned UseOperIdx) const {
  273 TargetSchedModel::computeInstrLatency(const MachineInstr *MI,
  290 computeOutputLatency(const MachineInstr *DefMI, unsigned DefOperIdx,
  291                      const MachineInstr *DepMI) const {
  325 TargetSchedModel::computeReciprocalThroughput(const MachineInstr *MI) const {
lib/CodeGen/TwoAddressInstructionPass.cpp
  107   DenseMap<MachineInstr*, unsigned> DistanceMap;
  110   SmallPtrSet<MachineInstr*, 8> Processed;
  114   SmallPtrSet<MachineInstr*, 8> SunkInstrs;
  126   bool sink3AddrInstruction(MachineInstr *MI, unsigned Reg,
  134                              MachineInstr *MI, unsigned Dist);
  136   bool commuteInstruction(MachineInstr *MI, unsigned DstIdx,
  145   bool isDefTooClose(unsigned Reg, unsigned Dist, MachineInstr *MI);
  159   bool tryInstructionCommute(MachineInstr *MI,
  166   void processCopy(MachineInstr *MI);
  171   bool collectTiedOperands(MachineInstr *MI, TiedOperandMap&);
  172   void processTiedPairs(MachineInstr *MI, TiedPairList&, unsigned &Dist);
  210 static bool isPlainlyKilled(MachineInstr *MI, unsigned Reg, LiveIntervals *LIS);
  216 sink3AddrInstruction(MachineInstr *MI, unsigned SavedReg,
  250   MachineInstr *KillMI = nullptr;
  291   for (MachineInstr &OtherMI : make_range(std::next(OldPos), KillPos)) {
  343 static MachineInstr *getSingleDef(unsigned Reg, MachineBasicBlock *BB,
  345   MachineInstr *Ret = nullptr;
  346   for (MachineInstr &DefMI : MRI->def_instructions(Reg)) {
  368     MachineInstr *Def = getSingleDef(TmpReg, MBB, MRI);
  389     MachineInstr *MI = MO.getParent();
  392     DenseMap<MachineInstr*, unsigned>::iterator DI = DistanceMap.find(MI);
  407 static bool isCopyToReg(MachineInstr &MI, const TargetInstrInfo *TII,
  428 static bool isPlainlyKilled(MachineInstr *MI, unsigned Reg,
  469 static bool isKilled(MachineInstr &MI, unsigned Reg,
  474   MachineInstr *DefMI = &MI;
  502 static bool isTwoAddrUse(MachineInstr &MI, unsigned Reg, unsigned &DstReg) {
  519 MachineInstr *findOnlyInterestingUse(unsigned Reg, MachineBasicBlock *MBB,
  527   MachineInstr &UseMI = *MRI->use_instr_nodbg_begin(Reg);
  584                       MachineInstr *MI, unsigned Dist) {
  680 bool TwoAddressInstructionPass::commuteInstruction(MachineInstr *MI,
  687   MachineInstr *NewMI = TII->commuteInstruction(*MI, false, RegBIdx, RegCIdx);
  735   MachineInstr *NewMI = TII->convertToThreeAddress(MFI, *mi, LV);
  779   while (MachineInstr *UseMI = findOnlyInterestingUse(Reg, MBB, MRI, TII,IsCopy,
  784     DenseMap<MachineInstr*, unsigned>::iterator DI = DistanceMap.find(UseMI);
  829 void TwoAddressInstructionPass::processCopy(MachineInstr *MI) {
  864   MachineInstr *MI = &*mi;
  865   DenseMap<MachineInstr*, unsigned>::iterator DI = DistanceMap.find(MI);
  870   MachineInstr *KillMI = nullptr;
  943   for (MachineInstr &OtherMI : make_range(End, KillPos)) {
 1025                                               MachineInstr *MI) {
 1026   for (MachineInstr &DefMI : MRI->def_instructions(Reg)) {
 1031     DenseMap<MachineInstr*, unsigned>::iterator DDI = DistanceMap.find(&DefMI);
 1054   MachineInstr *MI = &*mi;
 1055   DenseMap<MachineInstr*, unsigned>::iterator DI = DistanceMap.find(MI);
 1060   MachineInstr *KillMI = nullptr;
 1116   for (MachineInstr &OtherMI :
 1200 bool TwoAddressInstructionPass::tryInstructionCommute(MachineInstr *MI,
 1276   MachineInstr &MI = *mi;
 1365         SmallVector<MachineInstr *, 2> NewMIs;
 1462 collectTiedOperands(MachineInstr *MI, TiedOperandMap &TiedOperands) {
 1502 TwoAddressInstructionPass::processTiedPairs(MachineInstr *MI,
 1800   MachineInstr &MI = *MBBI;
 1837     MachineInstr *CopyMI = BuildMI(*MI.getParent(), MI, MI.getDebugLoc(),
lib/CodeGen/UnreachableBlockElim.cpp
  152     for (auto &I : DeadBlocks[i]->instrs())
  153       if (I.isCall(MachineInstr::IgnoreBundle))
lib/CodeGen/VirtRegMap.cpp
  188   void handleIdentityCopy(MachineInstr &MI) const;
  189   void expandCopyBundle(MachineInstr &MI) const;
  190   bool subRegLiveThrough(const MachineInstr &MI, Register SuperPhysReg) const;
  357   const MachineInstr &MI = *MO.getParent();
  374 void VirtRegRewriter::handleIdentityCopy(MachineInstr &MI) const {
  402 void VirtRegRewriter::expandCopyBundle(MachineInstr &MI) const {
  407     SmallVector<MachineInstr *, 2> MIs({&MI});
  418     MachineInstr *FirstMI = MIs.back();
  423       for (const MachineInstr *Src : Srcs)
  448     MachineInstr *BundleStart = FirstMI;
  449     for (MachineInstr *BundledMI : llvm::reverse(MIs)) {
  470 bool VirtRegRewriter::subRegLiveThrough(const MachineInstr &MI,
  504       MachineInstr *MI = &*MII;
  507       for (MachineInstr::mop_iterator MOI = MI->operands_begin(),
lib/CodeGen/XRayInstrumentation.cpp
   92   SmallVector<MachineInstr *, 4> Terminators;
   94     for (auto &T : MBB.terminators()) {
  127     for (auto &T : MBB.terminators()) {
  195   auto &FirstMI = *FirstMBB.begin();
lib/Target/AArch64/AArch64A53Fix835769.cpp
   39 static bool isFirstInstructionInSequence(MachineInstr *MI) {
   55 static bool isSecondInstructionInSequence(MachineInstr *MI) {
  155 static MachineInstr *getLastNonPseudo(MachineBasicBlock &MBB,
  162     for (MachineInstr &I : make_range(FMBB->rbegin(), FMBB->rend()))
  171 static void insertNopBeforeInstruction(MachineBasicBlock &MBB, MachineInstr* MI,
  176     MachineInstr *I = getLastNonPseudo(MBB, TII);
  199   std::vector<MachineInstr*> Sequences;
  201   MachineInstr *PrevInstr = nullptr;
  207   for (auto &MI : MBB) {
  208     MachineInstr *CurrInstr = &MI;
lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
   68 static bool isMul(MachineInstr *MI) {
   81 static bool isMla(MachineInstr *MI) {
  142   void scanInstruction(MachineInstr *MI, unsigned Idx,
  188   MachineInstr *StartInst, *LastInst, *KillInst;
  193   std::set<MachineInstr*> Insts;
  203   Chain(MachineInstr *MI, unsigned Idx, Color C)
  212   void add(MachineInstr *MI, unsigned Idx, Color C) {
  224   bool contains(MachineInstr &MI) { return Insts.count(&MI) > 0; }
  233   void setKill(MachineInstr *MI, unsigned Idx, bool Immutable) {
  243   MachineInstr *getStart() const { return StartInst; }
  245   MachineInstr *getLast() const { return LastInst; }
  247   MachineInstr *getKill() const { return KillInst; }
  343   for (auto &MI : MBB)
  546   for (MachineInstr &I : *G) {
  601     MachineInstr *MI, unsigned Idx, std::map<unsigned, Chain *> &ActiveChains,
  685   MachineInstr *MI = MO.getParent();
lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp
   73   bool isProfitableToTransform(const MachineInstr &MI) const;
   78   void transformInstruction(MachineInstr &MI);
  127 static MachineOperand *getSrcFromCopy(MachineInstr *MI,
  184 static bool isTransformable(const MachineInstr &MI) {
  193     const MachineInstr &MI) const {
  274 static MachineInstr *insertCopy(const TargetInstrInfo *TII, MachineInstr &MI,
  274 static MachineInstr *insertCopy(const TargetInstrInfo *TII, MachineInstr &MI,
  287 void AArch64AdvSIMDScalar::transformInstruction(MachineInstr &MI) {
  381     MachineInstr &MI = *I++;
lib/Target/AArch64/AArch64AsmPrinter.cpp
   91   void LowerJumpTableDestSmall(MCStreamer &OutStreamer, const MachineInstr &MI);
   94                      const MachineInstr &MI);
   96                        const MachineInstr &MI);
   98   void LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI);
   99   void LowerPATCHABLE_FUNCTION_EXIT(const MachineInstr &MI);
  100   void LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI);
  104   void LowerHWASAN_CHECK_MEMACCESS(const MachineInstr &MI);
  107   void EmitSled(const MachineInstr &MI, SledKind Kind);
  112                                    const MachineInstr *MI);
  114   void EmitInstruction(const MachineInstr *MI) override;
  151   void printOperand(const MachineInstr *MI, unsigned OpNum, raw_ostream &O);
  157   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
  159   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum,
  162   void PrintDebugValueComment(const MachineInstr *MI, raw_ostream &OS);
  175   void EmitFMov0(const MachineInstr &MI);
  177   using MInstToMCSymbol = std::map<const MachineInstr *, MCSymbol *>;
  184 void AArch64AsmPrinter::LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI)
  189 void AArch64AsmPrinter::LowerPATCHABLE_FUNCTION_EXIT(const MachineInstr &MI)
  194 void AArch64AsmPrinter::LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI)
  199 void AArch64AsmPrinter::EmitSled(const MachineInstr &MI, SledKind Kind)
  239 void AArch64AsmPrinter::LowerHWASAN_CHECK_MEMACCESS(const MachineInstr &MI) {
  469     for (const MachineInstr *MI : D.getArgs()) {
  498 void AArch64AsmPrinter::printOperand(const MachineInstr *MI, unsigned OpNum,
  560 bool AArch64AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
  653 bool AArch64AsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
  666 void AArch64AsmPrinter::PrintDebugValueComment(const MachineInstr *MI,
  756                                                 const llvm::MachineInstr &MI) {
  794                                       const MachineInstr &MI) {
  822                                         const MachineInstr &MI) {
  861 void AArch64AsmPrinter::EmitFMov0(const MachineInstr &MI) {
  906 void AArch64AsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/AArch64/AArch64CallLowering.cpp
  640     MachineInstr *RegDef = getDefIgnoringCopies(OutInfo.Regs[0], MRI);
lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
   97   MachineInstr *replaceTLSBaseAddrCall(MachineInstr &I,
   97   MachineInstr *replaceTLSBaseAddrCall(MachineInstr &I,
  104     MachineInstr *Copy = BuildMI(*I.getParent(), I, I.getDebugLoc(),
  116   MachineInstr *setRegister(MachineInstr &I, unsigned *TLSBaseAddrReg) {
  116   MachineInstr *setRegister(MachineInstr &I, unsigned *TLSBaseAddrReg) {
  125     MachineInstr *Copy =
lib/Target/AArch64/AArch64CollectLOH.cpp
  160 static bool canAddBePartOfLOH(const MachineInstr &MI) {
  175 static bool canDefBePartOfLOH(const MachineInstr &MI) {
  198 static bool isCandidateStore(const MachineInstr &MI, const MachineOperand &MO) {
  222 static bool isCandidateLoad(const MachineInstr &MI) {
  243 static bool supportLoadFromLiteral(const MachineInstr &MI) {
  284   const MachineInstr *MI0;      ///< First instruction involved in the LOH.
  285   const MachineInstr *MI1;      ///< Second instruction involved in the LOH
  287   const MachineInstr *LastADRP; ///< Last ADRP in same register.
  291 static void handleUse(const MachineInstr &MI, const MachineOperand &MO,
  336 static bool handleMiddleInst(const MachineInstr &MI, LOHInfo &DefInfo,
  384 static void handleADRP(const MachineInstr &MI, AArch64FunctionInfo &AFI,
  463 static void handleNormalInst(const MachineInstr &MI, LOHInfo *LOHInfos) {
  525     for (const MachineInstr &MI : make_range(MBB.rbegin(), MBB.rend())) {
lib/Target/AArch64/AArch64CompressJumpTables.cpp
   42   bool compressJumpTable(MachineInstr &MI, int Offset);
   68   for (const MachineInstr &MI : MBB)
   84 bool AArch64CompressJumpTables::compressJumpTable(MachineInstr &MI,
  151     for (MachineInstr &MI : MBB) {
lib/Target/AArch64/AArch64CondBrTuning.cpp
   63   MachineInstr *getOperandDef(const MachineOperand &MO);
   64   MachineInstr *convertToFlagSetting(MachineInstr &MI, bool IsFlagSetting);
   64   MachineInstr *convertToFlagSetting(MachineInstr &MI, bool IsFlagSetting);
   65   MachineInstr *convertToCondBr(MachineInstr &MI);
   65   MachineInstr *convertToCondBr(MachineInstr &MI);
   66   bool tryToTuneBranch(MachineInstr &MI, MachineInstr &DefMI);
   66   bool tryToTuneBranch(MachineInstr &MI, MachineInstr &DefMI);
   80 MachineInstr *AArch64CondBrTuning::getOperandDef(const MachineOperand &MO) {
   86 MachineInstr *AArch64CondBrTuning::convertToFlagSetting(MachineInstr &MI,
   86 MachineInstr *AArch64CondBrTuning::convertToFlagSetting(MachineInstr &MI,
  113 MachineInstr *AArch64CondBrTuning::convertToCondBr(MachineInstr &MI) {
  113 MachineInstr *AArch64CondBrTuning::convertToCondBr(MachineInstr &MI) {
  142 bool AArch64CondBrTuning::tryToTuneBranch(MachineInstr &MI,
  143                                           MachineInstr &DefMI) {
  150   MachineInstr *NewCmp = nullptr, *NewBr = nullptr;
  309       MachineInstr &MI = *I;
  321         MachineInstr *DefMI = getOperandDef(MI.getOperand(0));
lib/Target/AArch64/AArch64ConditionOptimizer.cpp
  110   MachineInstr *findSuitableCompare(MachineBasicBlock *MBB);
  111   CmpInfo adjustCmp(MachineInstr *CmpMI, AArch64CC::CondCode Cmp);
  112   void modifyCmp(MachineInstr *CmpMI, const CmpInfo &Info);
  113   bool adjustTo(MachineInstr *CmpMI, AArch64CC::CondCode Cmp, MachineInstr *To,
  113   bool adjustTo(MachineInstr *CmpMI, AArch64CC::CondCode Cmp, MachineInstr *To,
  145 MachineInstr *AArch64ConditionOptimizer::findSuitableCompare(
  242     MachineInstr *CmpMI, AArch64CC::CondCode Cmp) {
  269 void AArch64ConditionOptimizer::modifyCmp(MachineInstr *CmpMI,
  288   MachineInstr &BrMI = *MBB->getFirstTerminator();
  317 bool AArch64ConditionOptimizer::adjustTo(MachineInstr *CmpMI,
  318   AArch64CC::CondCode Cmp, MachineInstr *To, int ToImm)
  365     MachineInstr *HeadCmpMI = findSuitableCompare(HBB);
  370     MachineInstr *TrueCmpMI = findSuitableCompare(TBB);
lib/Target/AArch64/AArch64ConditionalCompares.cpp
  156   MachineInstr *CmpMI;
  182   MachineInstr *findConvertibleCompare(MachineBasicBlock *MBB);
  186   bool canSpeculateInstrs(MachineBasicBlock *MBB, const MachineInstr *CmpMI);
  216   for (auto &I : *Tail) {
  242   for (auto &I : *Tail) {
  298 MachineInstr *SSACCmpConv::findConvertibleCompare(MachineBasicBlock *MBB) {
  383                                      const MachineInstr *CmpMI) {
  395   for (auto &I : make_range(MBB->begin(), MBB->getFirstTerminator())) {
lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
   64 static bool usesFrameIndex(const MachineInstr &MI) {
  119   for (MachineInstr &MI : MBB) {
lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
   92 static void transferImpOps(MachineInstr &OldMI, MachineInstrBuilder &UseMI,
  111   MachineInstr &MI = *MBBI;
  174   MachineInstr &MI = *MBBI;
  253   MachineInstr &MI = *MBBI;
  346   MachineInstr &MI = *MBBI;
  406   MachineInstr &MI = *MBBI;
lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
  207   DenseMap<unsigned, SmallVector<MachineInstr *, 4>> TagMap;
  236 static Optional<LoadInfo> getLoadInfo(const MachineInstr &MI) {
  659                                  const MachineInstr &MI, const LoadInfo &LI) {
  680     for (MachineInstr &MI : *MBB) {
  694       for (auto *MI : P.second) {
  717       MachineInstr &MI = *I;
lib/Target/AArch64/AArch64FastISel.cpp
 2047     auto *MI = MRI.getUniqueVRegDef(Reg);
 4476 static bool isZExtLoad(const MachineInstr *LI) {
 4496 static bool isSExtLoad(const MachineInstr *LI) {
 4535   MachineInstr *MI = MRI.getUniqueVRegDef(Reg);
 4542   const auto *LoadMI = MI;
lib/Target/AArch64/AArch64FrameLowering.cpp
  189     for (MachineInstr &MI : MBB) {
  367         .setMIFlags(MachineInstr::FrameSetup);
  717               InProlog ? MachineInstr::FrameSetup : MachineInstr::FrameDestroy);
  717               InProlog ? MachineInstr::FrameSetup : MachineInstr::FrameDestroy);
  725 static void fixupCalleeSaveRestoreStackOffset(MachineInstr &MI,
  868           .setMIFlag(MachineInstr::FrameSetup);
  871           .setMIFlag(MachineInstr::FrameSetup);
  873           .setMIFlag(MachineInstr::FrameSetup);
  880         .setMIFlags(MachineInstr::FrameSetup);
  917                       {-NumBytes, MVT::i8}, TII, MachineInstr::FrameSetup,
  927             .setMIFlags(MachineInstr::FrameSetup);
  934           .setMIFlag(MachineInstr::FrameSetup);
  954                     {-NumBytes, MVT::i8}, TII, MachineInstr::FrameSetup, false,
  968   while (MBBI != End && MBBI->getFlag(MachineInstr::FrameSetup)) {
  982           .setMIFlag(MachineInstr::FrameSetup);
  992             .addReg(AArch64::X1).setMIFlag(MachineInstr::FrameSetup);
 1012                     {FPOffset, MVT::i8}, TII, MachineInstr::FrameSetup, false,
 1033             .setMIFlag(MachineInstr::FrameSetup);
 1035             .setMIFlag(MachineInstr::FrameSetup);
 1041               .setMIFlag(MachineInstr::FrameSetup);
 1043             .setMIFlag(MachineInstr::FrameSetup);
 1048           .setMIFlags(MachineInstr::FrameSetup);
 1062           .setMIFlags(MachineInstr::FrameSetup);
 1066             .setMIFlag(MachineInstr::FrameSetup);
 1074           .setMIFlags(MachineInstr::FrameSetup);
 1078             .setMIFlag(MachineInstr::FrameSetup);
 1087           .setMIFlags(MachineInstr::FrameSetup);
 1091             .setMIFlag(MachineInstr::FrameSetup);
 1100         .setMIFlags(MachineInstr::FrameSetup);
 1105           .setMIFlag(MachineInstr::FrameSetup);
 1111                   MachineInstr::FrameSetup);
 1129                       {-NumBytes, MVT::i8}, TII, MachineInstr::FrameSetup,
 1157             .setMIFlag(MachineInstr::FrameSetup);
 1175           .setMIFlag(MachineInstr::FrameSetup);
 1183         .setMIFlag(MachineInstr::FrameSetup);
 1265           .setMIFlags(MachineInstr::FrameSetup);
 1272           .setMIFlags(MachineInstr::FrameSetup);
 1307         .setMIFlag(MachineInstr::FrameDestroy);
 1311 static bool isFuncletReturnInstr(const MachineInstr &MI) {
 1447     if (!LastPopI->getFlag(MachineInstr::FrameDestroy)) {
 1458         .setMIFlag(MachineInstr::FrameDestroy);
 1468                     MachineInstr::FrameDestroy, false, NeedsWinCFI, &HasWinCFI);
 1472           .setMIFlag(MachineInstr::FrameDestroy);
 1483                       TII, MachineInstr::FrameDestroy);
 1507                     MachineInstr::FrameDestroy, false, NeedsWinCFI, &HasWinCFI);
 1513             .setMIFlag(MachineInstr::FrameDestroy);
 1530                     TII, MachineInstr::FrameDestroy, false, NeedsWinCFI);
 1533                     {NumBytes, MVT::i8}, TII, MachineInstr::FrameDestroy, false,
 1556                     MachineInstr::FrameDestroy, false, NeedsWinCFI, &HasWinCFI);
 1560         .setMIFlag(MachineInstr::FrameDestroy);
 1967         .setMIFlag(MachineInstr::FrameSetup);
 1971           .setMIFlag(MachineInstr::FrameSetup);
 1987           .setMIFlag(MachineInstr::FrameSetup);
 2061         .setMIFlag(MachineInstr::FrameSetup);
 2066       InsertSEH(MIB, TII, MachineInstr::FrameSetup);
 2146         .setMIFlag(MachineInstr::FrameDestroy);
 2151       InsertSEH(MIB, TII, MachineInstr::FrameDestroy);
 2167         .setMIFlag(MachineInstr::FrameDestroy);
 2364   while (MBBI != MBB.end() && MBBI->getFlag(MachineInstr::FrameSetup))
lib/Target/AArch64/AArch64ISelLowering.cpp
 1322 AArch64TargetLowering::EmitF128CSEL(MachineInstr &MI,
 1382        MachineInstr &MI, MachineBasicBlock *BB) const {
 1390      MachineInstr &MI, MachineBasicBlock *BB) const {
 1396     MachineInstr &MI, MachineBasicBlock *BB) const {
lib/Target/AArch64/AArch64ISelLowering.h
  326   MachineBasicBlock *EmitF128CSEL(MachineInstr &MI,
  329   MachineBasicBlock *EmitLoweredCatchRet(MachineInstr &MI,
  332   MachineBasicBlock *EmitLoweredCatchPad(MachineInstr &MI,
  336   EmitInstrWithCustomInserter(MachineInstr &MI,
lib/Target/AArch64/AArch64InstrInfo.cpp
   75 unsigned AArch64InstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
  126 static void parseCondBranch(MachineInstr *LastInst, MachineBasicBlock *&Target,
  187 AArch64InstrInfo::getBranchDestBlock(const MachineInstr &MI) const {
  222   MachineInstr *LastInst = &*I;
  240   MachineInstr *SecondLastInst = &*I;
  419     const MachineInstr *DefMI = MRI.getVRegDef(VReg);
  437   const MachineInstr *DefMI = MRI.getVRegDef(VReg);
  675 static bool canBeExpandedToORR(const MachineInstr &MI, unsigned BitSize) {
  684 bool AArch64InstrInfo::isAsCheapAsAMove(const MachineInstr &MI) const {
  763 bool AArch64InstrInfo::isFalkorShiftExtFast(const MachineInstr &MI) {
  885 bool AArch64InstrInfo::isSEHInstruction(const MachineInstr &MI) {
  911 bool AArch64InstrInfo::isCoalescableExtInstr(const MachineInstr &MI,
  932     const MachineInstr &MIa, const MachineInstr &MIb) const {
  932     const MachineInstr &MIa, const MachineInstr &MIb) const {
  963 bool AArch64InstrInfo::isSchedulingBoundary(const MachineInstr &MI,
  986 bool AArch64InstrInfo::analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
 1047 static bool UpdateOperandRegClass(MachineInstr &Instr) {
 1088 static unsigned convertToNonFlagSettingOpc(const MachineInstr &MI) {
 1160     const MachineInstr &Instr = *To;
 1182     MachineInstr &CmpInstr, unsigned SrcReg, unsigned SrcReg2, int CmpMask,
 1226 static unsigned sForm(MachineInstr &Instr) {
 1304 static AArch64CC::CondCode findCondCodeUsedByInstr(const MachineInstr &Instr) {
 1395 static bool canInstrSubstituteCmpInstr(MachineInstr *MI, MachineInstr *CmpInstr,
 1395 static bool canInstrSubstituteCmpInstr(MachineInstr *MI, MachineInstr *CmpInstr,
 1421     const MachineInstr &Instr = *I;
 1441     MachineInstr &CmpInstr, unsigned SrcReg,
 1445   MachineInstr *MI = MRI->getUniqueVRegDef(SrcReg);
 1468 bool AArch64InstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
 1485     while (FirstEpilogSEH->getFlag(MachineInstr::FrameDestroy) &&
 1576 bool AArch64InstrInfo::isGPRZero(const MachineInstr &MI) {
 1600 bool AArch64InstrInfo::isGPRCopy(const MachineInstr &MI) {
 1630 bool AArch64InstrInfo::isFPRCopy(const MachineInstr &MI) {
 1651 unsigned AArch64InstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
 1674 unsigned AArch64InstrInfo::isStoreToStackSlot(const MachineInstr &MI,
 1697 bool AArch64InstrInfo::isLdStPairSuppressed(const MachineInstr &MI) {
 1704 void AArch64InstrInfo::suppressLdStPair(MachineInstr &MI) {
 1711 bool AArch64InstrInfo::isStridedAccess(const MachineInstr &MI) {
 1805 bool AArch64InstrInfo::isPairableLdStInst(const MachineInstr &MI) {
 1927 bool AArch64InstrInfo::isCandidateToMergeOrPair(const MachineInstr &MI) const {
 1960   if (NeedsWinCFI && (MI.getFlag(MachineInstr::FrameSetup) ||
 1961                       MI.getFlag(MachineInstr::FrameDestroy)))
 1980 bool AArch64InstrInfo::getMemOperandWithOffset(const MachineInstr &LdSt,
 1989     const MachineInstr &LdSt, const MachineOperand *&BaseOp, int64_t &Offset,
 2036 AArch64InstrInfo::getMemOpBaseRegImmOfsOffsetOperand(MachineInstr &LdSt) const {
 2329   const MachineInstr &FirstLdSt = *BaseOp1.getParent();
 2330   const MachineInstr &SecondLdSt = *BaseOp2.getParent();
 3177 MachineInstr *AArch64InstrInfo::foldMemoryOperandImpl(
 3178     MachineFunction &MF, MachineInstr &MI, ArrayRef<unsigned> Ops,
 3341         MachineInstr &LoadMI = *--InsertPt;
 3367 int llvm::isAArch64FrameOffsetLegal(const MachineInstr &MI,
 3458 bool llvm::rewriteAArch64FrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
 3468                     MachineInstr::NoFlags, (Opcode == AArch64::ADDSXri));
 3559 static bool isCombineInstrCandidateFP(const MachineInstr &Inst) {
 3598   MachineInstr *MI = nullptr;
 3640     const MachineInstr &Inst) const {
 3664 static bool getMaddPatterns(MachineInstr &Root,
 3734 static bool getFMAPatterns(MachineInstr &Root,
 3950     MachineInstr &Root,
 3982 static MachineInstr *
 3984                  const TargetInstrInfo *TII, MachineInstr &Root,
 3985                  SmallVectorImpl<MachineInstr *> &InsInstrs, unsigned IdxMulOpd,
 3992   MachineInstr *MUL = MRI.getUniqueVRegDef(Root.getOperand(IdxMulOpd).getReg());
 4062 static MachineInstr *genMaddR(MachineFunction &MF, MachineRegisterInfo &MRI,
 4063                               const TargetInstrInfo *TII, MachineInstr &Root,
 4064                               SmallVectorImpl<MachineInstr *> &InsInstrs,
 4069   MachineInstr *MUL = MRI.getUniqueVRegDef(Root.getOperand(IdxMulOpd).getReg());
 4099     MachineInstr &Root, MachineCombinerPattern Pattern,
 4100     SmallVectorImpl<MachineInstr *> &InsInstrs,
 4101     SmallVectorImpl<MachineInstr *> &DelInstrs,
 4108   MachineInstr *MUL;
 4745 bool AArch64InstrInfo::optimizeCondBranch(MachineInstr &MI) const {
 4790   MachineInstr *DefMI = MRI->getVRegDef(VReg);
 4835     MachineInstr *NewMI = BuildMI(RefToMBB, MI, DL, get(Opc))
 5374   MachineInstr &MI = *MIT;
 5503   for (MachineInstr &MI : MBB) {
 5537     MachineInstr *Call = &*--MBB.instr_end();
 5545     MachineInstr *TC = BuildMI(MF, DebugLoc(), get(TailOpcode))
 5574     MachineInstr *STRXpre = BuildMI(MF, DebugLoc(), get(AArch64::STRXpre))
 5590         .setMIFlags(MachineInstr::FrameSetup);
 5598         .setMIFlags(MachineInstr::FrameSetup);
 5601     MachineInstr *LDRXpost = BuildMI(MF, DebugLoc(), get(AArch64::LDRXpost))
 5615   MachineInstr *ret = BuildMI(MF, DebugLoc(), get(AArch64::RET))
 5655   MachineInstr *Save;
 5656   MachineInstr *Restore;
 5706     const MachineInstr &MI, const MachineOperand *&Source,
lib/Target/AArch64/AArch64InstrInfo.h
   50   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
   52   bool isAsCheapAsAMove(const MachineInstr &MI) const override;
   54   bool isCoalescableExtInstr(const MachineInstr &MI, unsigned &SrcReg,
   58   areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
   59                                   const MachineInstr &MIb) const override;
   61   unsigned isLoadFromStackSlot(const MachineInstr &MI,
   63   unsigned isStoreToStackSlot(const MachineInstr &MI,
   67   static bool isGPRZero(const MachineInstr &MI);
   70   static bool isGPRCopy(const MachineInstr &MI);
   73   static bool isFPRCopy(const MachineInstr &MI);
   77   static bool isLdStPairSuppressed(const MachineInstr &MI);
   80   static bool isStridedAccess(const MachineInstr &MI);
   84   static bool isUnscaledLdSt(MachineInstr &MI) {
   97   static bool isPairableLdStInst(const MachineInstr &MI);
  104   bool isCandidateToMergeOrPair(const MachineInstr &MI) const;
  107   static void suppressLdStPair(MachineInstr &MI);
  109   bool getMemOperandWithOffset(const MachineInstr &MI,
  114   bool getMemOperandWithOffsetWidth(const MachineInstr &MI,
  120   MachineOperand &getMemOpBaseRegImmOfsOffsetOperand(MachineInstr &LdSt) const;
  161   MachineInstr *
  162   foldMemoryOperandImpl(MachineFunction &MF, MachineInstr &MI,
  173   MachineBasicBlock *getBranchDestBlock(const MachineInstr &MI) const override;
  195   bool isSchedulingBoundary(const MachineInstr &MI,
  202   bool analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  207   bool optimizeCompareInstr(MachineInstr &CmpInstr, unsigned SrcReg,
  210   bool optimizeCondBranch(MachineInstr &MI) const override;
  220       MachineInstr &Root,
  224   bool isAssociativeAndCommutative(const MachineInstr &Inst) const override;
  228       MachineInstr &Root, MachineCombinerPattern Pattern,
  229       SmallVectorImpl<MachineInstr *> &InsInstrs,
  230       SmallVectorImpl<MachineInstr *> &DelInstrs,
  235   bool expandPostRAPseudo(MachineInstr &MI) const override;
  263   static bool isFalkorShiftExtFast(const MachineInstr &MI);
  266   static bool isSEHInstruction(const MachineInstr &MI);
  275   bool isCopyInstrImpl(const MachineInstr &MI, const MachineOperand *&Source,
  288   bool substituteCmpToZero(MachineInstr &CmpInstr, unsigned SrcReg,
  303                      MachineInstr::MIFlag = MachineInstr::NoFlags,
  310 bool rewriteAArch64FrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
  335 int isAArch64FrameOffsetLegal(const MachineInstr &MI, StackOffset &Offset,
lib/Target/AArch64/AArch64InstructionSelector.cpp
   54   bool select(MachineInstr &I) override;
   70   bool selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const;
   74   void preISelLower(MachineInstr &I) const;
   77   bool earlySelect(MachineInstr &I) const;
   79   bool earlySelectSHL(MachineInstr &I, MachineRegisterInfo &MRI) const;
   82   void contractCrossBankCopyIntoStore(MachineInstr &I,
   85   bool selectVaStartAAPCS(MachineInstr &I, MachineFunction &MF,
   87   bool selectVaStartDarwin(MachineInstr &I, MachineFunction &MF,
   90   bool selectCompareBranch(MachineInstr &I, MachineFunction &MF,
   93   bool selectVectorASHR(MachineInstr &I, MachineRegisterInfo &MRI) const;
   94   bool selectVectorSHL(MachineInstr &I, MachineRegisterInfo &MRI) const;
   98   MachineInstr *emitScalarToVector(unsigned EltSize,
  109   MachineInstr *emitLaneInsert(Optional<Register> DstReg, Register SrcReg,
  113   bool selectInsertElt(MachineInstr &I, MachineRegisterInfo &MRI) const;
  114   bool selectBuildVector(MachineInstr &I, MachineRegisterInfo &MRI) const;
  115   bool selectMergeValues(MachineInstr &I, MachineRegisterInfo &MRI) const;
  116   bool selectUnmergeValues(MachineInstr &I, MachineRegisterInfo &MRI) const;
  118   bool selectShuffleVector(MachineInstr &I, MachineRegisterInfo &MRI) const;
  119   bool selectExtractElt(MachineInstr &I, MachineRegisterInfo &MRI) const;
  120   bool selectConcatVectors(MachineInstr &I, MachineRegisterInfo &MRI) const;
  121   bool selectSplitVectorUnmerge(MachineInstr &I,
  123   bool selectIntrinsicWithSideEffects(MachineInstr &I,
  125   bool selectIntrinsic(MachineInstr &I, MachineRegisterInfo &MRI) const;
  126   bool selectVectorICmp(MachineInstr &I, MachineRegisterInfo &MRI) const;
  127   bool selectIntrinsicTrunc(MachineInstr &I, MachineRegisterInfo &MRI) const;
  128   bool selectIntrinsicRound(MachineInstr &I, MachineRegisterInfo &MRI) const;
  129   bool selectJumpTable(MachineInstr &I, MachineRegisterInfo &MRI) const;
  130   bool selectBrJT(MachineInstr &I, MachineRegisterInfo &MRI) const;
  131   bool selectTLSGlobalValue(MachineInstr &I, MachineRegisterInfo &MRI) const;
  134   MachineInstr *emitLoadFromConstantPool(Constant *CPVal,
  138   MachineInstr *emitVectorConcat(Optional<Register> Dst, Register Op1,
  141   MachineInstr *emitIntegerCompare(MachineOperand &LHS, MachineOperand &RHS,
  144   MachineInstr *emitADD(Register DefReg, MachineOperand &LHS, MachineOperand &RHS,
  146   MachineInstr *emitCMN(MachineOperand &LHS, MachineOperand &RHS,
  148   MachineInstr *emitTST(const Register &LHS, const Register &RHS,
  150   MachineInstr *emitExtractVectorElt(Optional<Register> DstReg,
  158   MachineInstr *emitFMovForFConstant(MachineInstr &MI,
  158   MachineInstr *emitFMovForFConstant(MachineInstr &MI,
  162   MachineInstr *emitCSetForICMP(Register DefReg, unsigned Pred,
  203   bool isWorthFoldingIntoExtendedReg(MachineInstr &MI,
  238   void renderTruncImm(MachineInstrBuilder &MIB, const MachineInstr &MI) const;
  239   void renderLogicalImm32(MachineInstrBuilder &MIB, const MachineInstr &I) const;
  240   void renderLogicalImm64(MachineInstrBuilder &MIB, const MachineInstr &I) const;
  243   void materializeLargeCMVal(MachineInstr &I, const Value *V,
  247   bool tryOptVectorShuffle(MachineInstr &I) const;
  248   bool tryOptVectorDup(MachineInstr &MI) const;
  249   bool tryOptSelect(MachineInstr &MI) const;
  250   MachineInstr *tryFoldIntegerCompare(MachineOperand &LHS, MachineOperand &RHS,
  255   bool isLoadStoreOfNumBytes(const MachineInstr &MI, unsigned NumBytes) const;
  260   bool isDef32(const MachineInstr &MI) const;
  402 static bool unsupportedBinOp(const MachineInstr &I,
  555 static bool isValidCopy(const MachineInstr &I, const RegisterBank &DstBank,
  592 static bool selectSubregisterCopy(MachineInstr &I, MachineRegisterInfo &MRI,
  617 getRegClassesForCopy(MachineInstr &I, const TargetInstrInfo &TII,
  642 static bool selectCopy(MachineInstr &I, const TargetInstrInfo &TII,
  831 static unsigned selectSelectOpc(MachineInstr &I, MachineRegisterInfo &MRI,
  845 static unsigned selectFCMPOpc(MachineInstr &I, MachineRegisterInfo &MRI) {
  953     MachineInstr &I, MachineFunction &MF, MachineRegisterInfo &MRI) const {
  957   MachineInstr *CCMI = MRI.getVRegDef(CondReg);
 1010     MachineInstr &I, MachineRegisterInfo &MRI) const {
 1040     MachineInstr &I, MachineRegisterInfo &MRI) const {
 1084     MachineInstr &I, MachineFunction &MF, MachineRegisterInfo &MRI) const {
 1089     MachineInstr &I, MachineFunction &MF, MachineRegisterInfo &MRI) const {
 1116     MachineInstr &I, const Value *V, unsigned OpFlags) const {
 1154 void AArch64InstructionSelector::preISelLower(MachineInstr &I) const {
 1178     auto *AmtMI = MRI.getVRegDef(ShiftReg);
 1199     MachineInstr &I, MachineRegisterInfo &MRI) const {
 1234     MachineInstr &I, MachineRegisterInfo &MRI) const {
 1250   MachineInstr *Def = getDefIgnoringCopies(I.getOperand(0).getReg(), MRI);
 1275 bool AArch64InstructionSelector::earlySelect(MachineInstr &I) const {
 1316 bool AArch64InstructionSelector::select(MachineInstr &I) {
 1610       MachineInstr *Extract = emitExtractVectorElt(
 1765     auto *PtrMI = MRI.getVRegDef(PtrReg);
 2001         MachineInstr *Extract = emitExtractVectorElt(
 2076     MachineInstr *ExtI;
 2085       auto *LoadMI = getOpcodeDef(TargetOpcode::G_LOAD, SrcReg, MRI);
 2172     MachineInstr &TstMI =
 2178     MachineInstr &CSelMI = *BuildMI(MBB, I, I.getDebugLoc(), TII.get(CSelOpc))
 2243     MachineInstr &CSetMI =
 2252       MachineInstr &CSet2MI =
 2258       MachineInstr &OrMI =
 2332 bool AArch64InstructionSelector::selectBrJT(MachineInstr &I,
 2353     MachineInstr &I, MachineRegisterInfo &MRI) const {
 2370     MachineInstr &I, MachineRegisterInfo &MRI) const {
 2401     MachineInstr &I, MachineRegisterInfo &MRI) const {
 2456     MachineInstr &I, MachineRegisterInfo &MRI) const {
 2511     MachineInstr &I, MachineRegisterInfo &MRI) const {
 2682 MachineInstr *AArch64InstructionSelector::emitScalarToVector(
 2710     MachineInstr &I, MachineRegisterInfo &MRI) const {
 2729     MachineInstr *InsMI =
 2733     MachineInstr *Ins2MI = emitLaneInsert(DstReg, InsMI->getOperand(0).getReg(),
 2751   MachineInstr &SubRegMI = *BuildMI(*I.getParent(), I, I.getDebugLoc(),
 2759   MachineInstr &SubRegMI2 = *BuildMI(*I.getParent(), I, I.getDebugLoc(),
 2765   MachineInstr &BFM =
 2804 MachineInstr *AArch64InstructionSelector::emitExtractVectorElt(
 2848     MachineInstr *ScalarToVector = emitScalarToVector(
 2855   MachineInstr *LaneCopyMI =
 2865     MachineInstr &I, MachineRegisterInfo &MRI) const {
 2895   MachineInstr *Extract = emitExtractVectorElt(DstReg, DstRB, NarrowTy, SrcReg,
 2905     MachineInstr &I, MachineRegisterInfo &MRI) const {
 2925     MachineInstr *Extract =
 2935     MachineInstr &I, MachineRegisterInfo &MRI) const {
 2992       MachineInstr &ImpDefMI =
 2998       MachineInstr &InsMI =
 3026     MachineInstr &CopyInst =
 3050     MachineInstr &I, MachineRegisterInfo &MRI) const {
 3057   MachineInstr *ConcatMI = emitVectorConcat(Dst, Op1, Op2, MIRBuilder);
 3076 MachineInstr *AArch64InstructionSelector::emitLoadFromConstantPool(
 3084   MachineInstr *LoadMI = nullptr;
 3144 MachineInstr *
 3169 MachineInstr *
 3195 MachineInstr *
 3223 MachineInstr *AArch64InstructionSelector::emitIntegerCompare(
 3230   MachineInstr *FoldCmp =
 3271 MachineInstr *AArch64InstructionSelector::emitVectorConcat(
 3305   MachineInstr *WidenedOp1 =
 3307   MachineInstr *WidenedOp2 =
 3331 MachineInstr *AArch64InstructionSelector::emitFMovForFConstant(
 3332     MachineInstr &I, MachineRegisterInfo &MRI) const {
 3364 MachineInstr *
 3378 bool AArch64InstructionSelector::tryOptSelect(MachineInstr &I) const {
 3401   MachineInstr *CondDef = MRI.getVRegDef(I.getOperand(1).getReg());
 3475 MachineInstr *AArch64InstructionSelector::tryFoldIntegerCompare(
 3516   MachineInstr *LHSDef = getDefIgnoringCopies(LHS.getReg(), MRI);
 3517   MachineInstr *RHSDef = getDefIgnoringCopies(RHS.getReg(), MRI);
 3567 bool AArch64InstructionSelector::tryOptVectorDup(MachineInstr &I) const {
 3588   auto *InsMI =
 3593   auto *UndefMI =
 3625     MachineInstr *Widen = emitScalarToVector(
 3639 bool AArch64InstructionSelector::tryOptVectorShuffle(MachineInstr &I) const {
 3648     MachineInstr &I, MachineRegisterInfo &MRI) const {
 3690   MachineInstr *IndexLoad = emitLoadFromConstantPool(CPVal, MIRBuilder);
 3699     MachineInstr *Concat = emitVectorConcat(None, Src1Reg, Src2Reg, MIRBuilder);
 3742 MachineInstr *AArch64InstructionSelector::emitLaneInsert(
 3746   MachineInstr *InsElt = nullptr;
 3774     MachineInstr &I, MachineRegisterInfo &MRI) const {
 3805     MachineInstr *ScalarToVec = emitScalarToVector(
 3815   MachineInstr *InsMI =
 3850     MachineInstr &I, MachineRegisterInfo &MRI) const {
 3863   MachineInstr *ScalarToVec =
 3874   MachineInstr *PrevMI = nullptr;
 3927 static unsigned findIntrinsicID(MachineInstr &I) {
 3937     MachineInstr &I, MachineRegisterInfo &MRI) const {
 3963     MachineInstr &I, MachineRegisterInfo &MRI) const {
 4149     MachineInstr &MI, const MachineRegisterInfo &MRI) const {
 4200   MachineInstr *Gep = getOpcodeDef(TargetOpcode::G_GEP, Root.getReg(), MRI);
 4206   MachineInstr *OffsetInst = getDefIgnoringCopies(Gep->getOperand(2).getReg(), MRI);
 4286   MachineInstr *Gep = MRI.getVRegDef(Root.getReg());
 4350   MachineInstr *RootDef = MRI.getVRegDef(Root.getReg());
 4357   MachineInstr *RHS = MRI.getVRegDef(OffImm.getReg());
 4391   MachineInstr *RootDef = MRI.getVRegDef(Root.getReg());
 4405     MachineInstr *LHSDef = MRI.getVRegDef(LHS.getReg());
 4406     MachineInstr *RHSDef = MRI.getVRegDef(RHS.getReg());
 4438 static AArch64_AM::ShiftExtendType getShiftTypeForInst(MachineInstr &MI) {
 4467   MachineInstr *ShiftInst = MRI.getVRegDef(Root.getReg());
 4497 getExtendTypeForInst(MachineInstr &MI, MachineRegisterInfo &MRI) {
 4580   MachineInstr *RootDef = getDefIgnoringCopies(Root.getReg(), MRI);
 4599     MachineInstr *ExtDef = getDefIgnoringCopies(LHS.getReg(), MRI);
 4618       MachineInstr *ExtInst = MRI.getVRegDef(ExtReg);
 4636                                                 const MachineInstr &MI) const {
 4645     MachineInstrBuilder &MIB, const MachineInstr &I) const {
 4653     MachineInstrBuilder &MIB, const MachineInstr &I) const {
 4661     const MachineInstr &MI, unsigned NumBytes) const {
 4669 bool AArch64InstructionSelector::isDef32(const MachineInstr &MI) const {
lib/Target/AArch64/AArch64LegalizerInfo.cpp
  619 bool AArch64LegalizerInfo::legalizeCustom(MachineInstr &MI,
  642     MachineInstr &MI, MachineRegisterInfo &MRI,
  660     MachineInstr &MI, MachineRegisterInfo &MRI, MachineIRBuilder &MIRBuilder,
  668   auto *CstMI = MRI.getVRegDef(AmtReg);
  684     MachineInstr &MI, MachineRegisterInfo &MRI, MachineIRBuilder &MIRBuilder,
  722 bool AArch64LegalizerInfo::legalizeVaArg(MachineInstr &MI,
lib/Target/AArch64/AArch64LegalizerInfo.h
   30   bool legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI,
   34   bool legalizeIntrinsic(MachineInstr &MI, MachineRegisterInfo &MRI,
   38   bool legalizeVaArg(MachineInstr &MI, MachineRegisterInfo &MRI,
   40   bool legalizeLoadStore(MachineInstr &MI, MachineRegisterInfo &MRI,
   43   bool legalizeShlAshrLshr(MachineInstr &MI, MachineRegisterInfo &MRI,
lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
  153   bool isMatchingUpdateInsn(MachineInstr &MemMI, MachineInstr &MI,
  153   bool isMatchingUpdateInsn(MachineInstr &MemMI, MachineInstr &MI,
  206 static bool isTagStore(const MachineInstr &MI) {
  219 static int getMemScale(const MachineInstr &MI) {
  381 static unsigned isMatchingStore(MachineInstr &LoadInst,
  382                                 MachineInstr &StoreInst) {
  563 static bool isPairedLdSt(const MachineInstr &MI) {
  584 static void getPrePostIndexedMemOpInfo(const MachineInstr &MI, int &Scale,
  602 static const MachineOperand &getLdStRegOp(const MachineInstr &MI,
  609 static const MachineOperand &getLdStBaseOp(const MachineInstr &MI) {
  614 static const MachineOperand &getLdStOffsetOp(const MachineInstr &MI) {
  619 static bool isLdOffsetInRangeOfSt(MachineInstr &LoadInst,
  620                                   MachineInstr &StoreInst,
  635 static bool isPromotableZeroStoreInst(MachineInstr &MI) {
  642 static bool isPromotableLoadFromStore(MachineInstr &MI) {
  660 static bool isMergeableLdStUpdate(MachineInstr &MI) {
  746   MachineInstr *RtMI;
  834   MachineInstr *RtMI, *Rt2MI;
  876       for (MachineInstr &MI : make_range(std::next(I), Paired))
  958   MachineInstr *BitExtMI;
  963       for (MachineInstr &MI : make_range(StoreI->getIterator(),
 1037   for (MachineInstr &MI : make_range(StoreI->getIterator(),
 1080 static bool mayAlias(MachineInstr &MIa, MachineInstr &MIb,
 1080 static bool mayAlias(MachineInstr &MIa, MachineInstr &MIb,
 1093 static bool mayAlias(MachineInstr &MIa,
 1094                      SmallVectorImpl<MachineInstr *> &MemInsns,
 1096   for (MachineInstr *MIb : MemInsns)
 1108   MachineInstr &LoadMI = *I;
 1124     MachineInstr &MI = *MBBI;
 1163 static bool areCandidatesToMergeOrPair(MachineInstr &FirstMI, MachineInstr &MI,
 1163 static bool areCandidatesToMergeOrPair(MachineInstr &FirstMI, MachineInstr &MI,
 1218   MachineInstr &FirstMI = *I;
 1235   SmallVector<MachineInstr *, 4> MemInsns;
 1238     MachineInstr &MI = *MBBI;
 1441 bool AArch64LoadStoreOpt::isMatchingUpdateInsn(MachineInstr &MemMI,
 1442                                                MachineInstr &MI,
 1491   MachineInstr &MemMI = *I;
 1524     MachineInstr &MI = *MBBI;
 1551   MachineInstr &MemMI = *I;
 1579     MachineInstr &MI = *MBBI;
 1604   MachineInstr &MI = *MBBI;
 1631   MachineInstr &MI = *MBBI;
 1655   MachineInstr &MI = *MBBI;
 1691   MachineInstr &MI = *MBBI;
lib/Target/AArch64/AArch64MCInstLower.cpp
  296 void AArch64MCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
lib/Target/AArch64/AArch64MCInstLower.h
   38   void Lower(const MachineInstr *MI, MCInst &OutMI) const;
lib/Target/AArch64/AArch64MachineFunctionInfo.h
  260   using SetOfInstructions = SmallPtrSet<const MachineInstr *, 16>;
  269     SmallVector<const MachineInstr *, 3> Args;
  272     using LOHArgs = ArrayRef<const MachineInstr *>;
lib/Target/AArch64/AArch64MacroFusion.cpp
   23 static bool isArithmeticBccPair(const MachineInstr *FirstMI,
   24                                 const MachineInstr &SecondMI) {
   64 static bool isArithmeticCbzPair(const MachineInstr *FirstMI,
   65                                 const MachineInstr &SecondMI) {
  114 static bool isAESPair(const MachineInstr *FirstMI,
  115                       const MachineInstr &SecondMI) {
  132 static bool isCryptoEORPair(const MachineInstr *FirstMI,
  133                             const MachineInstr &SecondMI) {
  155 static bool isLiteralsPair(const MachineInstr *FirstMI,
  156                            const MachineInstr &SecondMI) {
  188 static bool isAddressLdStPair(const MachineInstr *FirstMI,
  189                               const MachineInstr &SecondMI) {
  230 static bool isCCSelectPair(const MachineInstr *FirstMI,
  231                            const MachineInstr &SecondMI) {
  273 static bool isArithmeticLogicPair(const MachineInstr *FirstMI,
  274                                   const MachineInstr &SecondMI) {
  377                                    const MachineInstr *FirstMI,
  378                                    const MachineInstr &SecondMI) {
lib/Target/AArch64/AArch64PBQPRegAlloc.cpp
  320                                 const MachineInstr &MI) {
  336     for (const auto &MI: MBB) {
lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp
   55   virtual bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
   60                                               MachineInstr &MI,
lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
   93   bool knownRegValInBlock(MachineInstr &CondBr, MachineBasicBlock *MBB,
  125     MachineInstr &CondBr, MachineBasicBlock *MBB,
  168   for (MachineInstr &PredI : make_range(std::next(RIt), PredMBB->rend())) {
  376     MachineInstr *MI = &*I;
  462   for (MachineInstr &MMI : make_range(FirstUse, PredMBB->end()))
  464   for (MachineInstr &MMI : make_range(MBB->begin(), LastChange))
lib/Target/AArch64/AArch64RegisterBankInfo.cpp
  419     const MachineInstr &MI) const {
  461     const MachineInstr &MI, const MachineRegisterInfo &MRI,
  479 bool AArch64RegisterBankInfo::onlyUsesFP(const MachineInstr &MI,
  494     const MachineInstr &MI, const MachineRegisterInfo &MRI,
  509 AArch64RegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
  681       for (const MachineInstr &UseMI :
  699       MachineInstr *DefMI = MRI.getVRegDef(VReg);
  749       MachineInstr *DefMI = MRI.getVRegDef(VReg);
  823     MachineInstr *DefMI = MRI.getVRegDef(VReg);
lib/Target/AArch64/AArch64RegisterBankInfo.h
  115   getSameKindOfOperandsMapping(const MachineInstr &MI) const;
  118   bool hasFPConstraints(const MachineInstr &MI, const MachineRegisterInfo &MRI,
  122   bool onlyUsesFP(const MachineInstr &MI, const MachineRegisterInfo &MRI,
  126   bool onlyDefinesFP(const MachineInstr &MI, const MachineRegisterInfo &MRI,
  139   getInstrAlternativeMappings(const MachineInstr &MI) const override;
  142   getInstrMapping(const MachineInstr &MI) const override;
lib/Target/AArch64/AArch64RegisterInfo.cpp
  334 bool AArch64RegisterInfo::needsFrameBaseReg(MachineInstr *MI,
  394 bool AArch64RegisterInfo::isFrameOffsetLegal(const MachineInstr *MI,
  427 void AArch64RegisterInfo::resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
  451   MachineInstr &MI = *II;
lib/Target/AArch64/AArch64RegisterInfo.h
   98   bool needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const override;
   99   bool isFrameOffsetLegal(const MachineInstr *MI, unsigned BaseReg,
  104   void resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
  173   bool reuseDUP(MachineInstr &MI, unsigned DupOpcode, unsigned SrcReg,
  180   bool optimizeVectElement(MachineInstr &MI);
  187   bool processSeqRegInst(MachineInstr *DefiningMI, unsigned* StReg,
  193   bool optimizeLdStInterleave(MachineInstr &MI);
  197   unsigned determineSrcReg(MachineInstr &MI) const;
  316 bool AArch64SIMDInstrOpt::reuseDUP(MachineInstr &MI, unsigned DupOpcode,
  322     MachineInstr *CurrentMI = &*MII;
  350 bool AArch64SIMDInstrOpt::optimizeVectElement(MachineInstr &MI) {
  502 bool AArch64SIMDInstrOpt::optimizeLdStInterleave(MachineInstr &MI) {
  506   MachineInstr *DefiningMI;
  631 bool AArch64SIMDInstrOpt::processSeqRegInst(MachineInstr *DefiningMI,
  666 unsigned AArch64SIMDInstrOpt::determineSrcReg(MachineInstr &MI) const {
  709       SmallVector<MachineInstr *, 8> RemoveMIs;
  713           MachineInstr &MI = *MII;
  728       for (MachineInstr *MI : RemoveMIs)
lib/Target/AArch64/AArch64SpeculationHardening.cpp
  280   SmallVector<std::pair<MachineInstr *, unsigned>, 4> ReturnInstructions;
  281   SmallVector<std::pair<MachineInstr *, unsigned>, 4> CallInstructions;
  292     MachineInstr &MI = *I;
  414     for (MachineInstr &MI : MBB) {
  469     MachineInstr &MI = *MBBI;
  550   MachineInstr &MI = *MBBI;
  620     MachineInstr &MI = *MBBI;
lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
   63   SmallVector<MachineInstr*, 16> ReTags;
  150     MachineInstr *UseI = &*(UI++);
  167   for (auto *I : ReTags) {
  191     for (auto &I : BB) {
lib/Target/AArch64/AArch64StorePairSuppress.cpp
   51   bool isNarrowFPStore(const MachineInstr &MI);
  109 bool AArch64StorePairSuppress::isNarrowFPStore(const MachineInstr &MI) {
  147     for (auto &MI : MBB) {
lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
  577     for (const MachineInstr &MI : MBB) {
  697     for (const MachineInstr &MI : MBB) {
 1276 bool AMDGPUAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
lib/Target/AMDGPU/AMDGPUAsmPrinter.h
  121                                    const MachineInstr *MI);
  124   void EmitInstruction(const MachineInstr *MI) override;
  143   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
  112 bool AMDGPUInstructionSelector::selectCOPY(MachineInstr &I) const {
  180 bool AMDGPUInstructionSelector::selectPHI(MachineInstr &I) const {
  219   MachineInstr *MI = MO.getParent();
  262 bool AMDGPUInstructionSelector::selectG_AND_OR_XOR(MachineInstr &I) const {
  299 bool AMDGPUInstructionSelector::selectG_ADD_SUB(MachineInstr &I) const {
  312       MachineInstr *Add =
  331     MachineInstr *Add
  371     MachineInstr *Addc = BuildMI(*BB, &I, DL, TII.get(AMDGPU::V_ADDC_U32_e64), DstHi)
  396 bool AMDGPUInstructionSelector::selectG_UADDO_USUBO(MachineInstr &I) const {
  437 bool AMDGPUInstructionSelector::selectG_EXTRACT(MachineInstr &I) const {
  445   MachineInstr *Copy = BuildMI(*BB, &I, DL, TII.get(TargetOpcode::COPY),
  460 bool AMDGPUInstructionSelector::selectG_MERGE_VALUES(MachineInstr &MI) const {
  499 bool AMDGPUInstructionSelector::selectG_UNMERGE_VALUES(MachineInstr &MI) const {
  541 bool AMDGPUInstructionSelector::selectG_GEP(MachineInstr &I) const {
  545 bool AMDGPUInstructionSelector::selectG_IMPLICIT_DEF(MachineInstr &I) const {
  560 bool AMDGPUInstructionSelector::selectG_INSERT(MachineInstr &I) const {
  613 bool AMDGPUInstructionSelector::selectG_INTRINSIC(MachineInstr &I) const {
  716 bool AMDGPUInstructionSelector::selectG_ICMP(MachineInstr &I) const {
  730     MachineInstr *ICmp = BuildMI(*BB, &I, DL, TII.get(Opcode))
  746   MachineInstr *ICmp = BuildMI(*BB, &I, DL, TII.get(Opcode),
  757 static MachineInstr *
  758 buildEXP(const TargetInstrInfo &TII, MachineInstr *Insert, unsigned Tgt,
  801 static std::tuple<Register, unsigned, MachineInstr *>
  803   MachineInstr *Def = getDefIgnoringCopies(Reg, MRI);
  925   MachineInstr *OffsetDef;
  978 bool AMDGPUInstructionSelector::selectStoreIntrinsic(MachineInstr &MI,
 1033     MachineInstr &I) const {
 1043     MachineInstr *Exp = buildEXP(TII, &I, Tgt, I.getOperand(3).getReg(),
 1063     MachineInstr *Exp = buildEXP(TII, &I, Tgt, Reg0, Reg1, Undef, Undef, VM,
 1092 bool AMDGPUInstructionSelector::selectG_SELECT(MachineInstr &I) const {
 1104     MachineInstr *CopySCC = BuildMI(*BB, &I, DL, TII.get(AMDGPU::COPY), AMDGPU::SCC)
 1112     MachineInstr *Select = BuildMI(*BB, &I, DL, TII.get(SelectOpcode), DstReg)
 1126   MachineInstr *Select =
 1139 bool AMDGPUInstructionSelector::selectG_STORE(MachineInstr &I) const {
 1165 bool AMDGPUInstructionSelector::selectG_TRUNC(MachineInstr &I) const {
 1217 bool AMDGPUInstructionSelector::selectG_SZA_EXT(MachineInstr &I) const {
 1263     MachineInstr *ExtI =
 1283       MachineInstr *ExtI =
 1292     MachineInstr *ExtI =
 1368 bool AMDGPUInstructionSelector::selectG_SITOFP_UITOFP(MachineInstr &I) const {
 1398 bool AMDGPUInstructionSelector::selectG_CONSTANT(MachineInstr &I) const {
 1437   MachineInstr *ResInst;
 1470 static bool isConstant(const MachineInstr &MI) {
 1474 void AMDGPUInstructionSelector::getAddrModeInfo(const MachineInstr &Load,
 1477   const MachineInstr *PtrMI = MRI.getUniqueVRegDef(Load.getOperand(1).getReg());
 1488     const MachineInstr *OpDef = MRI.getUniqueVRegDef(GEPOp.getReg());
 1508 bool AMDGPUInstructionSelector::isInstrUniform(const MachineInstr &MI) const {
 1538 void AMDGPUInstructionSelector::initM0(MachineInstr &I) const {
 1551 bool AMDGPUInstructionSelector::selectG_LOAD_ATOMICRMW(MachineInstr &I) const {
 1556 bool AMDGPUInstructionSelector::selectG_BRCOND(MachineInstr &I) const {
 1600 bool AMDGPUInstructionSelector::selectG_FRAME_INDEX(MachineInstr &I) const {
 1612 bool AMDGPUInstructionSelector::selectG_PTR_MASK(MachineInstr &I) const {
 1673 bool AMDGPUInstructionSelector::select(MachineInstr &I) {
 1783   MachineInstr *MI = MRI->getVRegDef(Src);
 1920   MachineInstr *MI = Root.getParent();
 1952   MachineInstr *MI = Root.getParent();
 1963   const MachineInstr *OpDef = MRI->getVRegDef(Root.getReg());
 2002   MachineInstr *MI = Root.getParent();
 2043   if (const MachineInstr *RootDef = MRI->getVRegDef(Root.getReg())) {
 2047       const MachineInstr *LHSDef = MRI->getVRegDef(LHS.getReg());
 2048       const MachineInstr *RHSDef = MRI->getVRegDef(RHS.getReg());
 2110   MachineInstr *MI = Root.getParent();
 2137   const MachineInstr *RootDef = MRI->getVRegDef(Root.getReg());
 2149     const MachineInstr *LHSDef = MRI->getVRegDef(LHS.getReg());
 2150     const MachineInstr *RHSDef = MRI->getVRegDef(RHS.getReg());
 2178                                                  const MachineInstr &MI) const {
lib/Target/AMDGPU/AMDGPUInstructionSelector.h
   54   bool select(MachineInstr &I) override;
   62     const MachineInstr &GEP;
   66     GEPInfo(const MachineInstr &GEP) : GEP(GEP), Imm(0) { }
   69   bool isInstrUniform(const MachineInstr &MI) const;
   73   bool selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const;
   78   bool selectCOPY(MachineInstr &I) const;
   79   bool selectPHI(MachineInstr &I) const;
   80   bool selectG_TRUNC(MachineInstr &I) const;
   81   bool selectG_SZA_EXT(MachineInstr &I) const;
   82   bool selectG_SITOFP_UITOFP(MachineInstr &I) const;
   83   bool selectG_CONSTANT(MachineInstr &I) const;
   84   bool selectG_AND_OR_XOR(MachineInstr &I) const;
   85   bool selectG_ADD_SUB(MachineInstr &I) const;
   86   bool selectG_UADDO_USUBO(MachineInstr &I) const;
   87   bool selectG_EXTRACT(MachineInstr &I) const;
   88   bool selectG_MERGE_VALUES(MachineInstr &I) const;
   89   bool selectG_UNMERGE_VALUES(MachineInstr &I) const;
   90   bool selectG_GEP(MachineInstr &I) const;
   91   bool selectG_IMPLICIT_DEF(MachineInstr &I) const;
   92   bool selectG_INSERT(MachineInstr &I) const;
   93   bool selectG_INTRINSIC(MachineInstr &I) const;
   98   bool selectStoreIntrinsic(MachineInstr &MI, bool IsFormat) const;
  100   bool selectG_INTRINSIC_W_SIDE_EFFECTS(MachineInstr &I) const;
  102   bool selectG_ICMP(MachineInstr &I) const;
  104   void getAddrModeInfo(const MachineInstr &Load, const MachineRegisterInfo &MRI,
  106   bool selectSMRD(MachineInstr &I, ArrayRef<GEPInfo> AddrInfo) const;
  108   void initM0(MachineInstr &I) const;
  109   bool selectG_LOAD_ATOMICRMW(MachineInstr &I) const;
  110   bool selectG_STORE(MachineInstr &I) const;
  111   bool selectG_SELECT(MachineInstr &I) const;
  112   bool selectG_BRCOND(MachineInstr &I) const;
  113   bool selectG_FRAME_INDEX(MachineInstr &I) const;
  114   bool selectG_PTR_MASK(MachineInstr &I) const;
  168                         const MachineInstr &MI) const;
lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
 1090 bool AMDGPULegalizerInfo::legalizeCustom(MachineInstr &MI,
 1211   MachineInstr &MI, MachineRegisterInfo &MRI,
 1317   MachineInstr &MI, MachineRegisterInfo &MRI,
 1344   MachineInstr &MI, MachineRegisterInfo &MRI,
 1389   MachineInstr &MI, MachineRegisterInfo &MRI,
 1435   MachineInstr &MI, MachineRegisterInfo &MRI,
 1467   MachineInstr &MI, MachineRegisterInfo &MRI,
 1491   MachineInstr &MI, MachineRegisterInfo &MRI,
 1520   MachineInstr &MI, MachineRegisterInfo &MRI,
 1550   MachineInstr &MI, MachineRegisterInfo &MRI,
 1635   MachineInstr &MI, MachineRegisterInfo &MRI,
 1705   MachineInstr &MI, MachineRegisterInfo &MRI,
 1717   MachineInstr &MI, MachineRegisterInfo &MRI,
 1738   MachineInstr &MI, MachineRegisterInfo &MRI, MachineIRBuilder &B) const {
 1765 static MachineInstr *verifyCFIntrinsic(MachineInstr &MI,
 1765 static MachineInstr *verifyCFIntrinsic(MachineInstr &MI,
 1771   MachineInstr &UseMI = *MRI.use_instr_nodbg_begin(CondDef);
 1835   MachineInstr &MI,
 1859 bool AMDGPULegalizerInfo::legalizeFDIV(MachineInstr &MI,
 1876 bool AMDGPULegalizerInfo::legalizeFastUnsafeFDIV(MachineInstr &MI,
 1891     MF.getTarget().Options.UnsafeFPMath || MI.getFlag(MachineInstr::FmArcp);
 1936 bool AMDGPULegalizerInfo::legalizeFDIV16(MachineInstr &MI,
 1969 bool AMDGPULegalizerInfo::legalizeFDIVFastIntrin(MachineInstr &MI,
 2005 bool AMDGPULegalizerInfo::legalizeImplicitArgPtr(MachineInstr &MI,
 2039 bool AMDGPULegalizerInfo::legalizeIsAddrSpace(MachineInstr &MI,
 2074 bool AMDGPULegalizerInfo::legalizeRawBufferStore(MachineInstr &MI,
 2107 bool AMDGPULegalizerInfo::legalizeIntrinsic(MachineInstr &MI,
 2113     if (MachineInstr *BrCond = verifyCFIntrinsic(MI, MRI)) {
 2135     if (MachineInstr *BrCond = verifyCFIntrinsic(MI, MRI)) {
lib/Target/AMDGPU/AMDGPULegalizerInfo.h
   35   bool legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI,
   43   bool legalizeAddrSpaceCast(MachineInstr &MI, MachineRegisterInfo &MRI,
   45   bool legalizeFrint(MachineInstr &MI, MachineRegisterInfo &MRI,
   47   bool legalizeFceil(MachineInstr &MI, MachineRegisterInfo &MRI,
   49   bool legalizeIntrinsicTrunc(MachineInstr &MI, MachineRegisterInfo &MRI,
   51   bool legalizeITOFP(MachineInstr &MI, MachineRegisterInfo &MRI,
   53   bool legalizeMinNumMaxNum(MachineInstr &MI, MachineRegisterInfo &MRI,
   55   bool legalizeExtractVectorElt(MachineInstr &MI, MachineRegisterInfo &MRI,
   57   bool legalizeInsertVectorElt(MachineInstr &MI, MachineRegisterInfo &MRI,
   59   bool legalizeSinCos(MachineInstr &MI, MachineRegisterInfo &MRI,
   66   bool legalizeGlobalValue(MachineInstr &MI, MachineRegisterInfo &MRI,
   68   bool legalizeLoad(MachineInstr &MI, MachineRegisterInfo &MRI,
   72   bool legalizeFMad(MachineInstr &MI, MachineRegisterInfo &MRI,
   75   bool legalizeAtomicCmpXChg(MachineInstr &MI, MachineRegisterInfo &MRI,
   84     MachineInstr &MI, MachineRegisterInfo &MRI, MachineIRBuilder &B,
   87   bool legalizeFDIV(MachineInstr &MI, MachineRegisterInfo &MRI,
   89   bool legalizeFDIV16(MachineInstr &MI, MachineRegisterInfo &MRI,
   91   bool legalizeFastUnsafeFDIV(MachineInstr &MI, MachineRegisterInfo &MRI,
   93   bool legalizeFDIVFastIntrin(MachineInstr &MI, MachineRegisterInfo &MRI,
   96   bool legalizeImplicitArgPtr(MachineInstr &MI, MachineRegisterInfo &MRI,
   98   bool legalizeIsAddrSpace(MachineInstr &MI, MachineRegisterInfo &MRI,
  103   bool legalizeRawBufferStore(MachineInstr &MI, MachineRegisterInfo &MRI,
  105   bool legalizeIntrinsic(MachineInstr &MI, MachineRegisterInfo &MRI,
lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
   56   void lower(const MachineInstr *MI, MCInst &OutMI) const;
   66   void lower(const MachineInstr *MI, MCInst &OutMI) const;
  176 void AMDGPUMCInstLower::lower(const MachineInstr *MI, MCInst &OutMI) const {
  257 void AMDGPUAsmPrinter::EmitInstruction(const MachineInstr *MI) {
  375 void R600MCInstLower::lower(const MachineInstr *MI, MCInst &OutMI) const {
  384 void R600AsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
  302 static unsigned getPHINumInputs(MachineInstr &PHI) {
  307 static MachineBasicBlock *getPHIPred(MachineInstr &PHI, unsigned Index) {
  312 static void setPhiPred(MachineInstr &PHI, unsigned Index,
  317 static unsigned getPHISourceReg(MachineInstr &PHI, unsigned Index) {
  322 static unsigned getPHIDestReg(MachineInstr &PHI) {
  345                        MachineInstr *DefInstr, const MachineRegisterInfo *MRI,
  349                              MachineInstr *DefInstr,
  693                                        MachineInstr *DefInstr,
  715           MachineInstr *UseInstr = UI.getParent();
  733                                              MachineInstr *DefInstr,
  756   for (auto &II : *MBB) {
  772     for (auto &II : *(*SI)) {
  774         MachineInstr &PHI = II;
  798   for (auto &II : *MBB) {
  843     for (auto &II : *Succ) {
  845         MachineInstr &PHI = II;
 1023     for (auto &II : *MBB) {
 1098   void getPHIRegionIndices(RegionMRT *Region, MachineInstr &PHI,
 1100   void getPHIRegionIndices(LinearizedRegion *Region, MachineInstr &PHI,
 1102   void getPHINonRegionIndices(LinearizedRegion *Region, MachineInstr &PHI,
 1106       unsigned LDestReg, MachineInstr &PHI,
 1109   unsigned storePHILinearizationInfo(MachineInstr &PHI,
 1114   bool shrinkPHI(MachineInstr &PHI, SmallVector<unsigned, 2> &PHIIndices,
 1117   bool shrinkPHI(MachineInstr &PHI, unsigned CombinedSourceReg,
 1121   void replacePHI(MachineInstr &PHI, unsigned CombinedSourceReg,
 1124   void replaceEntryPHI(MachineInstr &PHI, unsigned CombinedSourceReg,
 1127   void replaceLiveOutRegs(MachineInstr &PHI,
 1132                             MachineInstr &PHI, LinearizedRegion *LRegion);
 1137                              MachineInstr &PHI);
 1188   MachineInstr *getDefInstr(unsigned Reg);
 1200   void splitLoopPHI(MachineInstr &PHI, MachineBasicBlock *Entry,
 1283     for (auto &TI : MBB->terminators()) {
 1315   for (auto &TI : Exit->terminators()) {
 1354     RegionMRT *Region, MachineInstr &PHI,
 1366     LinearizedRegion *Region, MachineInstr &PHI,
 1378     LinearizedRegion *Region, MachineInstr &PHI,
 1390     unsigned LDestReg, MachineInstr &PHI,
 1405     MachineInstr &PHI, SmallVector<unsigned, 2> *RegionIndices) {
 1417   SmallPtrSet<MachineInstr *, 2> PHIs;
 1421     MachineInstr &Instr = *I;
 1446 bool AMDGPUMachineCFGStructurizer::shrinkPHI(MachineInstr &PHI,
 1452 bool AMDGPUMachineCFGStructurizer::shrinkPHI(MachineInstr &PHI,
 1512     MachineInstr &PHI, unsigned CombinedSourceReg, MachineBasicBlock *LastMerge,
 1555     MachineInstr &PHI, unsigned CombinedSourceReg, MachineBasicBlock *IfMBB,
 1603     MachineInstr &PHI, SmallVector<unsigned, 2> &PHIRegionIndices,
 1635                                                   MachineInstr &PHI,
 1648                                                    MachineInstr &PHI) {
 1657                         SmallVector<MachineInstr *, 2> &PHIs) {
 1658   for (auto &BBI : *MBB) {
 1668   SmallVector<MachineInstr *, 2> PHIs;
 1682   SmallVector<MachineInstr *, 2> PHIs;
 1948 MachineInstr *AMDGPUMachineCFGStructurizer::getDefInstr(unsigned Reg) {
 1978   MachineInstr *DefInstr = getDefInstr(SourceReg);
 2173           MachineInstr *PHIDefInstr = getDefInstr(SourceReg);
 2430 void AMDGPUMachineCFGStructurizer::splitLoopPHI(MachineInstr &PHI,
 2471   SmallVector<MachineInstr *, 2> PHIs;
 2502   for (auto &II : *Succ) {
 2503     MachineInstr &Instr = II;
 2557   MachineInstr &Branch = *(Exit->instr_rbegin());
 2862       MachineInstr &Instr = *I;
lib/Target/AMDGPU/AMDGPUMacroFusion.cpp
   30                                    const MachineInstr *FirstMI,
   31                                    const MachineInstr &SecondMI) {
lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
   45   SmallVector<MachineInstr *, 4> NewInsts;
   52     for (MachineInstr *MI : NewInsts)
   57   void applyBank(MachineInstr &MI) {
   76   void erasingInstr(MachineInstr &MI) override {}
   78   void createdInstr(MachineInstr &MI) override {
   83   void changingInstr(MachineInstr &MI) override {}
   84   void changedInstr(MachineInstr &MI) override {}
  328 static bool isInstrUniformNonExtLoadAlign4(const MachineInstr &MI) {
  685   for (MachineInstr &MI : Range) {
  764   for (MachineInstr &MI : make_range(NewBegin, NewEnd)) {
  962   SmallSet<Register, 4> &SGPROperandRegs, MachineInstr &MI,
  977   MachineIRBuilder &B, MachineInstr &MI, MachineRegisterInfo &MRI,
  992   MachineInstr &MI, MachineRegisterInfo &MRI,
 1000     MachineInstr &MI, MachineRegisterInfo &MRI, unsigned OpIdx) const {
 1025 static MachineInstr *getOtherVRegDef(const MachineRegisterInfo &MRI,
 1027                                      const MachineInstr &MI) {
 1029   for (MachineInstr &Other : MRI.def_instructions(Reg)) {
 1037 bool AMDGPURegisterBankInfo::applyMappingWideLoad(MachineInstr &MI,
 1065   MachineInstr *RepairInst = getOtherVRegDef(MRI, DstReg, MI);
 1091   MachineInstr *LegalizedInst = getOtherVRegDef(MRI, DstReg, *RepairInst);
 1111     MachineInstr &MI, const AMDGPURegisterBankInfo::OperandsMapper &OpdMapper,
 1248 MachineInstr *
 1250                                              MachineInstr &MI) const {
 1328   MachineInstr &MI = OpdMapper.getMI();
 1903 bool AMDGPURegisterBankInfo::isSALUMapping(const MachineInstr &MI) const {
 1922 AMDGPURegisterBankInfo::getDefaultMappingSOP(const MachineInstr &MI) const {
 1937 AMDGPURegisterBankInfo::getDefaultMappingVOP(const MachineInstr &MI) const {
 1973 AMDGPURegisterBankInfo::getDefaultMappingAllVGPR(const MachineInstr &MI) const {
 1993                                         const MachineInstr &MI,
 2031 AMDGPURegisterBankInfo::getInstrMappingForLoad(const MachineInstr &MI) const {
 2112 AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
lib/Target/AMDGPU/AMDGPURegisterBankInfo.h
   49     MachineInstr &MI,
   60                               MachineInstr &MI,
   63   bool executeInWaterfallLoop(MachineInstr &MI,
   67   void constrainOpWithReadfirstlane(MachineInstr &MI, MachineRegisterInfo &MRI,
   69   bool applyMappingWideLoad(MachineInstr &MI,
   73   applyMappingImage(MachineInstr &MI,
   83   MachineInstr *selectStoreIntrinsic(MachineIRBuilder &B,
   84                                      MachineInstr &MI) const;
   90   getInstrMappingForLoad(const MachineInstr &MI) const;
  121   addMappingFromTable(const MachineInstr &MI, const MachineRegisterInfo &MRI,
  127       const MachineInstr &MI, const MachineRegisterInfo &MRI) const;
  131       const MachineInstr &MI, const MachineRegisterInfo &MRI) const;
  133   bool isSALUMapping(const MachineInstr &MI) const;
  134   const InstructionMapping &getDefaultMappingSOP(const MachineInstr &MI) const;
  135   const InstructionMapping &getDefaultMappingVOP(const MachineInstr &MI) const;
  137     const MachineInstr &MI) const;
  140                                             const MachineInstr &MI,
  156   getInstrAlternativeMappings(const MachineInstr &MI) const override;
  159   getInstrMapping(const MachineInstr &MI) const override;
lib/Target/AMDGPU/AMDGPUSubtarget.cpp
  729       MachineInstr &MI2 = *SU.getInstr();
  739       MachineInstr &MI1 = *SUa->getInstr();
  772     const MachineInstr *MI = SU->getInstr();
  777     const MachineInstr *MI = SU->getInstr();
  860       MachineInstr &MAI = *SU.getInstr();
lib/Target/AMDGPU/AMDILCFGStructurizer.cpp
  223   MachineInstr *insertInstrBefore(MachineBasicBlock *MBB, int NewOpcode,
  225   MachineInstr *insertInstrBefore(MachineBasicBlock::iterator I, int NewOpcode);
  236   static MachineBasicBlock *getTrueBranch(MachineInstr *MI);
  237   static void setTrueBranch(MachineInstr *MI, MachineBasicBlock *MBB);
  239       MachineInstr *MI);
  240   static bool isCondBranch(MachineInstr *MI);
  241   static bool isUncondBranch(MachineInstr *MI);
  243   static MachineInstr *getNormalBlockBranchInstr(MachineBasicBlock *MBB);
  249   MachineInstr *getLoopendBlockBranchInstr(MachineBasicBlock *MBB);
  251   static MachineInstr *getReturnInstr(MachineBasicBlock *MBB);
  292   void mergeIfthenelseBlock(MachineInstr *BranchMI,
  457   MachineInstr *MI =
  464 MachineInstr *AMDGPUCFGStructurizer::insertInstrBefore(MachineBasicBlock *MBB,
  467   MachineInstr *MI =
  477 MachineInstr *AMDGPUCFGStructurizer::insertInstrBefore(
  479   MachineInstr *OldMI = &(*I);
  481   MachineInstr *NewMBB =
  491   MachineInstr *OldMI = &(*I);
  494   MachineInstr *NewMI = MF->CreateMachineInstr(TII->get(NewOpcode), DL);
  506   MachineInstr *NewInstr = MF->CreateMachineInstr(TII->get(NewOpcode), DL);
  553 MachineBasicBlock *AMDGPUCFGStructurizer::getTrueBranch(MachineInstr *MI) {
  557 void AMDGPUCFGStructurizer::setTrueBranch(MachineInstr *MI,
  564     MachineInstr *MI) {
  573 bool AMDGPUCFGStructurizer::isCondBranch(MachineInstr *MI) {
  584 bool AMDGPUCFGStructurizer::isUncondBranch(MachineInstr *MI) {
  600     MachineInstr *instr = &(*It);
  607 MachineInstr *AMDGPUCFGStructurizer::getNormalBlockBranchInstr(
  610   MachineInstr *MI = &*It;
  616 MachineInstr *AMDGPUCFGStructurizer::getLoopendBlockBranchInstr(
  621     MachineInstr *MI = &*It;
  632 MachineInstr *AMDGPUCFGStructurizer::getReturnInstr(MachineBasicBlock *MBB) {
  635     MachineInstr *instr = &(*It);
  643   MachineInstr *MI = getReturnInstr(MBB);
  664   for (const MachineInstr &It : *MBB)
  672   MachineInstr *BranchMI = getLoopendBlockBranchInstr(SrcMBB);
  684    SmallVector<MachineInstr *, DEFAULT_VEC_SLOTS> ContInstr;
  941   MachineInstr *BranchMI = getNormalBlockBranchInstr(MBB);
 1377 void AMDGPUCFGStructurizer::mergeIfthenelseBlock(MachineInstr *BranchMI,
 1448   MachineInstr *BranchMI = getLoopendBlockBranchInstr(ExitingMBB);
 1470   MachineInstr *MI = getLoopendBlockBranchInstr(ContingMBB);
 1555   MachineInstr *BranchMI = getNormalBlockBranchInstr(SrcMBB);
 1582   MachineInstr *BranchMI = getLoopendBlockBranchInstr(LoopLatch);
 1597   MachineInstr *BranchMI;
 1617   MachineInstr *BranchMI = getNormalBlockBranchInstr(MBB);
 1634     MachineInstr *MI = getReturnInstr(MBB);
lib/Target/AMDGPU/GCNDPPCombine.cpp
   74   MachineInstr *createDPPInst(MachineInstr &OrigMI,
   74   MachineInstr *createDPPInst(MachineInstr &OrigMI,
   75                               MachineInstr &MovMI,
   80   MachineInstr *createDPPInst(MachineInstr &OrigMI,
   80   MachineInstr *createDPPInst(MachineInstr &OrigMI,
   81                               MachineInstr &MovMI,
   85   bool hasNoImmOrEqual(MachineInstr &MI,
   90   bool combineDPPMov(MachineInstr &MI) const;
  135   auto *Def = getVRegSubRegDef(getRegSubRegPair(OldOpnd), *MRI);
  154 MachineInstr *GCNDPPCombine::createDPPInst(MachineInstr &OrigMI,
  154 MachineInstr *GCNDPPCombine::createDPPInst(MachineInstr &OrigMI,
  155                                            MachineInstr &MovMI,
  180       auto *Def = getVRegSubRegDef(CombOldVGPR, *MRI);
  313 MachineInstr *GCNDPPCombine::createDPPInst(MachineInstr &OrigMI,
  313 MachineInstr *GCNDPPCombine::createDPPInst(MachineInstr &OrigMI,
  314                                            MachineInstr &MovMI,
  340 bool GCNDPPCombine::hasNoImmOrEqual(MachineInstr &MI, unsigned OpndName,
  350 bool GCNDPPCombine::combineDPPMov(MachineInstr &MovMI) const {
  430   SmallVector<MachineInstr*, 4> OrigMIs, DPPMIs;
  431   DenseMap<MachineInstr*, SmallVector<unsigned, 4>> RegSeqWithOpNos;
  454     auto &OrigMI = *Use->getParent();
  508       if (auto *DPPInst = createDPPInst(OrigMI, MovMI, CombOldVGPR,
  516       auto *NewMI = BB->getParent()->CloneMachineInstr(&OrigMI);
  520         if (auto *DPPInst = createDPPInst(*NewMI, MovMI, CombOldVGPR,
  537   for (auto *MI : *(Rollback? &DPPMIs : &OrigMIs))
  567       auto &MI = *I++;
lib/Target/AMDGPU/GCNHazardRecognizer.cpp
   57 void GCNHazardRecognizer::EmitInstruction(MachineInstr *MI) {
   94                                     const MachineInstr &MI) {
  119 static bool isPermlane(const MachineInstr &MI) {
  125 static unsigned getHWReg(const SIInstrInfo *TII, const MachineInstr &RegInstr) {
  133   MachineInstr *MI = SU->getInstr();
  200 static void insertNoopInBundle(MachineInstr *MI, const SIInstrInfo &TII) {
  236 unsigned GCNHazardRecognizer::PreEmitNoops(MachineInstr *MI) {
  245 unsigned GCNHazardRecognizer::PreEmitNoopsCommon(MachineInstr *MI) {
  356 typedef function_ref<bool(MachineInstr *, int WaitStates)> IsExpiredFn;
  410                               MachineInstr *MI,
  427   for (MachineInstr *MI : EmittedInstrs) {
  475                          iterator_range<MachineInstr::const_mop_iterator> Ops,
  483 void GCNHazardRecognizer::addClauseInst(const MachineInstr &MI) {
  489 int GCNHazardRecognizer::checkSoftClauseHazards(MachineInstr *MEM) {
  509   for (MachineInstr *MI : EmittedInstrs) {
  537 int GCNHazardRecognizer::checkSMRDHazards(MachineInstr *SMRD) {
  581 int GCNHazardRecognizer::checkVMEMHazards(MachineInstr* VMEM) {
  603 int GCNHazardRecognizer::checkDPPHazards(MachineInstr *DPP) {
  631 int GCNHazardRecognizer::checkDivFMasHazards(MachineInstr *DivFMas) {
  644 int GCNHazardRecognizer::checkGetRegHazards(MachineInstr *GetRegInstr) {
  657 int GCNHazardRecognizer::checkSetRegHazards(MachineInstr *SetRegInstr) {
  669 int GCNHazardRecognizer::createsVALUHazard(const MachineInstr &MI) {
  742 int GCNHazardRecognizer::checkVALUHazards(MachineInstr *VALU) {
  758 int GCNHazardRecognizer::checkInlineAsmHazards(MachineInstr *IA) {
  784 int GCNHazardRecognizer::checkRWLaneHazards(MachineInstr *RWLane) {
  806 int GCNHazardRecognizer::checkRFEHazards(MachineInstr *RFE) {
  821 int GCNHazardRecognizer::checkAnyInstHazards(MachineInstr *MI) {
  849 int GCNHazardRecognizer::checkReadM0Hazards(MachineInstr *MI) {
  859 void GCNHazardRecognizer::fixHazards(MachineInstr *MI) {
  867 bool GCNHazardRecognizer::fixVcmpxPermlaneHazards(MachineInstr *MI) {
  904 bool GCNHazardRecognizer::fixVMEMtoScalarWriteHazards(MachineInstr *MI) {
  945 bool GCNHazardRecognizer::fixSMEMtoVectorWriteHazards(MachineInstr *MI) {
 1033 bool GCNHazardRecognizer::fixVcmpxExecWARHazard(MachineInstr *MI) {
 1074 bool GCNHazardRecognizer::fixLdsBranchVmemWARHazard(MachineInstr *MI) {
 1136 int GCNHazardRecognizer::checkNSAtoVMEMHazard(MachineInstr *MI) {
 1161 int GCNHazardRecognizer::checkFPAtomicToDenormModeHazard(MachineInstr *MI) {
 1197 int GCNHazardRecognizer::checkMAIHazards(MachineInstr *MI) {
 1366 int GCNHazardRecognizer::checkMAILdStHazards(MachineInstr *MI) {
lib/Target/AMDGPU/GCNHazardRecognizer.h
   35   typedef function_ref<bool(MachineInstr *)> IsHazardFn;
   44   MachineInstr *CurrCycleInstr;
   45   std::list<MachineInstr*> EmittedInstrs;
   63   void addClauseInst(const MachineInstr &MI);
   73   int checkSoftClauseHazards(MachineInstr *SMEM);
   74   int checkSMRDHazards(MachineInstr *SMRD);
   75   int checkVMEMHazards(MachineInstr* VMEM);
   76   int checkDPPHazards(MachineInstr *DPP);
   77   int checkDivFMasHazards(MachineInstr *DivFMas);
   78   int checkGetRegHazards(MachineInstr *GetRegInstr);
   79   int checkSetRegHazards(MachineInstr *SetRegInstr);
   80   int createsVALUHazard(const MachineInstr &MI);
   81   int checkVALUHazards(MachineInstr *VALU);
   83   int checkRWLaneHazards(MachineInstr *RWLane);
   84   int checkRFEHazards(MachineInstr *RFE);
   85   int checkInlineAsmHazards(MachineInstr *IA);
   86   int checkAnyInstHazards(MachineInstr *MI);
   87   int checkReadM0Hazards(MachineInstr *SMovRel);
   88   int checkNSAtoVMEMHazard(MachineInstr *MI);
   89   int checkFPAtomicToDenormModeHazard(MachineInstr *MI);
   90   void fixHazards(MachineInstr *MI);
   91   bool fixVcmpxPermlaneHazards(MachineInstr *MI);
   92   bool fixVMEMtoScalarWriteHazards(MachineInstr *MI);
   93   bool fixSMEMtoVectorWriteHazards(MachineInstr *MI);
   94   bool fixVcmpxExecWARHazard(MachineInstr *MI);
   95   bool fixLdsBranchVmemWARHazard(MachineInstr *MI);
   97   int checkMAIHazards(MachineInstr *MI);
   98   int checkMAILdStHazards(MachineInstr *MI);
  105   void EmitInstruction(MachineInstr *MI) override;
  109   unsigned PreEmitNoops(MachineInstr *) override;
  110   unsigned PreEmitNoopsCommon(MachineInstr *);
lib/Target/AMDGPU/GCNIterativeScheduler.cpp
   48 static inline MachineInstr *getMachineInstr(MachineInstr *MI) {
   48 static inline MachineInstr *getMachineInstr(MachineInstr *MI) {
   51 static inline MachineInstr *getMachineInstr(const SUnit *SU) {
   54 static inline MachineInstr *getMachineInstr(const SUnit &SU) {
  336 std::vector<MachineInstr*>
  338   std::vector<MachineInstr*> Res;
  408   if (!std::is_same<decltype(*Schedule.begin()), MachineInstr*>::value) {
lib/Target/AMDGPU/GCNIterativeScheduler.h
   54     std::vector<MachineInstr *> Schedule;
   98   std::vector<MachineInstr*> detachSchedule(ScheduleRef Schedule) const;
lib/Target/AMDGPU/GCNNSAReassign.cpp
   85   NSA_Status CheckNSA(const MachineInstr &MI, bool Fast = false) const;
  164 GCNNSAReassign::CheckNSA(const MachineInstr &MI, bool Fast) const {
  197       const MachineInstr *Def = MRI->getUniqueVRegDef(Reg);
  205         const MachineInstr *UseInst = U.getParent();
  239   using Candidate = std::pair<const MachineInstr*, bool>;
  242     for (const MachineInstr &MI : MBB) {
  262     const MachineInstr *MI = C.first;
lib/Target/AMDGPU/GCNRegBankReassign.cpp
   85     Candidate(MachineInstr *mi, unsigned reg, unsigned freebanks,
  100     MachineInstr *MI;
  175   unsigned analyzeInst(const MachineInstr& MI, unsigned& UsedBanks,
  185   unsigned getOperandGatherWeight(const MachineInstr& MI,
  201   void collectCandidates(MachineInstr& MI, unsigned UsedBanks,
  349 unsigned GCNRegBankReassign::analyzeInst(const MachineInstr& MI,
  400 unsigned GCNRegBankReassign::getOperandGatherWeight(const MachineInstr& MI,
  426   const MachineInstr *Def = MRI->getUniqueVRegDef(Reg);
  436     const MachineInstr *UseInst = U.getParent();
  524 void GCNRegBankReassign::collectCandidates(MachineInstr& MI,
  573   SmallSet<const MachineInstr *, 16> Visited;
  575   for (auto &MI : MRI->use_nodbg_instructions(SrcReg)) {
  693     for (MachineInstr &MI : MBB.instrs()) {
lib/Target/AMDGPU/GCNRegPressure.cpp
  290 void GCNRPTracker::reset(const MachineInstr &MI,
  306 void GCNUpwardRPTracker::reset(const MachineInstr &MI,
  311 void GCNUpwardRPTracker::recede(const MachineInstr &MI) {
  354 bool GCNDownwardRPTracker::reset(const MachineInstr &MI,
lib/Target/AMDGPU/GCNRegPressure.h
  106   const MachineInstr *LastTrackedMI = nullptr;
  111   void reset(const MachineInstr &MI, const LiveRegSet *LiveRegsCopy,
  117   const MachineInstr *getLastTrackedMI() const { return LastTrackedMI; }
  142   void reset(const MachineInstr &MI, const LiveRegSet *LiveRegs = nullptr);
  145   void recede(const MachineInstr &MI);
  166   bool reset(const MachineInstr &MI, const LiveRegSet *LiveRegs = nullptr);
  202 DenseMap<MachineInstr*, GCNRPTracker::LiveRegSet>
  207   for (MachineInstr *I : R) {
  214   DenseMap<MachineInstr *, GCNRPTracker::LiveRegSet> LiveRegMap;
  240 inline GCNRPTracker::LiveRegSet getLiveRegsAfter(const MachineInstr &MI,
  246 inline GCNRPTracker::LiveRegSet getLiveRegsBefore(const MachineInstr &MI,
lib/Target/AMDGPU/GCNSchedStrategy.cpp
  330   std::vector<MachineInstr*> Unsched;
  332   for (auto &I : *this) {
  398   for (MachineInstr *MI : Unsched) {
  469     auto *NonDbgMI = &*skipDebugInstructionsForward(Rgn.first, Rgn.second);
  503 DenseMap<MachineInstr *, GCNRPTracker::LiveRegSet>
  506   std::vector<MachineInstr *> BBStarters;
  511     auto *MI = &*skipDebugInstructionsForward(I->first, I->second);
lib/Target/AMDGPU/GCNSchedStrategy.h
   96   DenseMap<MachineInstr *, GCNRPTracker::LiveRegSet> BBLiveInMap;
   97   DenseMap<MachineInstr *, GCNRPTracker::LiveRegSet> getBBLiveInMap() const;
lib/Target/AMDGPU/R600AsmPrinter.cpp
   52     for (const MachineInstr &MI : MBB) {
lib/Target/AMDGPU/R600AsmPrinter.h
   29   void EmitInstruction(const MachineInstr *MI) override;
lib/Target/AMDGPU/R600ClauseMergePass.cpp
   34 static bool isCFAlu(const MachineInstr &MI) {
   49   unsigned getCFAluSize(const MachineInstr &MI) const;
   50   bool isCFAluEnabled(const MachineInstr &MI) const;
   56   void cleanPotentialDisabledCFAlu(MachineInstr &CFAlu) const;
   60   bool mergeIfPossible(MachineInstr &RootCFAlu,
   61                        const MachineInstr &LatrCFAlu) const;
   84 unsigned R600ClauseMergePass::getCFAluSize(const MachineInstr &MI) const {
   91 bool R600ClauseMergePass::isCFAluEnabled(const MachineInstr &MI) const {
   99     MachineInstr &CFAlu) const {
  108     MachineInstr &MI = *I++;
  116 bool R600ClauseMergePass::mergeIfPossible(MachineInstr &RootCFAlu,
  117                                           const MachineInstr &LatrCFAlu) const {
  195       MachineInstr &MI = *I++;
lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
  219   using ClauseFile = std::pair<MachineInstr *, std::vector<MachineInstr *>>;
  219   using ClauseFile = std::pair<MachineInstr *, std::vector<MachineInstr *>>;
  240   bool IsTrivialInst(MachineInstr &MI) const {
  296   bool isCompatibleWithClause(const MachineInstr &MI,
  299     for (MachineInstr::const_mop_iterator I = MI.operands_begin(),
  335     std::vector<MachineInstr *> ClauseContent;
  352     MachineInstr *MIb = BuildMI(MBB, ClauseHead, MBB.findDebugLoc(ClauseHead),
  359   void getLiteral(MachineInstr &MI, std::vector<MachineOperand *> &Lits) const {
  412     MachineInstr &ClauseHead = *I;
  413     std::vector<MachineInstr *> ClauseContent;
  424         MachineInstr &DeleteMI = *I;
  492   void CounterPropagateAddr(MachineInstr &MI, unsigned Addr) const {
  495   void CounterPropagateAddr(const std::set<MachineInstr *> &MIs,
  497     for (MachineInstr *MI : MIs) {
  520       std::vector<std::pair<unsigned, std::set<MachineInstr *>>> LoopStack;
  521       std::vector<MachineInstr * > IfThenElseStack;
  528       std::vector<MachineInstr *> LastAlu(1);
  529       std::vector<MachineInstr *> ToPopAfter;
  571           MachineInstr *MIb = BuildMI(MBB, MI, MBB.findDebugLoc(MI),
  574           std::pair<unsigned, std::set<MachineInstr *>> Pair(CfCount,
  584           std::pair<unsigned, std::set<MachineInstr *>> Pair =
  596           MachineInstr *MIb = BuildMI(MBB, MI, MBB.findDebugLoc(MI),
  607           MachineInstr * JumpInst = IfThenElseStack.back();
  610           MachineInstr *MIb = BuildMI(MBB, MI, MBB.findDebugLoc(MI),
  625             MachineInstr *MIb = BuildMI(MBB, MI, MBB.findDebugLoc(MI),
  634           MachineInstr *IfOrElseInst = IfThenElseStack.back();
  644           MachineInstr *MIb = BuildMI(MBB, MI, MBB.findDebugLoc(MI),
  652           MachineInstr *MIb = BuildMI(MBB, MI, MBB.findDebugLoc(MI),
  684         MachineInstr *Alu = ToPopAfter[i];
lib/Target/AMDGPU/R600EmitClauseMarkers.cpp
   52   unsigned OccupiedDwords(MachineInstr &MI) const {
   75     for (MachineInstr::mop_iterator It = MI.operands_begin(),
   85   bool isALU(const MachineInstr &MI) const {
  103   bool IsTrivialInst(MachineInstr &MI) const {
  129   SubstituteKCacheBank(MachineInstr &MI,
  200     for (MachineInstr::const_mop_iterator
lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp
   43   void SetFlagInNewMI(MachineInstr *NewMI, const MachineInstr *OldMI,
   43   void SetFlagInNewMI(MachineInstr *NewMI, const MachineInstr *OldMI,
   73 void R600ExpandSpecialInstrsPass::SetFlagInNewMI(MachineInstr *NewMI,
   74     const MachineInstr *OldMI, unsigned Op) {
   93       MachineInstr &MI = *I;
  101         MachineInstr *Mov = TII->buildMovInstr(&MBB, I,
  120         MachineInstr *PredSet = TII->buildDefaultInstruction(MBB, I,
  145           MachineInstr *BMI =
  263         MachineInstr *NewMI =
lib/Target/AMDGPU/R600ISelLowering.cpp
  290 R600TargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
  322     MachineInstr *NewMI = TII->buildDefaultInstruction(
  330     MachineInstr *NewMI = TII->buildDefaultInstruction(
  340     MachineInstr * defInstr = MRI.getVRegDef(maskedRegister);
  369     MachineInstr *NewMI = TII->buildDefaultInstruction(
  399     MachineInstr *NewMI =
  413     MachineInstr *NewMI =
lib/Target/AMDGPU/R600ISelLowering.h
   33   EmitInstrWithCustomInserter(MachineInstr &MI,
   66   void lowerImplicitParameter(MachineInstr *MI, MachineBasicBlock &BB,
lib/Target/AMDGPU/R600InstrInfo.cpp
   57 bool R600InstrInfo::isVector(const MachineInstr &MI) const {
   88     MachineInstr *NewMI = buildDefaultInstruction(MBB, MI, R600::MOV,
   98   for (MachineInstr::const_mop_iterator I = MBBI->operands_begin(),
  159 bool R600InstrInfo::canBeConsideredALU(const MachineInstr &MI) const {
  183 bool R600InstrInfo::isTransOnly(const MachineInstr &MI) const {
  191 bool R600InstrInfo::isVectorOnly(const MachineInstr &MI) const {
  203 bool R600InstrInfo::usesVertexCache(const MachineInstr &MI) const {
  213 bool R600InstrInfo::usesTextureCache(const MachineInstr &MI) const {
  230 bool R600InstrInfo::usesAddressRegister(MachineInstr &MI) const {
  234 bool R600InstrInfo::definesAddressRegister(MachineInstr &MI) const {
  238 bool R600InstrInfo::readsLDSSrcReg(const MachineInstr &MI) const {
  242   for (MachineInstr::const_mop_iterator I = MI.operands_begin(),
  341 R600InstrInfo::ExtractSrcs(MachineInstr &MI,
  535 R600InstrInfo::fitsReadPortLimitations(const std::vector<MachineInstr *> &IG,
  608 R600InstrInfo::fitsConstReadLimitations(const std::vector<MachineInstr *> &MIs)
  613     MachineInstr &MI = *MIs[i];
  651 static MachineInstr *
  656     MachineInstr &MI = *I;
  701   MachineInstr &LastInst = *I;
  724   MachineInstr &SecondLastInst = *I;
  770       MachineInstr *PredSet = findFirstPredicateSetterFrom(MBB, MBB.end());
  786     MachineInstr *PredSet = findFirstPredicateSetterFrom(MBB, MBB.end());
  820     MachineInstr *predSet = findFirstPredicateSetterFrom(MBB, I);
  845     MachineInstr *predSet = findFirstPredicateSetterFrom(MBB, I);
  862 bool R600InstrInfo::isPredicated(const MachineInstr &MI) const {
  877 bool R600InstrInfo::isPredicable(const MachineInstr &MI) const {
  966 bool R600InstrInfo::DefinesPredicate(MachineInstr &MI,
  971 bool R600InstrInfo::PredicateInstruction(MachineInstr &MI,
 1005 unsigned int R600InstrInfo::getPredicationCost(const MachineInstr &) const {
 1010                                             const MachineInstr &,
 1023 bool R600InstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
 1133   MachineInstr *MOVA = buildDefaultInstruction(*MBB, I, R600::MOVA_INT_eg,
 1165   MachineInstr *MOVA = buildDefaultInstruction(*MBB, I, R600::MOVA_INT_eg,
 1316 MachineInstr *R600InstrInfo::buildSlotOfVectorInstruction(
 1317     MachineBasicBlock &MBB, MachineInstr *MI, unsigned Slot, unsigned DstReg)
 1330   MachineInstr *MIB = buildDefaultInstruction(
 1364 MachineInstr *R600InstrInfo::buildMovImm(MachineBasicBlock &BB,
 1368   MachineInstr *MovImm = buildDefaultInstruction(BB, I, R600::MOV, DstReg,
 1374 MachineInstr *R600InstrInfo::buildMovInstr(MachineBasicBlock *MBB,
 1380 int R600InstrInfo::getOperandIdx(const MachineInstr &MI, unsigned Op) const {
 1388 void R600InstrInfo::setImmOperand(MachineInstr &MI, unsigned Op,
 1400 MachineOperand &R600InstrInfo::getFlagOp(MachineInstr &MI, unsigned SrcIdx,
 1465 void R600InstrInfo::addFlag(MachineInstr &MI, unsigned Operand,
 1486 void R600InstrInfo::clearFlag(MachineInstr &MI, unsigned Operand,
lib/Target/AMDGPU/R600InstrInfo.h
   45   ExtractSrcs(MachineInstr &MI, const DenseMap<unsigned, unsigned> &PV,
   92   bool canBeConsideredALU(const MachineInstr &MI) const;
   95   bool isTransOnly(const MachineInstr &MI) const;
   97   bool isVectorOnly(const MachineInstr &MI) const;
  101   bool usesVertexCache(const MachineInstr &MI) const;
  103   bool usesTextureCache(const MachineInstr &MI) const;
  106   bool usesAddressRegister(MachineInstr &MI) const;
  107   bool definesAddressRegister(MachineInstr &MI) const;
  108   bool readsLDSSrcReg(const MachineInstr &MI) const;
  120   getSrcs(MachineInstr &MI) const;
  143   bool fitsReadPortLimitations(const std::vector<MachineInstr *> &MIs,
  151   bool fitsConstReadLimitations(const std::vector<MachineInstr *> &) const;
  157   bool isVector(const MachineInstr &MI) const;
  180   bool isPredicated(const MachineInstr &MI) const override;
  182   bool isPredicable(const MachineInstr &MI) const override;
  197   bool DefinesPredicate(MachineInstr &MI,
  203   bool PredicateInstruction(MachineInstr &MI,
  206   unsigned int getPredicationCost(const MachineInstr &) const override;
  209                                const MachineInstr &MI,
  212   bool expandPostRAPseudo(MachineInstr &MI) const override;
  273   MachineInstr *buildSlotOfVectorInstruction(MachineBasicBlock &MBB,
  274                                              MachineInstr *MI,
  278   MachineInstr *buildMovImm(MachineBasicBlock &BB,
  283   MachineInstr *buildMovInstr(MachineBasicBlock *MBB,
  290   int getOperandIdx(const MachineInstr &MI, unsigned Op) const;
  298   void setImmOperand(MachineInstr &MI, unsigned Op, int64_t Imm) const;
  301   void addFlag(MachineInstr &MI, unsigned Operand, unsigned Flag) const;
  304   bool isFlagSet(const MachineInstr &MI, unsigned Operand, unsigned Flag) const;
  310   MachineOperand &getFlagOp(MachineInstr &MI, unsigned SrcIdx = 0,
  314   void clearFlag(MachineInstr &MI, unsigned Operand, unsigned Flag) const;
  317   bool isRegisterStore(const MachineInstr &MI) const {
  321   bool isRegisterLoad(const MachineInstr &MI) const {
lib/Target/AMDGPU/R600MachineScheduler.cpp
  161       for (MachineInstr::mop_iterator It = SU->getInstr()->operands_begin(),
  182 isPhysicalRegCopy(MachineInstr *MI) {
  220   MachineInstr *MI = SU->getInstr();
  355 void R600SchedStrategy::AssignSlot(MachineInstr* MI, unsigned Slot) {
  363   for (MachineInstr::mop_iterator It = MI->operands_begin(),
lib/Target/AMDGPU/R600MachineScheduler.h
   79   std::vector<MachineInstr *> InstructionsGroupCandidate;
   91   void AssignSlot(MachineInstr *MI, unsigned Slot);
lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
   63   const MachineInstr *MI = MRI.getUniqueVRegDef(Reg);
   71   MachineInstr *Instr;
   75   RegSeqInfo(MachineRegisterInfo &MRI, MachineInstr *MI) : Instr(MI) {
   96   using InstructionSetMap = DenseMap<unsigned, std::vector<MachineInstr *>>;
  100   DenseMap<MachineInstr *, RegSeqInfo> PreviousRegSeq;
  104   bool canSwizzle(const MachineInstr &MI) const;
  106   void SwizzleInput(MachineInstr &,
  114   MachineInstr *RebuildVector(RegSeqInfo *MI, const RegSeqInfo *BaseVec,
  116   void RemoveMI(MachineInstr *);
  151 bool R600VectorRegMerger::canSwizzle(const MachineInstr &MI)
  197 MachineInstr *R600VectorRegMerger::RebuildVector(
  215     MachineInstr *Tmp = BuildMI(MBB, Pos, DL, TII->get(R600::INSERT_SUBREG),
  230   MachineInstr *NewMI =
  251 void R600VectorRegMerger::RemoveMI(MachineInstr *MI) {
  254     std::vector<MachineInstr *> &MIs = (*It).second;
  259     std::vector<MachineInstr *> &MIs = (*It).second;
  264 void R600VectorRegMerger::SwizzleInput(MachineInstr &MI,
  294   for (MachineInstr::mop_iterator MOp = RSI.Instr->operands_begin(),
  300     for (MachineInstr *MI : PreviousRegSeqByReg[MOp->getReg()]) {
  317   std::vector<MachineInstr *> &MIs =
  350       MachineInstr &MI = *MII;
lib/Target/AMDGPU/R600Packetizer.cpp
   62   unsigned getSlot(const MachineInstr &MI) const {
  128   void substitutePV(MachineInstr &MI, const DenseMap<unsigned, unsigned> &PVs)
  161   bool ignorePseudoInstruction(const MachineInstr &MI,
  168   bool isSoloInstruction(const MachineInstr &MI) override {
  183     MachineInstr *MII = SUI->getInstr(), *MIJ = SUJ->getInstr();
  221   void setIsLastBit(MachineInstr *MI, unsigned Bit) const {
  226   bool isBundlableWithCurrentPMI(MachineInstr &MI,
  301         MachineInstr *MI = CurrentPacketMIs[i];
lib/Target/AMDGPU/SIAddIMGInit.cpp
   75       MachineInstr &MI = *I;
lib/Target/AMDGPU/SIFixSGPRCopies.cpp
  124   void processPHINode(MachineInstr &MI);
  152 static bool hasVectorOperands(const MachineInstr &MI,
  167 getCopyRegClasses(const MachineInstr &Copy,
  201 static bool tryChangeVGPRtoSGPRinCopy(MachineInstr &MI,
  213     const auto *UseMI = MO.getParent();
  239 static bool foldVGPRCopyIntoRegSequence(MachineInstr &MI,
  252   MachineInstr &CopyUse = *MRI.use_instr_begin(DstReg);
  322 static bool isSafeToFoldImmIntoCopy(const MachineInstr *Copy,
  323                                     const MachineInstr *MoveImm,
  386 static bool isReachable(const MachineInstr *From,
  387                         const MachineInstr *To,
  427   using InitListMap = std::map<unsigned, std::list<MachineInstr *>>;
  430   SmallVector<MachineInstr*, 8> Clobbers;
  432   SmallSet<MachineInstr*, 8> MergedInstrs;
  436   for (auto &MI : MRI.def_instructions(Reg)) {
  456       MachineInstr *MI1 = *I1;
  459         MachineInstr *MI2 = *I2;
  561       MachineInstr &BoundaryMI = *getFirstNonPrologue(MBB, TII);
  595   SmallVector<MachineInstr *, 16> Worklist;
  602       MachineInstr &MI = *I;
  641           MachineInstr *DefMI = MRI->getVRegDef(SrcReg);
  719               MachineInstr *DefMI = MRI->getVRegDef(MO->getReg());
  758 void SIFixSGPRCopies::processPHINode(MachineInstr &MI) {
  761   SetVector<const MachineInstr *> worklist;
  762   SmallSet<const MachineInstr *, 4> Visited;
  766     const MachineInstr *Instr = worklist.pop_back_val();
  769       const MachineInstr *UseMI = Use.getParent();
  812     MachineInstr *Def = MRI->getVRegDef(InputReg);
lib/Target/AMDGPU/SIFixVGPRCopies.cpp
   55     for (MachineInstr &MI : MBB) {
lib/Target/AMDGPU/SIFixupVectorISel.cpp
   96     MachineInstr *DefInst = MRI.getUniqueVRegDef(WOp->getReg());
  120       MachineInstr *MI = MRI.getUniqueVRegDef(IndexReg);
  167     MachineInstr &MI = *I;
  185     MachineInstr *NewGlob = nullptr;
lib/Target/AMDGPU/SIFoldOperands.cpp
   32   MachineInstr *UseMI;
   43   FoldCandidate(MachineInstr *MI, unsigned OpNo, MachineOperand *FoldOp,
   96                    MachineInstr *UseMI,
   99                    SmallVectorImpl<MachineInstr *> &CopiesToReplace) const;
  101   void foldInstOperand(MachineInstr &MI, MachineOperand &OpToFold) const;
  103   const MachineOperand *isClamp(const MachineInstr &MI) const;
  104   bool tryFoldClamp(MachineInstr &MI);
  106   std::pair<const MachineOperand *, int> isOMod(const MachineInstr &MI) const;
  107   bool tryFoldOMod(MachineInstr &MI);
  136                                      const MachineInstr &UseMI,
  173                               const MachineInstr &UseMI,
  189   MachineInstr *MI = Fold.UseMI;
  260     MachineInstr *Inst32 = TII.buildShrunkInst(*MI, Op32);
  308                               const MachineInstr *MI) {
  317                                 MachineInstr *MI, unsigned OpNo,
  330                              MachineInstr *MI, unsigned OpNo,
  439                             const MachineInstr &MI,
  452   MachineInstr *Def = MRI.getUniqueVRegDef(UseReg);
  460     for (MachineInstr *SubDef = MRI.getUniqueVRegDef(Sub->getReg());
  483                            MachineInstr *UseMI,
  543   MachineInstr *UseMI,
  546   SmallVectorImpl<MachineInstr *> &CopiesToReplace) const {
  571       MachineInstr *RSUseMI = RSUse->getParent();
  660     MachineInstr::mop_iterator ImpOpI = UseMI->implicit_operands().begin();
  661     MachineInstr::mop_iterator ImpOpE = UseMI->implicit_operands().end();
  663       MachineInstr::mop_iterator Tmp = ImpOpI;
  928 static void stripExtraCopyOperands(MachineInstr &MI) {
  938 static void mutateCopyOp(MachineInstr &MI, const MCInstrDesc &NewDesc) {
  951     MachineInstr *Def = MRI.getVRegDef(Op.getReg());
  967                               MachineInstr *MI,
 1080                         MachineInstr *MI) {
 1113 void SIFoldOperands::foldInstOperand(MachineInstr &MI,
 1118   SmallVector<MachineInstr *, 4> CopiesToReplace;
 1133       MachineInstr *UseMI = Use->getParent();
 1186       MachineInstr *UseMI = NonInlineUse->getParent();
 1198       MachineInstr *UseMI = U->getParent();
 1207   for (MachineInstr *Copy : CopiesToReplace)
 1213       MachineInstr *DefMI = Fold.OpToFold->getParent();
 1240 const MachineOperand *SIFoldOperands::isClamp(const MachineInstr &MI) const {
 1295 bool SIFoldOperands::tryFoldClamp(MachineInstr &MI) {
 1300   MachineInstr *Def = MRI->getVRegDef(ClampSrc->getReg());
 1355 SIFoldOperands::isOMod(const MachineInstr &MI) const {
 1415 bool SIFoldOperands::tryFoldOMod(MachineInstr &MI) {
 1424   MachineInstr *Def = MRI->getVRegDef(RegOp->getReg());
 1465       MachineInstr &MI = *I;
 1476         if (IsIEEEMode || (!HasNSZ && !MI.getFlag(MachineInstr::FmNsz)) ||
lib/Target/AMDGPU/SIFormMemoryClauses.cpp
   66   bool canBundle(const MachineInstr &MI, RegUse &Defs, RegUse &Uses) const;
   67   bool checkPressure(const MachineInstr &MI, GCNDownwardRPTracker &RPT);
   68   void collectRegUses(const MachineInstr &MI, RegUse &Defs, RegUse &Uses) const;
   69   bool processRegUses(const MachineInstr &MI, RegUse &Defs, RegUse &Uses,
   99 static bool isVMEMClauseInst(const MachineInstr &MI) {
  103 static bool isSMEMClauseInst(const MachineInstr &MI) {
  109 static bool isValidClauseInst(const MachineInstr &MI, bool IsVMEMClause) {
  207 bool SIFormMemoryClauses::canBundle(const MachineInstr &MI,
  244 bool SIFormMemoryClauses::checkPressure(const MachineInstr &MI,
  263 void SIFormMemoryClauses::collectRegUses(const MachineInstr &MI,
  291 bool SIFormMemoryClauses::processRegUses(const MachineInstr &MI,
  328       MachineInstr &MI = *I;
lib/Target/AMDGPU/SIFrameLowering.cpp
  714       .setMIFlag(MachineInstr::FrameSetup);
  796       .setMIFlag(MachineInstr::FrameSetup);
  800       .setMIFlag(MachineInstr::FrameSetup);
  809       .setMIFlag(MachineInstr::FrameSetup);
  816       .setMIFlag(MachineInstr::FrameSetup);
  851       .setMIFlag(MachineInstr::FrameDestroy);
  857       .setMIFlag(MachineInstr::FrameSetup);
lib/Target/AMDGPU/SIISelLowering.cpp
 3030 MachineBasicBlock *SITargetLowering::splitKillBlock(MachineInstr &MI,
 3063 splitBlockForLoop(MachineInstr &MI, MachineBasicBlock &MBB, bool InstInLoop) {
 3101 void SITargetLowering::bundleInstWithWaitcnt(MachineInstr &MI) const {
 3115 SITargetLowering::emitGWSMemViolTestLoop(MachineInstr &MI,
 3230     MachineInstr *SetOn =
 3249   MachineInstr *InsertPt =
 3334                                  MachineInstr &MI,
 3354       MachineInstr *SetOn =
 3365       MachineInstr *SetOn =
 3389 static MachineBasicBlock *emitIndirectSrc(MachineInstr &MI,
 3480 static MachineBasicBlock *emitIndirectDst(MachineInstr &MI,
 3581   MachineInstr &MI, MachineBasicBlock *BB) const {
 3676     MachineInstr *FirstMI = &*BB->begin();
 3790     MachineInstr *Br = BuildMI(*BB, MI, DL, TII->get(AMDGPU::S_CBRANCH_SCC1))
10386 void SITargetLowering::AdjustInstrPostInstrSelection(MachineInstr &MI,
10412         auto *Src = MRI.getUniqueVRegDef(Op.getReg());
10718       for (auto &MI : MBB) {
10773     for (const MachineInstr &MI : *MBB) {
lib/Target/AMDGPU/SIISelLowering.h
  335   MachineBasicBlock *splitKillBlock(MachineInstr &MI,
  338   void bundleInstWithWaitcnt(MachineInstr &MI) const;
  339   MachineBasicBlock *emitGWSMemViolTestLoop(MachineInstr &MI,
  343   EmitInstrWithCustomInserter(MachineInstr &MI,
  362   void AdjustInstrPostInstrSelection(MachineInstr &MI,
lib/Target/AMDGPU/SIInsertSkips.cpp
   59   bool skipIfDead(MachineInstr &MI, MachineBasicBlock &NextBB);
   61   void kill(MachineInstr &MI);
   66   bool skipMaskBranch(MachineInstr &MI, MachineBasicBlock &MBB);
   68   bool optimizeVccBranch(MachineInstr &MI) const;
   95 static bool opcodeEmitsNoInsts(const MachineInstr &MI) {
  149 bool SIInsertSkips::skipIfDead(MachineInstr &MI, MachineBasicBlock &NextBB) {
  184 void SIInsertSkips::kill(MachineInstr &MI) {
  321 bool SIInsertSkips::skipMaskBranch(MachineInstr &MI,
  337 bool SIInsertSkips::optimizeVccBranch(MachineInstr &MI) const {
  466       MachineInstr &MI = *I;
lib/Target/AMDGPU/SIInsertWaitcnts.cpp
  263   RegInterval getRegInterval(const MachineInstr *MI, const SIInstrInfo *TII,
  280                      MachineInstr &MI);
  346   void setExpScore(const MachineInstr *MI, const SIInstrInfo *TII,
  374   DenseSet<MachineInstr *> TrackedWaitcntSet;
  375   DenseSet<MachineInstr *> VCCZBugHandledSet;
  447   bool mayAccessLDSThroughFlat(const MachineInstr &MI) const;
  448   bool generateWaitcntInstBefore(MachineInstr &MI,
  450                                  MachineInstr *OldWaitcntInstr);
  451   void updateEventWaitcntAfter(MachineInstr &Inst,
  459 RegInterval WaitcntBrackets::getRegInterval(const MachineInstr *MI,
  493   const MachineInstr &MIA = *MI;
  501 void WaitcntBrackets::setExpScore(const MachineInstr *MI,
  519                                     WaitEventType E, MachineInstr &Inst) {
  804 static bool readsVCCZ(const MachineInstr &MI) {
  811 static bool callWaitsOnFunctionEntry(const MachineInstr &MI) {
  821 static bool callWaitsOnFunctionReturn(const MachineInstr &MI) {
  836     MachineInstr &MI, WaitcntBrackets &ScoreBrackets,
  837     MachineInstr *OldWaitcntInstr) {
 1184 bool SIInsertWaitcnts::mayAccessLDSThroughFlat(const MachineInstr &MI) const {
 1197 void SIInsertWaitcnts::updateEventWaitcntAfter(MachineInstr &Inst,
 1372   MachineInstr *OldWaitcntInstr = nullptr;
 1377     MachineInstr &Inst = *Iter;
lib/Target/AMDGPU/SIInstrInfo.cpp
  128 bool SIInstrInfo::isReallyTriviallyReMaterializable(const MachineInstr &MI,
  259 bool SIInstrInfo::getMemOperandWithOffset(const MachineInstr &LdSt,
  394 static bool memOpsHaveSameBasePtr(const MachineInstr &MI1,
  396                                   const MachineInstr &MI2,
  432   const MachineInstr &FirstLdSt = *BaseOp1.getParent();
  433   const MachineInstr &SecondLdSt = *BaseOp2.getParent();
 1229     MachineBasicBlock &MBB, MachineInstr &MI, RegScavenger *RS, unsigned TmpReg,
 1362 unsigned SIInstrInfo::getNumWaitStates(const MachineInstr &MI) {
 1371 bool SIInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
 1467     MachineInstr *Copy = BuildMI(MBB, MI, DL, get(AMDGPU::V_MOV_B64_PSEUDO),
 1487     MachineInstr *MovRel =
 1563 std::pair<MachineInstr*, MachineInstr*>
 1563 std::pair<MachineInstr*, MachineInstr*>
 1564 SIInstrInfo::expandMovDPP64(MachineInstr &MI) const {
 1573   MachineInstr *Split[2];
 1621 bool SIInstrInfo::swapSourceModifiers(MachineInstr &MI,
 1642 static MachineInstr *swapRegAndNonRegOperand(MachineInstr &MI,
 1642 static MachineInstr *swapRegAndNonRegOperand(MachineInstr &MI,
 1665 MachineInstr *SIInstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI,
 1665 MachineInstr *SIInstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI,
 1684   MachineInstr *CommutedMI = nullptr;
 1717 bool SIInstrInfo::findCommutedOpIndices(const MachineInstr &MI,
 1757   const MachineInstr &MI) const {
 1788   MachineInstr *GetPC = BuildMI(MBB, I, DL, get(AMDGPU::S_GETPC_B64), PCReg);
 2073     MachineInstr *CondBr =
 2087   MachineInstr *CondBr =
 2176     MachineInstr *Select =
 2186     MachineInstr *Select =
 2240     MachineInstr *Select =
 2252 bool SIInstrInfo::isFoldableCopy(const MachineInstr &MI) const {
 2292 static void removeModOperands(MachineInstr &MI) {
 2306 bool SIInstrInfo::FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
 2306 bool SIInstrInfo::FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
 2433         MachineInstr *Def = MRI->getUniqueVRegDef(Src0->getReg());
 2451         MachineInstr *Def = MRI->getUniqueVRegDef(Src1->getReg());
 2519 bool SIInstrInfo::checkInstOffsetsDoNotOverlap(const MachineInstr &MIa,
 2520                                                const MachineInstr &MIb) const {
 2543 bool SIInstrInfo::areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
 2544                                                   const MachineInstr &MIb) const {
 2605 MachineInstr *SIInstrInfo::convertToThreeAddress(MachineFunction::iterator &MBB,
 2712 static bool changesVGPRIndexingMode(const MachineInstr &MI) {
 2723 bool SIInstrInfo::isSchedulingBoundary(const MachineInstr &MI,
 2749 bool SIInstrInfo::hasUnwantedEffectsWhenEXECEmpty(const MachineInstr &MI) const {
 2786                               const MachineInstr &MI) const {
 2924 bool SIInstrInfo::isImmOperandLegal(const MachineInstr &MI, unsigned OpNo,
 2973 bool SIInstrInfo::hasModifiersSet(const MachineInstr &MI,
 2979 bool SIInstrInfo::hasAnyModifiersSet(const MachineInstr &MI) const {
 2987 bool SIInstrInfo::canShrink(const MachineInstr &MI,
 3046 static void copyFlagsToImplicitVCC(MachineInstr &MI,
 3058 MachineInstr *SIInstrInfo::buildShrunkInst(MachineInstr &MI,
 3058 MachineInstr *SIInstrInfo::buildShrunkInst(MachineInstr &MI,
 3132 static unsigned findImplicitSGPRRead(const MachineInstr &MI) {
 3154 static bool shouldReadExec(const MachineInstr &MI) {
 3190 bool SIInstrInfo::verifyInstruction(const MachineInstr &MI,
 3727 unsigned SIInstrInfo::getVALUOp(const MachineInstr &MI) const {
 3807 const TargetRegisterClass *SIInstrInfo::getOpRegClass(const MachineInstr &MI,
 3824 void SIInstrInfo::legalizeOpWithMove(MachineInstr &MI, unsigned OpIdx) const {
 3906 void SIInstrInfo::swapOperands(MachineInstr &Inst) const {
 3949 bool SIInstrInfo::isOperandLegal(const MachineInstr &MI, unsigned OpIdx,
 4013                                        MachineInstr &MI) const {
 4125                                        MachineInstr &MI) const {
 4211 unsigned SIInstrInfo::readlaneVGPRToSGPR(unsigned SrcReg, MachineInstr &UseMI,
 4254                                        MachineInstr &MI) const {
 4289   MachineInstr *Copy =
 4295   MachineInstr *Def = MRI.getVRegDef(OpReg);
 4402 static void loadSRsrcFromVGPR(const SIInstrInfo &TII, MachineInstr &MI,
 4472 extractRsrcPtr(const SIInstrInfo &TII, MachineInstr &MI, MachineOperand &Rsrc) {
 4513 void SIInstrInfo::legalizeOperands(MachineInstr &MI,
 4753       MachineInstr *Addr64;
 4816 void SIInstrInfo::moveToVALU(MachineInstr &TopInst,
 4822     MachineInstr &Inst = *Worklist.pop_back_val();
 5101 bool SIInstrInfo::moveScalarAddSub(SetVectorType &Worklist, MachineInstr &Inst,
 5137                                  MachineInstr &Inst) const {
 5164                                   MachineInstr &Inst) const {
 5194     MachineInstr *Xor;
 5215       MachineInstr *Not =
 5229                                       MachineInstr &Inst,
 5243   MachineInstr &Op = *BuildMI(MBB, MII, DL, get(Opcode), Interm)
 5247   MachineInstr &Not = *BuildMI(MBB, MII, DL, get(AMDGPU::S_NOT_B32), NewDest)
 5258                                      MachineInstr &Inst,
 5272   MachineInstr &Not = *BuildMI(MBB, MII, DL, get(AMDGPU::S_NOT_B32), Interm)
 5275   MachineInstr &Op = *BuildMI(MBB, MII, DL, get(Opcode), NewDest)
 5287     SetVectorType &Worklist, MachineInstr &Inst,
 5313   MachineInstr &LoHalf = *BuildMI(MBB, MII, DL, InstDesc, DestSub0).add(SrcReg0Sub0);
 5319   MachineInstr &HiHalf = *BuildMI(MBB, MII, DL, InstDesc, DestSub1).add(SrcReg0Sub1);
 5341                                          MachineInstr &Inst,
 5379   MachineInstr *LoHalf =
 5387   MachineInstr *HiHalf =
 5413                                            MachineInstr &Inst, unsigned Opcode,
 5451   MachineInstr &LoHalf = *BuildMI(MBB, MII, DL, InstDesc, DestSub0)
 5456   MachineInstr &HiHalf = *BuildMI(MBB, MII, DL, InstDesc, DestSub1)
 5477                                        MachineInstr &Inst,
 5509   MachineInstr &Xor = *BuildMI(MBB, MII, DL, get(AMDGPU::S_XOR_B64), NewDest)
 5519     SetVectorType &Worklist, MachineInstr &Inst) const {
 5556                                       MachineInstr &Inst) const {
 5622     MachineInstr &UseMI = *I->getParent();
 5654                                  MachineInstr &Inst) const {
 5715                                                MachineInstr &SCCDefInst,
 5722   for (MachineInstr &MI : // Skip the def inst itself.
 5735   const MachineInstr &Inst) const {
 5783 unsigned SIInstrInfo::findUsedSGPR(const MachineInstr &MI,
 5852 MachineOperand *SIInstrInfo::getNamedOperand(MachineInstr &MI,
 5907 bool SIInstrInfo::isLowLatencyInstruction(const MachineInstr &MI) const {
 5913 bool SIInstrInfo::isHighLatencyInstruction(const MachineInstr &MI) const {
 5919 unsigned SIInstrInfo::isStackAccess(const MachineInstr &MI,
 5932 unsigned SIInstrInfo::isSGPRStackAccess(const MachineInstr &MI,
 5940 unsigned SIInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
 5954 unsigned SIInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
 5968 unsigned SIInstrInfo::getInstBundleSize(const MachineInstr &MI) const {
 5980 unsigned SIInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
 6047 bool SIInstrInfo::mayAccessFlatAddressSpace(const MachineInstr &MI) const {
 6061 bool SIInstrInfo::isNonUniformBranchInstr(MachineInstr &Branch) const {
 6070   MachineInstr *Branch = &(*TI);
 6076     MachineInstr *SIIF =
 6080     MachineInstr *SIEND =
 6096   MachineInstr *Branch = &(*TI);
 6120     MachineInstr *HeaderPhi = HeaderPHIBuilder;
 6121     MachineInstr *SIIFBREAK = BuildMI(*(MF), Branch->getDebugLoc(),
 6125     MachineInstr *SILOOP =
 6183 bool SIInstrInfo::isBasicBlockPrologue(const MachineInstr &MI) const {
 6242 void SIInstrInfo::fixImplicitOperands(MachineInstr &MI) const {
 6256 bool SIInstrInfo::isBufferSMRD(const MachineInstr &MI) const {
 6379 llvm::getRegSequenceSubReg(MachineInstr &MI, unsigned SubReg) {
 6391 static bool followSubRegDef(MachineInstr &MI,
 6416 MachineInstr *llvm::getVRegSubRegDef(const TargetInstrInfo::RegSubRegPair &P,
 6423   auto *DefInst = MRI.getVRegDef(RSR.Reg);
 6424   while (auto *MI = DefInst) {
 6453                                       const MachineInstr &DefMI,
 6454                                       const MachineInstr &UseMI) {
 6486                                          const MachineInstr &DefMI) {
 6495   for (auto &UseInst : MRI.use_nodbg_instructions(VReg)) {
 6525 MachineInstr *SIInstrInfo::createPHIDestinationCopy(
 6540 MachineInstr *SIInstrInfo::createPHISourceCopy(
lib/Target/AMDGPU/SIInstrInfo.h
   61   using SetVectorType = SmallSetVector<MachineInstr *, 32>;
   80   void swapOperands(MachineInstr &Inst) const;
   82   bool moveScalarAddSub(SetVectorType &Worklist, MachineInstr &Inst,
   86                       MachineInstr &Inst) const;
   89                        MachineInstr &Inst) const;
   92                            MachineInstr &Inst,
   96                           MachineInstr &Inst,
  100                                MachineInstr &Inst, unsigned Opcode) const;
  102   void splitScalar64BitAddSub(SetVectorType &Worklist, MachineInstr &Inst,
  105   void splitScalar64BitBinaryOp(SetVectorType &Worklist, MachineInstr &Inst,
  109   void splitScalar64BitXnor(SetVectorType &Worklist, MachineInstr &Inst,
  113                             MachineInstr &Inst) const;
  115                            MachineInstr &Inst) const;
  118                       MachineInstr &Inst) const;
  124                                     MachineInstr &SCCDefInst,
  128   getDestEquivalentVGPRClass(const MachineInstr &Inst) const;
  130   bool checkInstOffsetsDoNotOverlap(const MachineInstr &MIa,
  131                                     const MachineInstr &MIb) const;
  133   unsigned findUsedSGPR(const MachineInstr &MI, int OpIndices[3]) const;
  136   bool swapSourceModifiers(MachineInstr &MI,
  140   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  140   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  175   bool isReallyTriviallyReMaterializable(const MachineInstr &MI,
  182   bool getMemOperandWithOffset(const MachineInstr &LdSt,
  198   unsigned calculateLDSSpillAddress(MachineBasicBlock &MBB, MachineInstr &MI,
  230   bool expandPostRAPseudo(MachineInstr &MI) const override;
  237   std::pair<MachineInstr*, MachineInstr*>
  237   std::pair<MachineInstr*, MachineInstr*>
  238   expandMovDPP64(MachineInstr &MI) const;
  249   inline int commuteOpcode(const MachineInstr &MI) const {
  253   bool findCommutedOpIndices(const MachineInstr &MI, unsigned &SrcOpIdx1,
  262   MachineBasicBlock *getBranchDestBlock(const MachineInstr &MI) const override;
  313   areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
  314                                   const MachineInstr &MIb) const override;
  316   bool isFoldableCopy(const MachineInstr &MI) const;
  318   bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, unsigned Reg,
  318   bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, unsigned Reg,
  323   MachineInstr *convertToThreeAddress(MachineFunction::iterator &MBB,
  327   bool isSchedulingBoundary(const MachineInstr &MI,
  331   static bool isSALU(const MachineInstr &MI) {
  339   static bool isVALU(const MachineInstr &MI) {
  347   static bool isVMEM(const MachineInstr &MI) {
  355   static bool isSOP1(const MachineInstr &MI) {
  363   static bool isSOP2(const MachineInstr &MI) {
  371   static bool isSOPC(const MachineInstr &MI) {
  379   static bool isSOPK(const MachineInstr &MI) {
  387   static bool isSOPP(const MachineInstr &MI) {
  395   static bool isPacked(const MachineInstr &MI) {
  403   static bool isVOP1(const MachineInstr &MI) {
  411   static bool isVOP2(const MachineInstr &MI) {
  419   static bool isVOP3(const MachineInstr &MI) {
  427   static bool isSDWA(const MachineInstr &MI) {
  435   static bool isVOPC(const MachineInstr &MI) {
  443   static bool isMUBUF(const MachineInstr &MI) {
  451   static bool isMTBUF(const MachineInstr &MI) {
  459   static bool isSMRD(const MachineInstr &MI) {
  467   bool isBufferSMRD(const MachineInstr &MI) const;
  469   static bool isDS(const MachineInstr &MI) {
  479   static bool isMIMG(const MachineInstr &MI) {
  487   static bool isGather4(const MachineInstr &MI) {
  495   static bool isFLAT(const MachineInstr &MI) {
  501   static bool isSegmentSpecificFLAT(const MachineInstr &MI) {
  507   static bool isFLATScratch(const MachineInstr &MI) {
  516   static bool isEXP(const MachineInstr &MI) {
  524   static bool isWQM(const MachineInstr &MI) {
  532   static bool isDisableWQM(const MachineInstr &MI) {
  540   static bool isVGPRSpill(const MachineInstr &MI) {
  548   static bool isSGPRSpill(const MachineInstr &MI) {
  556   static bool isDPP(const MachineInstr &MI) {
  564   static bool isVOP3P(const MachineInstr &MI) {
  572   static bool isVINTRP(const MachineInstr &MI) {
  580   static bool isMAI(const MachineInstr &MI) {
  588   static bool isDOT(const MachineInstr &MI) {
  596   static bool isScalarUnit(const MachineInstr &MI) {
  600   static bool usesVM_CNT(const MachineInstr &MI) {
  604   static bool usesLGKM_CNT(const MachineInstr &MI) {
  608   static bool sopkIsZext(const MachineInstr &MI) {
  618   static bool isScalarStore(const MachineInstr &MI) {
  626   static bool isFixedSize(const MachineInstr &MI) {
  634   static bool hasFPClamp(const MachineInstr &MI) {
  642   static bool hasIntClamp(const MachineInstr &MI) {
  646   uint64_t getClampMask(const MachineInstr &MI) const {
  654   static bool usesFPDPRounding(const MachineInstr &MI) {
  662   static bool isFPAtomic(const MachineInstr &MI) {
  670   bool isVGPRCopy(const MachineInstr &MI) const {
  678   bool hasVGPRUses(const MachineInstr &MI) const {
  687   bool hasUnwantedEffectsWhenEXECEmpty(const MachineInstr &MI) const;
  691   bool mayReadEXEC(const MachineRegisterInfo &MRI, const MachineInstr &MI) const;
  704   bool isInlineConstant(const MachineInstr &MI,
  718   bool isInlineConstant(const MachineInstr &MI, unsigned OpIdx) const {
  723   bool isInlineConstant(const MachineInstr &MI, unsigned OpIdx,
  741     const MachineInstr *Parent = MO.getParent();
  750   bool isLiteralConstant(const MachineInstr &MI, int OpIdx) const {
  762   bool isImmOperandLegal(const MachineInstr &MI, unsigned OpNo,
  778   bool hasModifiersSet(const MachineInstr &MI,
  780   bool hasAnyModifiersSet(const MachineInstr &MI) const;
  782   bool canShrink(const MachineInstr &MI,
  785   MachineInstr *buildShrunkInst(MachineInstr &MI,
  785   MachineInstr *buildShrunkInst(MachineInstr &MI,
  788   bool verifyInstruction(const MachineInstr &MI,
  791   unsigned getVALUOp(const MachineInstr &MI) const;
  798   const TargetRegisterClass *getOpRegClass(const MachineInstr &MI,
  817   unsigned getOpSize(const MachineInstr &MI, unsigned OpNo) const {
  840   void legalizeOpWithMove(MachineInstr &MI, unsigned OpIdx) const;
  844   bool isOperandLegal(const MachineInstr &MI, unsigned OpIdx,
  862   void legalizeOperandsVOP2(MachineRegisterInfo &MRI, MachineInstr &MI) const;
  865   void legalizeOperandsVOP3(MachineRegisterInfo &MRI, MachineInstr &MI) const;
  871   unsigned readlaneVGPRToSGPR(unsigned SrcReg, MachineInstr &UseMI,
  874   void legalizeOperandsSMRD(MachineRegisterInfo &MRI, MachineInstr &MI) const;
  885   void legalizeOperands(MachineInstr &MI,
  891   void moveToVALU(MachineInstr &MI, MachineDominatorTree *MDT = nullptr) const;
  902   static unsigned getNumWaitStates(const MachineInstr &MI);
  907   MachineOperand *getNamedOperand(MachineInstr &MI, unsigned OperandName) const;
  910   const MachineOperand *getNamedOperand(const MachineInstr &MI,
  916   int64_t getNamedImmOperand(const MachineInstr &MI, unsigned OpName) const {
  924   bool isLowLatencyInstruction(const MachineInstr &MI) const;
  925   bool isHighLatencyInstruction(const MachineInstr &MI) const;
  933   unsigned isStackAccess(const MachineInstr &MI, int &FrameIndex) const;
  934   unsigned isSGPRStackAccess(const MachineInstr &MI, int &FrameIndex) const;
  936   unsigned isLoadFromStackSlot(const MachineInstr &MI,
  938   unsigned isStoreToStackSlot(const MachineInstr &MI,
  941   unsigned getInstBundleSize(const MachineInstr &MI) const;
  942   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
  944   bool mayAccessFlatAddressSpace(const MachineInstr &MI) const;
  946   bool isNonUniformBranchInstr(MachineInstr &Instr) const;
  970   bool isBasicBlockPrologue(const MachineInstr &MI) const override;
  972   MachineInstr *createPHIDestinationCopy(MachineBasicBlock &MBB,
  977   MachineInstr *createPHISourceCopy(MachineBasicBlock &MBB,
 1029   void fixImplicitOperands(MachineInstr &MI) const;
 1051 TargetInstrInfo::RegSubRegPair getRegSequenceSubReg(MachineInstr &MI,
 1057 MachineInstr *getVRegSubRegDef(const TargetInstrInfo::RegSubRegPair &P,
 1065                                 const MachineInstr &DefMI,
 1066                                 const MachineInstr &UseMI);
 1073                                    const MachineInstr &DefMI);
lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
  132     SmallVector<MachineInstr *, 8> InstsToMove;
  137     bool hasSameBaseAddress(const MachineInstr &MI) {
  202   using MemInfoMap = DenseMap<MachineInstr *, MemAddress>;
  233   void updateBaseAndOffset(MachineInstr &I, unsigned NewBase,
  235   unsigned computeBase(MachineInstr &MI, const MemAddress &Addr) const;
  236   MachineOperand createRegOrImm(int32_t Val, MachineInstr &MI) const;
  242   bool promoteConstantOffsetToImm(MachineInstr &CI,
  244                                   SmallPtrSet<MachineInstr *, 4> &Promoted) const;
  258                                          const MachineInstr &MI);
  275 static unsigned getOpcodeWidth(const MachineInstr &MI, const SIInstrInfo &TII) {
  553   for (MachineInstr *MI : InstsToMove) {
  559 static void addDefsUsesToList(const MachineInstr &MI,
  583 static bool addToListsIfDependent(MachineInstr &MI, DenseSet<unsigned> &RegDefs,
  585                                   SmallVectorImpl<MachineInstr *> &Insts) {
  609 static bool canMoveInstsAcrossMemOp(MachineInstr &MemOp,
  610                                     ArrayRef<MachineInstr *> InstsToMove,
  614   for (MachineInstr *InstToMove : InstsToMove) {
  941   MachineInstr *Copy1 = BuildMI(*MBB, CI.Paired, DL, CopyDesc)
 1066   MachineInstr *New = MIB.addMemOperand(combineKnownAdjacentMMOs(*MBB->getParent(), MMOa, MMOb));
 1080   MachineInstr *Copy1 = BuildMI(*MBB, CI.Paired, DL, CopyDesc)
 1110   MachineInstr *New =
 1130   MachineInstr *Copy1 = BuildMI(*MBB, CI.Paired, DL, CopyDesc)
 1169   MachineInstr *New =
 1192   MachineInstr *Copy1 = BuildMI(*MBB, CI.Paired, DL, CopyDesc)
 1336   MachineInstr *New =
 1355 SILoadStoreOptimizer::createRegOrImm(int32_t Val, MachineInstr &MI) const {
 1361   MachineInstr *Mov =
 1371 unsigned SILoadStoreOptimizer::computeBase(MachineInstr &MI,
 1396   MachineInstr *LoHalf =
 1405   MachineInstr *HiHalf =
 1416   MachineInstr *FullBase =
 1429 void SILoadStoreOptimizer::updateBaseAndOffset(MachineInstr &MI,
 1444   MachineInstr *Def = MRI->getUniqueVRegDef(Op.getReg());
 1467   MachineInstr *Def = MRI->getUniqueVRegDef(Base.getReg());
 1477   MachineInstr *BaseLoDef = MRI->getUniqueVRegDef(BaseLo.getReg());
 1478   MachineInstr *BaseHiDef = MRI->getUniqueVRegDef(BaseHi.getReg());
 1516     MachineInstr &MI,
 1518     SmallPtrSet<MachineInstr *, 4> &AnchorList) const {
 1583   MachineInstr *AnchorInst = nullptr;
 1586   SmallVector<std::pair<MachineInstr *, int64_t>, 4> InstsWCommonBase;
 1596     MachineInstr &MINext = *MBBI;
 1685   SmallPtrSet<MachineInstr *, 4> AnchorList;
 1688   for (MachineInstr &MI : MBB.instrs()) {
 1746                                          const MachineInstr &MI) {
lib/Target/AMDGPU/SILowerControlFlow.cpp
   95   void emitIf(MachineInstr &MI);
   96   void emitElse(MachineInstr &MI);
   97   void emitIfBreak(MachineInstr &MI);
   98   void emitLoop(MachineInstr &MI);
   99   void emitEndCf(MachineInstr &MI);
  101   Register getSaveExec(MachineInstr* MI);
  103   void findMaskOperands(MachineInstr &MI, unsigned OpNo,
  106   void combineMasks(MachineInstr &MI);
  138 static void setImpSCCDefDead(MachineInstr &MI, bool IsDead) {
  147 static bool isSimpleIf(const MachineInstr &MI, const MachineRegisterInfo *MRI,
  170     for(auto &Term : MBB->terminators())
  180 Register SILowerControlFlow::getSaveExec(MachineInstr *MI) {
  198 void SILowerControlFlow::emitIf(MachineInstr &MI) {
  218   MachineInstr *CopyExec =
  225   MachineInstr *And =
  232   MachineInstr *Xor = nullptr;
  243   MachineInstr *SetExec =
  249   MachineInstr *NewBr = BuildMI(MBB, I, DL, TII->get(AMDGPU::SI_MASK_BRANCH))
  281 void SILowerControlFlow::emitElse(MachineInstr &MI) {
  294   MachineInstr *CopyExec =
  302   MachineInstr *OrSaveExec =
  311     MachineInstr *And =
  320   MachineInstr *Xor =
  325   MachineInstr *Branch =
  354 void SILowerControlFlow::emitIfBreak(MachineInstr &MI) {
  365     if (MachineInstr *Def = MRI->getUniqueVRegDef(MI.getOperand(1).getReg())) {
  373   MachineInstr *And = nullptr, *Or = nullptr;
  395 void SILowerControlFlow::emitLoop(MachineInstr &MI) {
  399   MachineInstr *AndN2 =
  404   MachineInstr *Branch =
  416 void SILowerControlFlow::emitEndCf(MachineInstr &MI) {
  420   MachineInstr *Def = MRI.getUniqueVRegDef(CFMask);
  426   MachineInstr *NewMI = BuildMI(MBB, InsPt, DL, TII->get(OrOpc), Exec)
  441 void SILowerControlFlow::findMaskOperands(MachineInstr &MI, unsigned OpNo,
  449   MachineInstr *Def = MRI->getUniqueVRegDef(Op.getReg());
  472 void SILowerControlFlow::combineMasks(MachineInstr &MI) {
  534       MachineInstr &MI = *I;
lib/Target/AMDGPU/SILowerI1Copies.cpp
  177       for (MachineInstr &MI : MBB->terminators()) {
  502   SmallVector<MachineInstr *, 4> DeadCopies;
  505     for (MachineInstr &MI : MBB) {
  534     for (MachineInstr *MI : DeadCopies)
  544   SmallVector<MachineInstr *, 4> Vreg1Phis;
  553     for (MachineInstr &MI : MBB.phis()) {
  560   for (MachineInstr *MI : Vreg1Phis) {
  578       MachineInstr *IncomingDef = MRI->getUniqueVRegDef(IncomingReg);
  601     for (MachineInstr &Use : MRI->use_instructions(DstReg))
  670   SmallVector<MachineInstr *, 4> DeadCopies;
  675     for (MachineInstr &MI : MBB) {
  714       for (MachineInstr &Use : MRI->use_instructions(DstReg))
  731     for (MachineInstr *MI : DeadCopies)
  738   const MachineInstr *MI;
  770 static void instrDefsUsesSCC(const MachineInstr &MI, bool &Def, bool &Use) {
lib/Target/AMDGPU/SILowerSGPRSpills.cpp
  109         MachineInstr &Inst = *std::prev(I);
  144         MachineInstr &Inst = *std::prev(I);
  272         MachineInstr &MI = *I;
lib/Target/AMDGPU/SIMachineScheduler.cpp
  315     const MachineInstr* MI = &*UI;
 1362       MachineInstr *MI = SU->getInstr();
lib/Target/AMDGPU/SIMemoryLegalizer.cpp
  400   bool isAtomicRet(const MachineInstr &MI) const {
lib/Target/AMDGPU/SIModeRegister.cpp
  111   MachineInstr *FirstInsertionPoint;
  150   Status getInstructionMode(MachineInstr &MI, const SIInstrInfo *TII);
  152   void insertSetreg(MachineBasicBlock &MBB, MachineInstr *I,
  170 Status SIModeRegister::getInstructionMode(MachineInstr &MI,
  192 void SIModeRegister::insertSetreg(MachineBasicBlock &MBB, MachineInstr *MI,
  230   MachineInstr *InsertionPoint = nullptr;
  238   for (MachineInstr &MI : MBB) {
lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
   59 static unsigned isCopyFromExec(const MachineInstr &MI, const GCNSubtarget &ST) {
   77 static unsigned isCopyToExec(const MachineInstr &MI, const GCNSubtarget &ST) {
   99 static unsigned isLogicalOpOnExec(const MachineInstr &MI) {
  180 static bool removeTerminatorBit(const SIInstrInfo &TII, MachineInstr &MI) {
  326     MachineInstr *SaveExecInst = nullptr;
  327     SmallVector<MachineInstr *, 4> OtherUseInsts;
  415     for (MachineInstr *OtherInst : OtherUseInsts) {
lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp
   85 static bool isEndCF(const MachineInstr &MI, const SIRegisterInfo *TRI,
   96 static bool isFullExecCopy(const MachineInstr& MI, const GCNSubtarget& ST) {
  107 static unsigned getOrNonExecReg(const MachineInstr &MI,
  120 static MachineInstr* getOrExecSource(const MachineInstr &MI,
  120 static MachineInstr* getOrExecSource(const MachineInstr &MI,
  207   auto *And = TRI->findReachingDef(CondReg, AMDGPU::NoSubRegister,
  224   auto *Cmp = TRI->findReachingDef(CmpReg, CmpSubReg, *And, MRI, LIS);
  238   auto *Sel = TRI->findReachingDef(SelReg, Op1->getSubReg(), *Cmp, MRI, LIS);
  258   MachineInstr *Andn2 =
  327       MachineInstr &Term = MBB.back();
  418     for (auto& U : MRI.use_nodbg_instructions(SavedExec)) {
lib/Target/AMDGPU/SIPeepholeSDWA.cpp
   76   std::unordered_map<MachineInstr *, std::unique_ptr<SDWAOperand>> SDWAOperands;
   77   std::unordered_map<MachineInstr *, SDWAOperandsVector> PotentialMatches;
   78   SmallVector<MachineInstr *, 8> ConvertedInstructions;
   91   std::unique_ptr<SDWAOperand> matchSDWAOperand(MachineInstr &MI);
   92   bool isConvertibleToSDWA(MachineInstr &MI, const GCNSubtarget &ST) const;
   93   void pseudoOpConvertToVOP2(MachineInstr &MI,
   95   bool convertToSDWA(MachineInstr &MI, const SDWAOperandsVector &SDWAOperands);
   96   void legalizeScalarOperands(MachineInstr &MI, const GCNSubtarget &ST) const;
  120   virtual MachineInstr *potentialToConvert(const SIInstrInfo *TII) = 0;
  121   virtual bool convertToSDWA(MachineInstr &MI, const SIInstrInfo *TII) = 0;
  125   MachineInstr *getParentInst() const { return Target->getParent(); }
  153   MachineInstr *potentialToConvert(const SIInstrInfo *TII) override;
  154   bool convertToSDWA(MachineInstr &MI, const SIInstrInfo *TII) override;
  180   MachineInstr *potentialToConvert(const SIInstrInfo *TII) override;
  181   bool convertToSDWA(MachineInstr &MI, const SIInstrInfo *TII) override;
  201   bool convertToSDWA(MachineInstr &MI, const SIInstrInfo *TII) override;
  321   MachineInstr *DefInstr = MRI->getUniqueVRegDef(Reg->getReg());
  337   const auto *MI = SrcOp->getParent();
  359 MachineInstr *SDWASrcOperand::potentialToConvert(const SIInstrInfo *TII) {
  369 bool SDWASrcOperand::convertToSDWA(MachineInstr &MI, const SIInstrInfo *TII) {
  443 MachineInstr *SDWADstOperand::potentialToConvert(const SIInstrInfo *TII) {
  447   MachineInstr *ParentMI = getParentInst();
  454   for (MachineInstr &UseInst : MRI->use_nodbg_instructions(PotentialMO->getReg())) {
  462 bool SDWADstOperand::convertToSDWA(MachineInstr &MI, const SIInstrInfo *TII) {
  492 bool SDWADstPreserveOperand::convertToSDWA(MachineInstr &MI,
  534       const MachineInstr *DefInst = Def.getParent();
  550 SIPeepholeSDWA::matchSDWAOperand(MachineInstr &MI) {
  738         MachineInstr *Op1Inst = Op1Def->getParent();
  766     MachineInstr *SDWAInst = OrSDWADef->getParent();
  767     MachineInstr *OtherInst = OrOtherDef->getParent();
  853   for (MachineInstr &MI : MBB) {
  880 void SIPeepholeSDWA::pseudoOpConvertToVOP2(MachineInstr &MI,
  897   MachineInstr &MISucc = *NextOp->getParent();
  937 bool SIPeepholeSDWA::isConvertibleToSDWA(MachineInstr &MI,
  989 bool SIPeepholeSDWA::convertToSDWA(MachineInstr &MI,
 1173 void SIPeepholeSDWA::legalizeScalarOperands(MachineInstr &MI,
 1226         MachineInstr *PotentialMI = Operand->potentialToConvert(TII);
 1239         MachineInstr *PotentialMI = Operand->potentialToConvert(TII);
 1246         MachineInstr &PotentialMI = *PotentialPair.first;
lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp
  122     for (MachineInstr &MI : MBB) {
  189     for (MachineInstr &MI : *MBB) {
lib/Target/AMDGPU/SIRegisterInfo.cpp
  313 int64_t SIRegisterInfo::getMUBUFInstrOffset(const MachineInstr *MI) const {
  321 int64_t SIRegisterInfo::getFrameIndexInstrOffset(const MachineInstr *MI,
  333 bool SIRegisterInfo::needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const {
  377 void SIRegisterInfo::resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
  413 bool SIRegisterInfo::isFrameOffsetLegal(const MachineInstr *MI,
 1712 bool SIRegisterInfo::shouldCoalesce(MachineInstr *MI,
 1864 MachineInstr *SIRegisterInfo::findReachingDef(unsigned Reg, unsigned SubReg,
 1865                                               MachineInstr &Use,
 1907   MachineInstr *Def = LIS->getInstructionFromIndex(DefIdx);
lib/Target/AMDGPU/SIRegisterInfo.h
   82   int64_t getMUBUFInstrOffset(const MachineInstr *MI) const;
   84   int64_t getFrameIndexInstrOffset(const MachineInstr *MI,
   87   bool needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const override;
   93   void resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
   96   bool isFrameOffsetLegal(const MachineInstr *MI, unsigned BaseReg,
  231   bool shouldCoalesce(MachineInstr *MI,
  280   MachineInstr *findReachingDef(unsigned Reg, unsigned SubReg,
  281                                 MachineInstr &Use,
lib/Target/AMDGPU/SIShrinkInstructions.cpp
   41   void shrinkMIMG(MachineInstr &MI);
   71 static bool foldImmediates(MachineInstr &MI, const SIInstrInfo *TII,
   82       MachineInstr *Def = MRI.getUniqueVRegDef(Reg);
  170 static void copyExtraImplicitOps(MachineInstr &NewMI, MachineFunction &MF,
  171                                  const MachineInstr &MI) {
  182 static void shrinkScalarCompare(const SIInstrInfo *TII, MachineInstr &MI) {
  221 void SIShrinkInstructions::shrinkMIMG(MachineInstr &MI) {
  318                                 MachineInstr &MI) {
  389 static bool instAccessReg(iterator_range<MachineInstr::const_mop_iterator> &&R,
  410 static bool instReadsReg(const MachineInstr *MI,
  416 static bool instModifiesReg(const MachineInstr *MI,
  455 static MachineInstr* matchSwap(MachineInstr &MovT, MachineRegisterInfo &MRI,
  455 static MachineInstr* matchSwap(MachineInstr &MovT, MachineRegisterInfo &MRI,
  479     MachineInstr &MovY = *YTop.getParent();
  491     MachineInstr *MovX = nullptr;
  537     MachineInstr *Next = &*std::next(MovT.getIterator());
  567       MachineInstr &MI = *I;
  592         if (auto *NextMI = matchSwap(MI, MRI, TII)) {
  609         MachineInstr &NextMI = *Next;
  785       MachineInstr *Inst32 = TII->buildShrunkInst(MI, Op32);
lib/Target/AMDGPU/SIWholeQuadMode.cpp
  139   MachineInstr *MI = nullptr;
  143   WorkItem(MachineInstr *MI) : MI(MI) {}
  155   DenseMap<const MachineInstr *, InstrInfo> Instructions;
  157   SmallVector<MachineInstr *, 1> LiveMaskQueries;
  158   SmallVector<MachineInstr *, 4> LowerToCopyInstrs;
  162   void markInstruction(MachineInstr &MI, char Flag,
  164   void markInstructionUses(const MachineInstr &MI, char Flag,
  167   void propagateInstruction(MachineInstr &MI, std::vector<WorkItem> &Worklist);
  171   bool requiresCorrectState(const MachineInstr &MI) const;
  236     for (const MachineInstr &MI : *BII.first) {
  248 void SIWholeQuadMode::markInstruction(MachineInstr &MI, char Flag,
  270 void SIWholeQuadMode::markInstructionUses(const MachineInstr &MI, char Flag,
  303     for (MachineInstr &DefMI : MRI->def_instructions(Use.getReg()))
  314   SmallVector<MachineInstr *, 4> SetInactiveInstrs;
  315   SmallVector<MachineInstr *, 4> SoftWQMInstrs;
  327       MachineInstr &MI = *II;
  366               for (MachineInstr &DefMI : MRI->def_instructions(Reg))
  417     for (MachineInstr *MI : SetInactiveInstrs)
  419     for (MachineInstr *MI : SoftWQMInstrs)
  426 void SIWholeQuadMode::propagateInstruction(MachineInstr &MI,
  450   if (MachineInstr *PrevMI = MI.getPrevNode()) {
  479     MachineInstr *LastMI = &*MBB.rbegin();
  531 bool SIWholeQuadMode::requiresCorrectState(const MachineInstr &MI) const {
  561   MachineInstr *Save =
  564   MachineInstr *Restore =
  613   if (MachineInstr *MI = LIS->getInstructionFromIndex(Idx))
  629   MachineInstr *MI;
  651   MachineInstr *MI;
  670   MachineInstr *MI;
  681   MachineInstr *MI;
  740       MachineInstr &MI = *II;
  841   for (MachineInstr *MI : LiveMaskQueries) {
  844     MachineInstr *Copy =
  854   for (MachineInstr *MI : LowerToCopyInstrs) {
  904       MachineInstr *MI = BuildMI(Entry, EntryMI, DebugLoc(),
lib/Target/ARC/ARCAsmPrinter.cpp
   44   void EmitInstruction(const MachineInstr *MI) override;
   49 void ARCAsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/ARC/ARCBranchFinalize.cpp
   50   void replaceWithBRcc(MachineInstr *MI) const;
   51   void replaceWithCmpBcc(MachineInstr *MI) const;
   94 static bool isBRccPseudo(MachineInstr *MI) {
   99 static unsigned getBRccForPseudo(MachineInstr *MI) {
  106 static unsigned getCmpForPseudo(MachineInstr *MI) {
  113 void ARCBranchFinalize::replaceWithBRcc(MachineInstr *MI) const {
  129 void ARCBranchFinalize::replaceWithCmpBcc(MachineInstr *MI) const {
  145   std::vector<MachineInstr *> Branches;
  150   std::vector<std::pair<MachineInstr *, unsigned>> BranchToPCList;
  155     for (auto &MI : MBB) {
lib/Target/ARC/ARCExpandPseudos.cpp
   61   MachineInstr &SI = *SII;
lib/Target/ARC/ARCFrameLowering.cpp
  203       .setMIFlags(MachineInstr::FrameSetup);
  211         .setMIFlags(MachineInstr::FrameSetup);
  220         .setMIFlags(MachineInstr::FrameSetup);
  233         .setMIFlags(MachineInstr::FrameSetup);
  474   MachineInstr &Old = *I;
lib/Target/ARC/ARCInstrInfo.cpp
   68 unsigned ARCInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
   87 unsigned ARCInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  233           MachineInstr &InstToDelete = *DI;
  403 unsigned ARCInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
  412 bool ARCInstrInfo::isPostIncrement(const MachineInstr &MI) const {
  418 bool ARCInstrInfo::isPreIncrement(const MachineInstr &MI) const {
  424 bool ARCInstrInfo::getBaseAndOffsetPosition(const MachineInstr &MI,
lib/Target/ARC/ARCInstrInfo.h
   40   unsigned isLoadFromStackSlot(const MachineInstr &MI,
   48   unsigned isStoreToStackSlot(const MachineInstr &MI,
   51   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
   85   bool isPostIncrement(const MachineInstr &MI) const override;
   88   bool isPreIncrement(const MachineInstr &MI) const;
   90   virtual bool getBaseAndOffsetPosition(const MachineInstr &MI,
lib/Target/ARC/ARCMCInstLower.cpp
  104 void ARCMCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
lib/Target/ARC/ARCMCInstLower.h
   33   void Lower(const MachineInstr *MI, MCInst &OutMI) const;
lib/Target/ARC/ARCOptAddrMode.cpp
   65   MachineInstr *tryToCombine(MachineInstr &Ldst);
   65   MachineInstr *tryToCombine(MachineInstr &Ldst);
   68   bool noUseOfAddBeforeLoadOrStore(const MachineInstr *Add,
   69                                    const MachineInstr *Ldst);
   73   bool canHoistLoadStoreTo(MachineInstr *Ldst, MachineInstr *To);
   73   bool canHoistLoadStoreTo(MachineInstr *Ldst, MachineInstr *To);
   77   bool canSinkLoadStoreTo(MachineInstr *Ldst, MachineInstr *To);
   77   bool canSinkLoadStoreTo(MachineInstr *Ldst, MachineInstr *To);
   83   MachineInstr *canJoinInstructions(MachineInstr *Ldst, MachineInstr *Add,
   83   MachineInstr *canJoinInstructions(MachineInstr *Ldst, MachineInstr *Add,
   83   MachineInstr *canJoinInstructions(MachineInstr *Ldst, MachineInstr *Add,
   84                                     SmallVectorImpl<MachineInstr *> *Uses);
   88   bool canFixPastUses(const ArrayRef<MachineInstr *> &Uses,
   93   void fixPastUses(ArrayRef<MachineInstr *> Uses, unsigned BaseReg,
   99   void changeToAddrMode(MachineInstr &Ldst, unsigned NewOpcode,
  122 static bool isAddConstantOp(const MachineInstr &MI, int64_t &Amount) {
  138 static bool dominatesAllUsesOf(const MachineInstr *MI, unsigned VReg,
  146     MachineInstr *User = it->getParent();
  169                                                  const MachineInstr &MI,
  181 bool ARCOptAddrMode::noUseOfAddBeforeLoadOrStore(const MachineInstr *Add,
  182                                                  const MachineInstr *Ldst) {
  187 MachineInstr *ARCOptAddrMode::tryToCombine(MachineInstr &Ldst) {
  187 MachineInstr *ARCOptAddrMode::tryToCombine(MachineInstr &Ldst) {
  219   for (auto &Add : MRI->use_nodbg_instructions(B)) {
  226     SmallVector<MachineInstr *, 8> Uses;
  227     MachineInstr *MoveTo = canJoinInstructions(&Ldst, &Add, &Uses);
  242     MachineInstr *Result = Ldst.getNextNode();
  263 MachineInstr *
  264 ARCOptAddrMode::canJoinInstructions(MachineInstr *Ldst, MachineInstr *Add,
  264 ARCOptAddrMode::canJoinInstructions(MachineInstr *Ldst, MachineInstr *Add,
  265                                     SmallVectorImpl<MachineInstr *> *Uses) {
  268   MachineInstr *First = Add;
  269   MachineInstr *Last = Ldst;
  302   SmallVector<MachineInstr *, 4> UsesAfterLdst;
  303   SmallVector<MachineInstr *, 4> UsesAfterAdd;
  304   for (MachineInstr &MI : MRI->use_nodbg_instructions(BaseReg)) {
  315   MachineInstr *Result = nullptr;
  341 bool ARCOptAddrMode::canFixPastUses(const ArrayRef<MachineInstr *> &Uses,
  346   for (MachineInstr *MI : Uses) {
  362 void ARCOptAddrMode::fixPastUses(ArrayRef<MachineInstr *> Uses,
  365   for (MachineInstr *MI : Uses) {
  388 bool ARCOptAddrMode::canHoistLoadStoreTo(MachineInstr *Ldst, MachineInstr *To) {
  388 bool ARCOptAddrMode::canHoistLoadStoreTo(MachineInstr *Ldst, MachineInstr *To) {
  408     MachineInstr *OpDef = MRI->getVRegDef(O.getReg());
  415 bool ARCOptAddrMode::canSinkLoadStoreTo(MachineInstr *Ldst, MachineInstr *To) {
  415 bool ARCOptAddrMode::canSinkLoadStoreTo(MachineInstr *Ldst, MachineInstr *To) {
  440 void ARCOptAddrMode::changeToAddrMode(MachineInstr &Ldst, unsigned NewOpcode,
  476     MachineInstr *Res = tryToCombine(*MI);
lib/Target/ARC/ARCRegisterInfo.cpp
   43   MachineInstr &MI = *II;
  169   MachineInstr &MI = *II;
lib/Target/ARM/A15SDOptimizer.cpp
   61     bool runOnInstruction(MachineInstr *MI);
   98     bool hasPartialWrite(MachineInstr *MI);
  106     MachineInstr *elideCopies(MachineInstr *MI);
  106     MachineInstr *elideCopies(MachineInstr *MI);
  107     void elideCopiesAndPHIs(MachineInstr *MI,
  108                             SmallVectorImpl<MachineInstr*> &Outs);
  113     unsigned optimizeAllLanesPattern(MachineInstr *MI, unsigned Reg);
  114     unsigned optimizeSDPattern(MachineInstr *MI);
  120     void eraseInstrWithNoUses(MachineInstr *MI);
  125     std::map<MachineInstr*, unsigned> Replacements;
  126     std::set<MachineInstr *> DeadInstr;
  157   MachineInstr *MI = MRI->getVRegDef(SReg);
  178 void A15SDOptimizer::eraseInstrWithNoUses(MachineInstr *MI) {
  179   SmallVector<MachineInstr *, 8> Front;
  202       MachineInstr *Def = Op->getParent();
  221         for (MachineInstr &Use : MRI->use_instructions(Reg)) {
  242 unsigned A15SDOptimizer::optimizeSDPattern(MachineInstr *MI) {
  252       MachineInstr *DPRMI = MRI->getVRegDef(MI->getOperand(1).getReg());
  253       MachineInstr *SPRMI = MRI->getVRegDef(MI->getOperand(2).getReg());
  257         MachineInstr *ECDef = elideCopies(DPRMI);
  262           MachineInstr *EC = elideCopies(SPRMI);
  304       MachineInstr *Def = MRI->getVRegDef(OpReg);
  324 bool A15SDOptimizer::hasPartialWrite(MachineInstr *MI) {
  342 MachineInstr *A15SDOptimizer::elideCopies(MachineInstr *MI) {
  342 MachineInstr *A15SDOptimizer::elideCopies(MachineInstr *MI) {
  347   MachineInstr *Def = MRI->getVRegDef(MI->getOperand(1).getReg());
  355 void A15SDOptimizer::elideCopiesAndPHIs(MachineInstr *MI,
  356                                         SmallVectorImpl<MachineInstr*> &Outs) {
  359    std::set<MachineInstr *> Reached;
  360    SmallVector<MachineInstr *, 8> Front;
  376          MachineInstr *NewMI = MRI->getVRegDef(Reg);
  384        MachineInstr *NewMI = MRI->getVRegDef(MI->getOperand(1).getReg());
  509 A15SDOptimizer::optimizeAllLanesPattern(MachineInstr *MI, unsigned Reg) {
  564 bool A15SDOptimizer::runOnInstruction(MachineInstr *MI) {
  604     SmallVector<MachineInstr *, 8> DefSrcs;
  607     MachineInstr *Def = MRI->getVRegDef(*I);
  613     for (MachineInstr *MI : DefSrcs) {
  676     for (MachineInstr &MI : MBB) {
  681   for (MachineInstr *MI : DeadInstr) {
lib/Target/ARM/ARM.h
   58 void LowerARMMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
lib/Target/ARM/ARMAsmPrinter.cpp
  199 void ARMAsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
  262 bool ARMAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
  436 bool ARMAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
  937 void ARMAsmPrinter::EmitJumpTableAddrs(const MachineInstr *MI) {
  983 void ARMAsmPrinter::EmitJumpTableInsts(const MachineInstr *MI) {
 1011 void ARMAsmPrinter::EmitJumpTableTBInst(const MachineInstr *MI,
 1064 void ARMAsmPrinter::EmitUnwindingInstruction(const MachineInstr *MI) {
 1238 void ARMAsmPrinter::EmitInstruction(const MachineInstr *MI) {
 1255        MI->getFlag(MachineInstr::FrameSetup))
lib/Target/ARM/ARMAsmPrinter.h
   76   void printOperand(const MachineInstr *MI, int OpNum, raw_ostream &O);
   79   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
   81   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum,
   87   void EmitJumpTableAddrs(const MachineInstr *MI);
   88   void EmitJumpTableInsts(const MachineInstr *MI);
   89   void EmitJumpTableTBInst(const MachineInstr *MI, unsigned OffsetWidth);
   90   void EmitInstruction(const MachineInstr *MI) override;
  113   void LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI);
  114   void LowerPATCHABLE_FUNCTION_EXIT(const MachineInstr &MI);
  115   void LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI);
  118   void EmitSled(const MachineInstr &MI, SledKind Kind);
  124   void EmitPatchedInstruction(const MachineInstr *MI, unsigned TargetOpc);
  126   void EmitUnwindingInstruction(const MachineInstr *MI);
  130                                    const MachineInstr *MI);
lib/Target/ARM/ARMBaseInstrInfo.cpp
  141 MachineInstr *ARMBaseInstrInfo::convertToThreeAddress(
  166   MachineInstr *UpdateMI = nullptr;
  167   MachineInstr *MemMI = nullptr;
  238   std::vector<MachineInstr*> NewMIs;
  284           MachineInstr *NewMI = (Reg == WBReg) ? UpdateMI : MemMI;
  291             MachineInstr *NewMI = NewMIs[j];
  380           MachineInstr &InstToDelete = *DI;
  482 bool ARMBaseInstrInfo::isPredicated(const MachineInstr &MI) const {
  499     MachineInstr &MI, ArrayRef<MachineOperand> Pred) const {
  546     MachineInstr &MI, std::vector<MachineOperand> &Pred) const {
  560 bool ARMBaseInstrInfo::isCPSRDefined(const MachineInstr &MI) {
  567 bool ARMBaseInstrInfo::isAddrMode3OpImm(const MachineInstr &MI,
  575 bool ARMBaseInstrInfo::isAddrMode3OpMinusReg(const MachineInstr &MI,
  587 bool ARMBaseInstrInfo::isLdstScaledReg(const MachineInstr &MI,
  595 bool ARMBaseInstrInfo::isLdstScaledRegNotPlusLsl2(const MachineInstr &MI,
  609 bool ARMBaseInstrInfo::isLdstSoMinusReg(const MachineInstr &MI,
  616 bool ARMBaseInstrInfo::isAm2ScaledReg(const MachineInstr &MI,
  622 static bool isEligibleForITBlock(const MachineInstr *MI) {
  654 bool ARMBaseInstrInfo::isPredicable(const MachineInstr &MI) const {
  682 template <> bool IsCPSRDead<MachineInstr>(const MachineInstr *MI) {
  682 template <> bool IsCPSRDead<MachineInstr>(const MachineInstr *MI) {
  700 unsigned ARMBaseInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
  757 unsigned ARMBaseInstrInfo::getInstBundleLength(const MachineInstr &MI) const {
  996 bool ARMBaseInstrInfo::isCopyInstrImpl(const MachineInstr &MI,
 1205 unsigned ARMBaseInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
 1255 unsigned ARMBaseInstrInfo::isStoreToStackSlotPostFE(const MachineInstr &MI,
 1442 unsigned ARMBaseInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
 1498 unsigned ARMBaseInstrInfo::isLoadFromStackSlotPostFE(const MachineInstr &MI,
 1567 bool ARMBaseInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
 1700     MachineInstr *MI = MBB.getParent()->CloneMachineInstr(&Orig);
 1719 MachineInstr &
 1723   MachineInstr &Cloned = TargetInstrInfo::duplicate(MBB, InsertBefore, Orig);
 1744 bool ARMBaseInstrInfo::produceSameValue(const MachineInstr &MI0,
 1745                                         const MachineInstr &MI1,
 1809       MachineInstr *Def0 = MRI->getVRegDef(Addr0);
 1810       MachineInstr *Def1 = MRI->getVRegDef(Addr1);
 1827   return MI0.isIdenticalTo(MI1, MachineInstr::IgnoreVRegDefs);
 1949 bool ARMBaseInstrInfo::isSchedulingBoundary(const MachineInstr &MI,
 2005       MachineInstr *LastMI = &*Pred->rbegin();
 2008         MachineInstr *CmpMI = findCMPToFoldIntoCBZ(LastMI, TRI);
 2092 ARMBaseInstrInfo::predictBranchSizeForIfCvt(MachineInstr &MI) const {
 2125 ARMCC::CondCodes llvm::getInstrPredicate(const MachineInstr &MI,
 2148 MachineInstr *ARMBaseInstrInfo::commuteInstructionImpl(MachineInstr &MI,
 2148 MachineInstr *ARMBaseInstrInfo::commuteInstructionImpl(MachineInstr &MI,
 2161     MachineInstr *CommutedMI =
 2176 MachineInstr *
 2183   MachineInstr *MI = MRI.getVRegDef(Reg);
 2212 bool ARMBaseInstrInfo::analyzeSelect(const MachineInstr &MI,
 2233 MachineInstr *
 2234 ARMBaseInstrInfo::optimizeSelect(MachineInstr &MI,
 2235                                  SmallPtrSetImpl<MachineInstr *> &SeenMIs,
 2240   MachineInstr *DefMI = canFoldIntoMOVCC(MI.getOperand(2).getReg(), MRI, this);
 2399                                       MachineFunction &MF, MachineInstr *MI,
 2520 bool llvm::rewriteARMFrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
 2677 bool ARMBaseInstrInfo::analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
 2714 static bool isSuitableForMask(MachineInstr *&MI, unsigned SrcReg,
 2767 inline static bool isRedundantFlagInstr(const MachineInstr *CmpI,
 2769                                         int ImmValue, const MachineInstr *OI,
 2828 static bool isOptimizeCompareCandidate(MachineInstr *MI, bool &IsThumb1) {
 2904     MachineInstr &CmpInstr, unsigned SrcReg, unsigned SrcReg2, int CmpMask,
 2907   MachineInstr *MI = MRI->getUniqueVRegDef(SrcReg);
 2919         MachineInstr *PotentialAND = &*UI;
 2942   MachineInstr *SubAdd = nullptr;
 3000     const MachineInstr &Instr = *--I;
 3055     const MachineInstr &Instr = *I;
 3183 bool ARMBaseInstrInfo::shouldSink(const MachineInstr &MI) const {
 3201 bool ARMBaseInstrInfo::FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
 3201 bool ARMBaseInstrInfo::FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
 3333                                         const MachineInstr &MI) {
 3580 unsigned ARMBaseInstrInfo::getNumLDMAddresses(const MachineInstr &MI) const {
 3582   for (MachineInstr::mmo_iterator I = MI.memoperands_begin(),
 3635                                           const MachineInstr &MI) const {
 3788 bool ARMBaseInstrInfo::isLDMBaseRegInList(const MachineInstr &MI) const {
 3798 ARMBaseInstrInfo::getLDMVariableDefsSize(const MachineInstr &MI) const {
 4020 static const MachineInstr *getBundledDefMI(const TargetRegisterInfo *TRI,
 4021                                            const MachineInstr *MI, unsigned Reg,
 4043 static const MachineInstr *getBundledUseMI(const TargetRegisterInfo *TRI,
 4044                                            const MachineInstr &MI, unsigned Reg,
 4076                             const MachineInstr &DefMI,
 4254                                         const MachineInstr &DefMI,
 4256                                         const MachineInstr &UseMI,
 4265   const MachineInstr *ResolvedDefMI = &DefMI;
 4275   const MachineInstr *ResolvedUseMI = &UseMI;
 4290     const InstrItineraryData *ItinData, const MachineInstr &DefMI,
 4292     const MachineOperand &DefMO, unsigned Reg, const MachineInstr &UseMI,
 4606 unsigned ARMBaseInstrInfo::getPredicationCost(const MachineInstr &MI) const {
 4626                                            const MachineInstr &MI,
 4696                                              const MachineInstr &DefMI,
 4698                                              const MachineInstr &UseMI,
 4716                                         const MachineInstr &DefMI,
 4731 bool ARMBaseInstrInfo::verifyInstruction(const MachineInstr &MI,
 4838 ARMBaseInstrInfo::getExecutionDomain(const MachineInstr &MI) const {
 4902                                        MachineInstr &MI, unsigned DReg,
 4928 void ARMBaseInstrInfo::setExecutionDomain(MachineInstr &MI,
 5137     const MachineInstr &MI, unsigned OpNum,
 5198     MachineInstr &MI, unsigned OpNum, const TargetRegisterInfo *TRI) const {
 5235 bool ARMBaseInstrInfo::isSwiftFastImmShift(const MachineInstr *MI) const {
 5250     const MachineInstr &MI, unsigned DefIdx,
 5277     const MachineInstr &MI, unsigned DefIdx,
 5300     const MachineInstr &MI, unsigned DefIdx, RegSubRegPair &BaseReg,
 5363 MachineInstr *llvm::findCMPToFoldIntoCBZ(MachineInstr *Br,
 5363 MachineInstr *llvm::findCMPToFoldIntoCBZ(MachineInstr *Br,
lib/Target/ARM/ARMBaseInstrInfo.h
   59       const MachineInstr &MI, unsigned DefIdx,
   72   bool getExtractSubregLikeInputs(const MachineInstr &MI, unsigned DefIdx,
   88   getInsertSubregLikeInputs(const MachineInstr &MI, unsigned DefIdx,
   99   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
   99   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  106   bool isCopyInstrImpl(const MachineInstr &MI, const MachineOperand *&Source,
  117   MachineInstr *convertToThreeAddress(MachineFunction::iterator &MFI,
  148   bool isPredicated(const MachineInstr &MI) const override;
  150   ARMCC::CondCodes getPredicate(const MachineInstr &MI) const {
  156   bool PredicateInstruction(MachineInstr &MI,
  162   bool DefinesPredicate(MachineInstr &MI,
  165   bool isPredicable(const MachineInstr &MI) const override;
  168   static bool isCPSRDefined(const MachineInstr &MI);
  169   bool isAddrMode3OpImm(const MachineInstr &MI, unsigned Op) const;
  170   bool isAddrMode3OpMinusReg(const MachineInstr &MI, unsigned Op) const;
  173   bool isLdstScaledReg(const MachineInstr &MI, unsigned Op) const;
  175   bool isLdstScaledRegNotPlusLsl2(const MachineInstr &MI, unsigned Op) const;
  177   bool isLdstSoMinusReg(const MachineInstr &MI, unsigned Op) const;
  179   bool isAm2ScaledReg(const MachineInstr &MI, unsigned Op) const;
  181   bool isLDMBaseRegInList(const MachineInstr &MI) const;
  183   unsigned getLDMVariableDefsSize(const MachineInstr &MI) const;
  187   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
  189   unsigned isLoadFromStackSlot(const MachineInstr &MI,
  191   unsigned isStoreToStackSlot(const MachineInstr &MI,
  193   unsigned isLoadFromStackSlotPostFE(const MachineInstr &MI,
  195   unsigned isStoreToStackSlotPostFE(const MachineInstr &MI,
  221   bool expandPostRAPseudo(MachineInstr &MI) const override;
  223   bool shouldSink(const MachineInstr &MI) const override;
  230   MachineInstr &
  238   bool produceSameValue(const MachineInstr &MI0, const MachineInstr &MI1,
  238   bool produceSameValue(const MachineInstr &MI0, const MachineInstr &MI1,
  261   bool isSchedulingBoundary(const MachineInstr &MI,
  281   unsigned predictBranchSizeForIfCvt(MachineInstr &MI) const override;
  290   bool analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  298   bool optimizeCompareInstr(MachineInstr &CmpInstr, unsigned SrcReg,
  302   bool analyzeSelect(const MachineInstr &MI,
  306   MachineInstr *optimizeSelect(MachineInstr &MI,
  306   MachineInstr *optimizeSelect(MachineInstr &MI,
  307                                SmallPtrSetImpl<MachineInstr *> &SeenMIs,
  312   bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, unsigned Reg,
  312   bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, unsigned Reg,
  316                           const MachineInstr &MI) const override;
  319                         const MachineInstr &DefMI, unsigned DefIdx,
  320                         const MachineInstr &UseMI,
  328   getExecutionDomain(const MachineInstr &MI) const override;
  329   void setExecutionDomain(MachineInstr &MI, unsigned Domain) const override;
  332   getPartialRegUpdateClearance(const MachineInstr &, unsigned,
  334   void breakPartialRegDependency(MachineInstr &, unsigned,
  338   unsigned getNumLDMAddresses(const MachineInstr &MI) const;
  348   unsigned getInstBundleLength(const MachineInstr &MI) const;
  373                             const MachineInstr &DefMI, unsigned DefIdx,
  376                             const MachineInstr &UseMI, unsigned UseIdx,
  379   unsigned getPredicationCost(const MachineInstr &MI) const override;
  382                            const MachineInstr &MI,
  390                              const MachineInstr &DefMI, unsigned DefIdx,
  391                              const MachineInstr &UseMI,
  394                         const MachineInstr &DefMI,
  398   bool verifyInstruction(const MachineInstr &MI,
  407   MachineInstr *canFoldIntoMOVCC(unsigned Reg, const MachineRegisterInfo &MRI,
  444   bool isSwiftFastImmShift(const MachineInstr *MI) const;
  447   unsigned getFramePred(const MachineInstr &MI) const {
  556 ARMCC::CondCodes getInstrPredicate(const MachineInstr &MI, unsigned &PredReg);
  595                                 MachineFunction &MF, MachineInstr *MI,
  602 bool rewriteARMFrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
  606 bool rewriteT2FrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
  618 MachineInstr *findCMPToFoldIntoCBZ(MachineInstr *Br,
  618 MachineInstr *findCMPToFoldIntoCBZ(MachineInstr *Br,
lib/Target/ARM/ARMBaseRegisterInfo.cpp
  498 getFrameIndexInstrOffset(const MachineInstr *MI, int Idx) const {
  549 needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const {
  655 void ARMBaseRegisterInfo::resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
  683 bool ARMBaseRegisterInfo::isFrameOffsetLegal(const MachineInstr *MI, unsigned BaseReg,
  752   MachineInstr &MI = *II;
  836 bool ARMBaseRegisterInfo::shouldCoalesce(MachineInstr *MI,
lib/Target/ARM/ARMBaseRegisterInfo.h
  165   int64_t getFrameIndexInstrOffset(const MachineInstr *MI,
  167   bool needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const override;
  171   void resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
  173   bool isFrameOffsetLegal(const MachineInstr *MI, unsigned BaseReg,
  190                     unsigned MIFlags = MachineInstr::NoFlags) const;
  206   bool shouldCoalesce(MachineInstr *MI,
lib/Target/ARM/ARMBasicBlockInfo.cpp
   30 mayOptimizeThumb2Instruction(const MachineInstr *MI) {
   54   for (MachineInstr &I : *MBB) {
   75 unsigned ARMBasicBlockUtils::getOffsetOf(MachineInstr *MI) const {
   93 bool ARMBasicBlockUtils::isBBInRange(MachineInstr *MI,
lib/Target/ARM/ARMBasicBlockInfo.h
  132   unsigned getOffsetOf(MachineInstr *MI) const;
  144   bool isBBInRange(MachineInstr *MI, MachineBasicBlock *DestBB,
lib/Target/ARM/ARMConstantIslandPass.cpp
  129       MachineInstr *MI;
  130       MachineInstr *CPEMI;
  137       CPUser(MachineInstr *mi, MachineInstr *cpemi, unsigned maxdisp,
  137       CPUser(MachineInstr *mi, MachineInstr *cpemi, unsigned maxdisp,
  159       MachineInstr *CPEMI;
  163       CPEntry(MachineInstr *cpemi, unsigned cpi, unsigned rc = 0)
  191       MachineInstr *MI;
  196       ImmBranch(MachineInstr *mi, unsigned maxdisp, bool cond, unsigned ubr)
  204     SmallVector<MachineInstr*, 4> PushPopMIs;
  207     SmallVector<MachineInstr*, 4> T2JumpTables;
  246     void doInitialConstPlacement(std::vector<MachineInstr *> &CPEMIs);
  247     void doInitialJumpTablePlacement(std::vector<MachineInstr *> &CPEMIs);
  249     CPEntry *findConstPoolEntry(unsigned CPI, const MachineInstr *CPEMI);
  250     Align getCPEAlign(const MachineInstr *CPEMI);
  252     void initializeFunctionInfo(const std::vector<MachineInstr*> &CPEMIs);
  253     MachineBasicBlock *splitBlockBeforeInstr(MachineInstr *MI);
  255     bool decrementCPEReferenceCount(unsigned CPI, MachineInstr* CPEMI);
  256     unsigned getCombinedIndex(const MachineInstr *CPEMI);
  263     void removeDeadCPEMI(MachineInstr *CPEMI);
  265     bool isCPEntryInRange(MachineInstr *MI, unsigned UserOffset,
  266                           MachineInstr *CPEMI, unsigned Disp, bool NegOk,
  277     bool preserveBaseRegister(MachineInstr *JumpMI, MachineInstr *LEAMI,
  277     bool preserveBaseRegister(MachineInstr *JumpMI, MachineInstr *LEAMI,
  387   std::vector<MachineInstr*> CPEMIs;
  491 ARMConstantIslands::doInitialConstPlacement(std::vector<MachineInstr*> &CPEMIs) {
  530     MachineInstr *CPEMI =
  556     std::vector<MachineInstr *> &CPEMIs) {
  598     MachineInstr *CPEMI = BuildMI(*JumpTableBB, JumpTableBB->begin(),
  640                                        const MachineInstr *CPEMI) {
  653 Align ARMConstantIslands::getCPEAlign(const MachineInstr *CPEMI) {
  679     for (MachineInstr &I : MBB)
  690 initializeFunctionInfo(const std::vector<MachineInstr*> &CPEMIs) {
  708     for (MachineInstr &I : MBB) {
  842           MachineInstr *CPEMI = CPEMIs[CPI];
  886 MachineBasicBlock *ARMConstantIslands::splitBlockBeforeInstr(MachineInstr *MI) {
  893   for (MachineInstr &LiveMI : make_range(OrigBB->rbegin(), LivenessEnd))
 1061 bool ARMConstantIslands::isCPEntryInRange(MachineInstr *MI, unsigned UserOffset,
 1062                                       MachineInstr *CPEMI, unsigned MaxDisp,
 1093   MachineInstr *PredMI = &Pred->back();
 1106                                                     MachineInstr *CPEMI) {
 1119 unsigned ARMConstantIslands::getCombinedIndex(const MachineInstr *CPEMI) {
 1133   MachineInstr *UserMI = U.MI;
 1134   MachineInstr *CPEMI  = U.CPEMI;
 1269   MachineInstr *UserMI = U.MI;
 1270   MachineInstr *CPEMI  = U.CPEMI;
 1384   MachineInstr *LastIT = nullptr;
 1450   MachineInstr *UserMI = U.MI;
 1451   MachineInstr *CPEMI  = U.CPEMI;
 1558 void ARMConstantIslands::removeDeadCPEMI(MachineInstr *CPEMI) {
 1604   MachineInstr *MI = Br.MI;
 1622   MachineInstr *MI = Br.MI;
 1649   MachineInstr *MI = Br.MI;
 1667   MachineInstr *BMI = &MBB->back();
 1744     MachineInstr *MI = PushPopMIs[i];
 1857     MachineInstr* MI = nullptr;
 1891     MachineInstr *CmpMI = findCMPToFoldIntoCBZ(Br.MI, TRI);
 1972     MachineInstr *NewBR =
 1988       MachineInstr *LastMI = &MBB->back();
 2002 static bool isSimpleIndexCalc(MachineInstr &I, unsigned EntryReg,
 2023 bool ARMConstantIslands::preserveBaseRegister(MachineInstr *JumpMI,
 2024                                               MachineInstr *LEAMI,
 2052   MachineInstr *RemovableAdd = nullptr;
 2109 static bool jumpTableFollowsTB(MachineInstr *JTMI, MachineInstr *CPEMI) {
 2109 static bool jumpTableFollowsTB(MachineInstr *JTMI, MachineInstr *CPEMI) {
 2118 static void RemoveDeadAddBetweenLEAAndJT(MachineInstr *LEAMI,
 2119                                          MachineInstr *JumpMI,
 2124   MachineInstr *RemovableAdd = nullptr;
 2168     MachineInstr *MI = T2JumpTables[i];
 2226       MachineInstr *Shift = User.MI->getPrevNode();
 2240       MachineInstr *Load = User.MI->getNextNode();
 2260         MachineInstr *Add = Load->getNextNode();
 2289     MachineInstr *CPEMI = User.CPEMI;
 2295     MachineInstr *NewJTMI =
 2362     MachineInstr *MI = T2JumpTables[i];
lib/Target/ARM/ARMExpandPseudoInsts.cpp
   61     void TransferImpOps(MachineInstr &OldMI,
   91 void ARMExpandPseudo::TransferImpOps(MachineInstr &OldMI,
  470   MachineInstr &MI = *MBBI;
  581   MachineInstr &MI = *MBBI;
  657   MachineInstr &MI = *MBBI;
  748   MachineInstr &MI = *MBBI;
  828   MachineInstr &MI = *MBBI;
  933   MachineInstr &MI = *MBBI;
 1052   MachineInstr &MI = *MBBI;
 1156   MachineInstr &MI = *MBBI;
lib/Target/ARM/ARMFastISel.cpp
  159     bool tryToFoldLoadIntoMI(MachineInstr *MI, unsigned OpNo,
  237     bool isARMNEONPred(const MachineInstr *MI);
  238     bool DefinesOptionalPredicate(MachineInstr *MI, bool *CPSR);
  250 bool ARMFastISel::DefinesOptionalPredicate(MachineInstr *MI, bool *CPSR) {
  263 bool ARMFastISel::isARMNEONPred(const MachineInstr *MI) {
  285   MachineInstr *MI = &*MIB;
 2909 bool ARMFastISel::tryToFoldLoadIntoMI(MachineInstr *MI, unsigned OpNo,
lib/Target/ARM/ARMFeatures.h
   24 inline bool isV8EligibleForIT(const InstrType *Instr) {
lib/Target/ARM/ARMFrameLowering.cpp
  145 static bool isCSRestore(MachineInstr &MI, const ARMBaseInstrInfo &TII,
  169     unsigned SrcReg, int NumBytes, unsigned MIFlags = MachineInstr::NoFlags,
  182                          unsigned MIFlags = MachineInstr::NoFlags,
  189 static int sizeOfSPAdjustment(const MachineInstr &MI) {
  265               .setMIFlags(MachineInstr::FrameSetup);
  398                  MachineInstr::FrameSetup);
  406                    MachineInstr::FrameSetup);
  492                    MachineInstr::FrameSetup);
  524           .setMIFlags(MachineInstr::FrameSetup)
  529         .setMIFlags(MachineInstr::FrameSetup);
  541           .setMIFlags(MachineInstr::FrameSetup);
  546         .setMIFlags(MachineInstr::FrameSetup);
  552           .setMIFlags(MachineInstr::FrameSetup);
  559         .setMIFlags(MachineInstr::FrameSetup)
  572                    MachineInstr::FrameSetup);
  600                          MachineInstr::FrameSetup);
  607           .setMIFlags(MachineInstr::FrameSetup);
  614           .setMIFlags(MachineInstr::FrameSetup);
  649             .setMIFlags(MachineInstr::FrameSetup);
  673               .setMIFlags(MachineInstr::FrameSetup);
  695             .setMIFlags(MachineInstr::FrameSetup);
 1441                MachineInstr::FrameSetup);
 1443                MachineInstr::FrameSetup);
 1445                NumAlignedDPRCS2Regs, MachineInstr::FrameSetup);
 1514     for (auto &MI : MBB) {
 2154     MachineInstr &Old = *I;
 2176         emitSPUpdate(isARM, MBB, I, dl, TII, -Amount, MachineInstr::NoFlags,
 2180         emitSPUpdate(isARM, MBB, I, dl, TII, Amount, MachineInstr::NoFlags,
lib/Target/ARM/ARMHazardRecognizer.cpp
   18 static bool hasRAWHazard(MachineInstr *DefMI, MachineInstr *MI,
   18 static bool hasRAWHazard(MachineInstr *DefMI, MachineInstr *MI,
   37   MachineInstr *MI = SU->getInstr();
   44       MachineInstr *DefMI = LastMI;
   82   MachineInstr *MI = SU->getInstr();
lib/Target/ARM/ARMHazardRecognizer.h
   30   MachineInstr *LastMI;
lib/Target/ARM/ARMISelLowering.cpp
 2517     MachineInstr *Def = MRI->getVRegDef(VR);
 9336 void ARMTargetLowering::SetupEntryBlockForSjLj(MachineInstr &MI,
 9464 void ARMTargetLowering::EmitSjLjDispatchBlock(MachineInstr &MI,
 9840       for (MachineInstr::mop_iterator
10008 ARMTargetLowering::EmitStructByval(MachineInstr &MI,
10255 ARMTargetLowering::EmitLowered__chkstk(MachineInstr &MI,
10321       .setMIFlags(MachineInstr::FrameSetup)
10330 ARMTargetLowering::EmitLowered__dbzchk(MachineInstr &MI,
10372     const MachineInstr& mi = *miI;
10398 ARMTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
10691                                     MachineInstr &MI, const SDNode *Node) {
10715 void ARMTargetLowering::AdjustInstrPostInstrSelection(MachineInstr &MI,
lib/Target/ARM/ARMISelLowering.h
  325     EmitInstrWithCustomInserter(MachineInstr &MI,
  328     void AdjustInstrPostInstrSelection(MachineInstr &MI,
  833     void SetupEntryBlockForSjLj(MachineInstr &MI, MachineBasicBlock *MBB,
  836     void EmitSjLjDispatchBlock(MachineInstr &MI, MachineBasicBlock *MBB) const;
  838     bool RemapAddSubWithFlags(MachineInstr &MI, MachineBasicBlock *BB) const;
  840     MachineBasicBlock *EmitStructByval(MachineInstr &MI,
  843     MachineBasicBlock *EmitLowered__chkstk(MachineInstr &MI,
  845     MachineBasicBlock *EmitLowered__dbzchk(MachineInstr &MI,
lib/Target/ARM/ARMInstructionSelector.cpp
   37   bool select(MachineInstr &I) override;
   41   bool selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const;
  140   void renderVFPF32Imm(MachineInstrBuilder &New, const MachineInstr &Old) const;
  141   void renderVFPF64Imm(MachineInstrBuilder &New, const MachineInstr &Old) const;
  210 static bool selectCopy(MachineInstr &I, const TargetInstrInfo &TII,
  813     MachineInstrBuilder &NewInstBuilder, const MachineInstr &OldInst) const {
  825     MachineInstrBuilder &NewInstBuilder, const MachineInstr &OldInst) const {
  836 bool ARMInstructionSelector::select(MachineInstr &I) {
lib/Target/ARM/ARMLegalizerInfo.cpp
  360 bool ARMLegalizerInfo::legalizeCustom(MachineInstr &MI,
lib/Target/ARM/ARMLegalizerInfo.h
   31   bool legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI,
lib/Target/ARM/ARMLoadStoreOptimizer.cpp
  130       MachineInstr *MI;
  134       MemOpQueueEntry(MachineInstr &MI, int Offset, unsigned Position)
  143       SmallVector<MachineInstr*, 4> Instrs;
  163     SmallVector<MachineInstr*,4> MergeBaseCandidates;
  172     MachineInstr *CreateLoadStoreMulti(
  178     MachineInstr *CreateLoadStoreDouble(
  185     MachineInstr *MergeOpsUpdate(const MergeCandidate &Cand);
  188     bool MergeBaseUpdateLoadStore(MachineInstr *MI);
  189     bool MergeBaseUpdateLSMultiple(MachineInstr *MI);
  190     bool MergeBaseUpdateLSDouble(MachineInstr &MI) const;
  203 static bool definesCPSR(const MachineInstr &MI) {
  216 static int getMemoryOpOffset(const MachineInstr &MI) {
  244 static const MachineOperand &getLoadStoreBaseOp(const MachineInstr &MI) {
  248 static const MachineOperand &getLoadStoreRegOp(const MachineInstr &MI) {
  436 static unsigned getLSMultipleTransferSize(const MachineInstr *MI) {
  623 MachineInstr *ARMLoadStoreOpt::CreateLoadStoreMulti(
  825 MachineInstr *ARMLoadStoreOpt::CreateLoadStoreDouble(
  851 MachineInstr *ARMLoadStoreOpt::MergeOpsUpdate(const MergeCandidate &Cand) {
  852   const MachineInstr *First = Cand.Instrs.front();
  860   for (const MachineInstr *MI : Cand.Instrs) {
  892   MachineInstr *LatestMI = Cand.Instrs[Cand.LatestMIIdx];
  901   MachineInstr *Merged = nullptr;
  923   for (MachineInstr *MI : Cand.Instrs)
  936     for (MachineInstr &MI : FixupRange) {
  955     for (MachineInstr &MI : FixupRange) {
  979                                  const MachineInstr &MI) {
  996   const MachineInstr *FirstMI = MemOps[0].MI;
 1005     const MachineInstr *MI = MemOps[SIndex].MI;
 1181 static int isIncrementOrDecrement(const MachineInstr &MI, unsigned Reg,
 1259 bool ARMLoadStoreOpt::MergeBaseUpdateLSMultiple(MachineInstr *MI) {
 1385 bool ARMLoadStoreOpt::MergeBaseUpdateLoadStore(MachineInstr *MI) {
 1505 bool ARMLoadStoreOpt::MergeBaseUpdateLSDouble(MachineInstr &MI) const {
 1565 static bool isMemoryOp(const MachineInstr &MI) {
 1650   MachineInstr *MI = &*MBBI;
 1884       MachineInstr *Merged = MergeOpsUpdate(*Candidate);
 1894         for (MachineInstr *MI : Candidate->Instrs) {
 1907   for (MachineInstr *MI : MergeBaseCandidates)
 1938     MachineInstr &PrevMI = *PrevI;
 2058     bool CanFormLdStDWord(MachineInstr *Op0, MachineInstr *Op1, DebugLoc &dl,
 2058     bool CanFormLdStDWord(MachineInstr *Op0, MachineInstr *Op1, DebugLoc &dl,
 2065                        SmallVectorImpl<MachineInstr *> &Ops,
 2067                        DenseMap<MachineInstr*, unsigned> &MI2LocMap);
 2117       for (MachineInstr *MemOp : MemOps)
 2140 ARMPreAllocLoadStoreOpt::CanFormLdStDWord(MachineInstr *Op0, MachineInstr *Op1,
 2140 ARMPreAllocLoadStoreOpt::CanFormLdStDWord(MachineInstr *Op0, MachineInstr *Op1,
 2216                                  SmallVectorImpl<MachineInstr *> &Ops,
 2218                                  DenseMap<MachineInstr*, unsigned> &MI2LocMap) {
 2236     MachineInstr *FirstOp = nullptr;
 2237     MachineInstr *LastOp = nullptr;
 2244       MachineInstr *Op = Ops[i];
 2282       SmallPtrSet<MachineInstr*, 4> MemOps;
 2307         MachineInstr *Op0 = Ops.back();
 2308         MachineInstr *Op1 = Ops[Ops.size()-2];
 2367             MachineInstr *Op = Ops.back();
 2386   DenseMap<MachineInstr*, unsigned> MI2LocMap;
 2387   using MapIt = DenseMap<unsigned, SmallVector<MachineInstr *, 4>>::iterator;
 2388   using Base2InstMap = DenseMap<unsigned, SmallVector<MachineInstr *, 4>>;
 2400       MachineInstr &MI = *MBBI;
 2454       SmallVectorImpl<MachineInstr *> &Lds = Base2LdsMap[Base];
 2462       SmallVectorImpl<MachineInstr *> &Sts = Base2StsMap[Base];
lib/Target/ARM/ARMLowOverheadLoops.cpp
   67     MachineInstr * IsSafeToDefineLR(MachineInstr *MI);
   67     MachineInstr * IsSafeToDefineLR(MachineInstr *MI);
   71     void RevertWhile(MachineInstr *MI) const;
   73     bool RevertLoopDec(MachineInstr *MI, bool AllowFlags = false) const;
   75     void RevertLoopEnd(MachineInstr *MI, bool SkipCmp = false) const;
   77     void Expand(MachineLoop *ML, MachineInstr *Start,
   78                 MachineInstr *InsertPt, MachineInstr *Dec,
   78                 MachineInstr *InsertPt, MachineInstr *Dec,
   79                 MachineInstr *End, bool Revert);
  114 static bool IsLoopStart(MachineInstr &MI) {
  120 static MachineInstr* SearchForDef(MachineInstr *Begin, T End, unsigned Reg) {
  120 static MachineInstr* SearchForDef(MachineInstr *Begin, T End, unsigned Reg) {
  121   for(auto &MI : make_range(T(Begin), End)) {
  131 static MachineInstr* SearchForUse(MachineInstr *Begin,
  131 static MachineInstr* SearchForUse(MachineInstr *Begin,
  134   for(auto &MI : make_range(MachineBasicBlock::iterator(Begin), End)) {
  147 MachineInstr *ARMLowOverheadLoops::IsSafeToDefineLR(MachineInstr *Start) {
  147 MachineInstr *ARMLowOverheadLoops::IsSafeToDefineLR(MachineInstr *Start) {
  160   MachineInstr *PredLRDef = SearchForDef(Start, MBB->rend(), ARM::LR);
  164   MachineInstr *SuccLRDef = SearchForDef(Start, MBB->end(), ARM::LR);
  225   std::function<MachineInstr*(MachineBasicBlock*)> SearchForStart =
  227     for (auto &MI : *MBB) {
  236   MachineInstr *Start = nullptr;
  237   MachineInstr *Dec = nullptr;
  238   MachineInstr *End = nullptr;
  267     for (auto &MI : *MBB) {
  344   MachineInstr *InsertPt = Revert ? nullptr : IsSafeToDefineLR(Start);
  359 void ARMLowOverheadLoops::RevertWhile(MachineInstr *MI) const {
  380 bool ARMLowOverheadLoops::RevertLoopDec(MachineInstr *MI,
  388     if (auto *Def = SearchForDef(MI, MBB->end(), ARM::CPSR)) {
  414 void ARMLowOverheadLoops::RevertLoopEnd(MachineInstr *MI, bool SkipCmp) const {
  441 void ARMLowOverheadLoops::Expand(MachineLoop *ML, MachineInstr *Start,
  442                                  MachineInstr *InsertPt,
  443                                  MachineInstr *Dec, MachineInstr *End,
  443                                  MachineInstr *Dec, MachineInstr *End,
  489     MachineInstr *Terminator = &BB->instr_back();
  519     SmallVector<MachineInstr*, 4> Starts;
  520     SmallVector<MachineInstr*, 4> Decs;
  521     SmallVector<MachineInstr*, 4> Ends;
  523     for (auto &I : MBB) {
  537     for (auto *Start : Starts) {
  543     for (auto *Dec : Decs)
  546     for (auto *End : Ends)
lib/Target/ARM/ARMMCInstLower.cpp
  123 void llvm::LowerARMMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
  168 void ARMAsmPrinter::EmitSled(const MachineInstr &MI, SledKind Kind)
  219 void ARMAsmPrinter::LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI)
  224 void ARMAsmPrinter::LowerPATCHABLE_FUNCTION_EXIT(const MachineInstr &MI)
  229 void ARMAsmPrinter::LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI)
lib/Target/ARM/ARMMacroFusion.cpp
   22 static bool isAESPair(const MachineInstr *FirstMI,
   23                       const MachineInstr &SecondMI) {
   38 static bool isLiteralsPair(const MachineInstr *FirstMI,
   39                            const MachineInstr &SecondMI) {
   53                                    const MachineInstr *FirstMI,
   54                                    const MachineInstr &SecondMI) {
lib/Target/ARM/ARMOptimizeBarriersPass.cpp
   42 static bool CanMovePastDMB(const MachineInstr *MI) {
   55   std::vector<MachineInstr *> ToRemove;
   66     for (auto &MI : MBB) {
lib/Target/ARM/ARMRegisterBankInfo.cpp
  211 ARMRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
lib/Target/ARM/ARMRegisterBankInfo.h
   39   getInstrMapping(const MachineInstr &MI) const override;
lib/Target/ARM/MLxExpansionPass.cpp
   57     MachineInstr* LastMIs[4];
   58     SmallPtrSet<MachineInstr*, 4> IgnoreStall;
   61     void pushStack(MachineInstr *MI);
   62     MachineInstr *getAccDefMI(MachineInstr *MI) const;
   62     MachineInstr *getAccDefMI(MachineInstr *MI) const;
   63     unsigned getDefReg(MachineInstr *MI) const;
   64     bool hasLoopHazard(MachineInstr *MI) const;
   65     bool hasRAWHazard(unsigned Reg, MachineInstr *MI) const;
   66     bool FindMLxHazard(MachineInstr *MI);
   67     void ExpandFPMLxInstruction(MachineBasicBlock &MBB, MachineInstr *MI,
   80 void MLxExpansion::pushStack(MachineInstr *MI) {
   86 MachineInstr *MLxExpansion::getAccDefMI(MachineInstr *MI) const {
   86 MachineInstr *MLxExpansion::getAccDefMI(MachineInstr *MI) const {
   94   MachineInstr *DefMI = MRI->getVRegDef(Reg);
  116 unsigned MLxExpansion::getDefReg(MachineInstr *MI) const {
  122   MachineInstr *UseMI = &*MRI->use_instr_nodbg_begin(Reg);
  140 bool MLxExpansion::hasLoopHazard(MachineInstr *MI) const {
  146   MachineInstr *DefMI = MRI->getVRegDef(Reg);
  182 bool MLxExpansion::hasRAWHazard(unsigned Reg, MachineInstr *MI) const {
  210 bool MLxExpansion::FindMLxHazard(MachineInstr *MI) {
  217   MachineInstr *DefMI = getAccDefMI(MI);
  249     MachineInstr *NextMI = LastMIs[Idx];
  269 MLxExpansion::ExpandFPMLxInstruction(MachineBasicBlock &MBB, MachineInstr *MI,
  334     MachineInstr *MI = &*MII++;
lib/Target/ARM/MVEVPTBlockPass.cpp
  137 static MachineInstr *findVCMPToFoldIntoVPST(MachineBasicBlock::iterator MI,
  174     MachineInstr *MI = &*MBIter;
  233     MachineInstr *VCMP = findVCMPToFoldIntoVPST(MI, TRI, NewOpcode);
lib/Target/ARM/Thumb1FrameLowering.cpp
  106                              unsigned MIFlags = MachineInstr::NoFlags) {
  123     MachineInstr &Old = *I;
  182                                  ARM::NoRegister, MachineInstr::FrameSetup);
  188         .setMIFlags(MachineInstr::FrameSetup);
  195                                    ARM::NoRegister, MachineInstr::FrameSetup);
  201           .setMIFlags(MachineInstr::FrameSetup);
  265         .setMIFlags(MachineInstr::FrameSetup);
  293           .setMIFlags(MachineInstr::FrameSetup);
  305         .setMIFlags(MachineInstr::FrameSetup)
  313           .setMIFlags(MachineInstr::FrameSetup);
  320           .setMIFlags(MachineInstr::FrameSetup);
  362           .setMIFlags(MachineInstr::FrameSetup);
  385                                  ScratchRegister, MachineInstr::FrameSetup);
  392           .setMIFlags(MachineInstr::FrameSetup);
  455 static bool isCSRestore(MachineInstr &MI, const MCPhysReg *CSRegs) {
  492                                    MachineInstr::NoFlags);
  544                                        ScratchRegister, MachineInstr::NoFlags);
  547                                      ScratchRegister, MachineInstr::NoFlags);
  736                                  MachineInstr::NoFlags);
  778                                ARM::NoRegister, MachineInstr::NoFlags);
  862     MIB.setMIFlags(MachineInstr::FrameSetup);
  894                                       .setMIFlags(MachineInstr::FrameSetup);
  908             .setMIFlags(MachineInstr::FrameSetup);
lib/Target/ARM/Thumb2ITBlockPass.cpp
   66     bool MoveCopyOutOfITBlock(MachineInstr *MI,
   81 static void TrackDefUses(MachineInstr *MI, RegisterSet &Defs, RegisterSet &Uses,
  113 static void ClearKillFlags(MachineInstr *MI, RegisterSet &Uses) {
  123 static bool isCopy(MachineInstr *MI) {
  136 Thumb2ITBlock::MoveCopyOutOfITBlock(MachineInstr *MI,
  200     MachineInstr *MI = &*MBBI;
  221     MachineInstr *LastITMI = MI;
  239         MachineInstr *NMI = &*MBBI;
lib/Target/ARM/Thumb2InstrInfo.cpp
  464 bool llvm::rewriteT2FrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
  697 ARMCC::CondCodes llvm::getITInstrPredicate(const MachineInstr &MI,
  705 int llvm::findFirstVPTPredOperandIdx(const MachineInstr &MI) {
  718 ARMVCC::VPTCodes llvm::getVPTInstrPredicate(const MachineInstr &MI,
lib/Target/ARM/Thumb2InstrInfo.h
   70 ARMCC::CondCodes getITInstrPredicate(const MachineInstr &MI, unsigned &PredReg);
   74 int findFirstVPTPredOperandIdx(const MachineInstr &MI);
   75 ARMVCC::VPTCodes getVPTInstrPredicate(const MachineInstr &MI,
lib/Target/ARM/Thumb2SizeReduction.cpp
  183     bool canAddPseudoFlagDep(MachineInstr *Use, bool IsSelfLoop);
  185     bool VerifyPredAndCC(MachineInstr *MI, const ReduceEntry &Entry,
  189     bool ReduceLoadStore(MachineBasicBlock &MBB, MachineInstr *MI,
  192     bool ReduceSpecial(MachineBasicBlock &MBB, MachineInstr *MI,
  197     bool ReduceTo2Addr(MachineBasicBlock &MBB, MachineInstr *MI,
  203     bool ReduceToNarrow(MachineBasicBlock &MBB, MachineInstr *MI,
  208     bool ReduceMI(MachineBasicBlock &MBB, MachineInstr *MI,
  218     MachineInstr *CPSRDef;
  262 static bool isHighLatencyCPSR(MachineInstr *Def) {
  289 Thumb2SizeReduce::canAddPseudoFlagDep(MachineInstr *Use, bool FirstInSelfLoop) {
  332 Thumb2SizeReduce::VerifyPredAndCC(MachineInstr *MI, const ReduceEntry &Entry,
  374 static bool VerifyLowRegs(MachineInstr *MI) {
  404 Thumb2SizeReduce::ReduceLoadStore(MachineBasicBlock &MBB, MachineInstr *MI,
  622 Thumb2SizeReduce::ReduceSpecial(MachineBasicBlock &MBB, MachineInstr *MI,
  735 Thumb2SizeReduce::ReduceTo2Addr(MachineBasicBlock &MBB, MachineInstr *MI,
  761       MachineInstr *CommutedMI = TII->commuteInstruction(*MI);
  772     MachineInstr *CommutedMI =
  850 Thumb2SizeReduce::ReduceToNarrow(MachineBasicBlock &MBB, MachineInstr *MI,
  972 static bool UpdateCPSRDef(MachineInstr &MI, bool LiveCPSR, bool &DefCPSR) {
  988 static bool UpdateCPSRUse(MachineInstr &MI, bool LiveCPSR) {
 1004 bool Thumb2SizeReduce::ReduceMI(MachineBasicBlock &MBB, MachineInstr *MI,
 1034   MachineInstr *BundleMI = nullptr;
 1060     MachineInstr *MI = &*MII;
lib/Target/ARM/ThumbRegisterInfo.cpp
  128     const ARMBaseRegisterInfo &MRI, unsigned MIFlags = MachineInstr::NoFlags) {
  339 static void removeOperands(MachineInstr &MI, unsigned i) {
  363   MachineInstr &MI = *II;
  430 void ThumbRegisterInfo::resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
  453   MachineInstr &MI = *II;
lib/Target/ARM/ThumbRegisterInfo.h
   44                     unsigned MIFlags = MachineInstr::NoFlags) const override;
   52   void resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
lib/Target/AVR/AVRAsmPrinter.cpp
   46   void printOperand(const MachineInstr *MI, unsigned OpNo, raw_ostream &O);
   48   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
   51   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum,
   54   void EmitInstruction(const MachineInstr *MI) override;
   60 void AVRAsmPrinter::printOperand(const MachineInstr *MI, unsigned OpNo,
   85 bool AVRAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
  136 bool AVRAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
  171 void AVRAsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/AVR/AVRExpandPseudoInsts.cpp
   92   unsigned scavengeGPR8(MachineInstr &MI);
  141   MachineInstr &MI = *MBBI;
  174   MachineInstr &MI = *MBBI;
  221   MachineInstr &MI = *MBBI;
  273   MachineInstr &MI = *MBBI;
  325   MachineInstr &MI = *MBBI;
  388   MachineInstr &MI = *MBBI;
  418   MachineInstr &MI = *MBBI;
  451   MachineInstr &MI = *MBBI;
  486   MachineInstr &MI = *MBBI;
  535   MachineInstr &MI = *MBBI;
  579   MachineInstr &MI = *MBBI;
  628   MachineInstr &MI = *MBBI;
  659   MachineInstr &MI = *MBBI;
  690   MachineInstr &MI = *MBBI;
  745   MachineInstr &MI = *MBBI;
  799   MachineInstr &MI = *MBBI;
  829       MachineInstr &NewInst =
  863 unsigned AVRExpandPseudo::scavengeGPR8(MachineInstr &MI) {
  968   MachineInstr &MI = *MBBI;
 1014   MachineInstr &MI = *MBBI;
 1042   MachineInstr &MI = *MBBI;
 1076   MachineInstr &MI = *MBBI;
 1110   MachineInstr &MI = *MBBI;
 1144   MachineInstr &MI = *MBBI;
 1174   MachineInstr &MI = *MBBI;
 1205   MachineInstr &MI = *MBBI;
 1230   MachineInstr &MI = *MBBI;
 1247   MachineInstr &MI = *MBBI;
 1280   MachineInstr &MI = *MBBI;
 1323   MachineInstr &MI = *MBBI;
 1353   MachineInstr &MI = *MBBI;
 1412   MachineInstr &MI = *MBBI;
 1449   MachineInstr &MI = *MBBI;
 1476   MachineInstr &MI = *MBBI;
 1510   MachineInstr &MI = *MBBI;
lib/Target/AVR/AVRFrameLowering.cpp
   66         .setMIFlag(MachineInstr::FrameSetup);
   73         .setMIFlag(MachineInstr::FrameSetup);
   82         .setMIFlag(MachineInstr::FrameSetup);
   86         .setMIFlag(MachineInstr::FrameSetup);
   89         .setMIFlag(MachineInstr::FrameSetup);
   94         .setMIFlag(MachineInstr::FrameSetup);
  108       (MBBI != MBB.end()) && MBBI->getFlag(MachineInstr::FrameSetup) &&
  116       .setMIFlag(MachineInstr::FrameSetup);
  131   MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(Opcode), AVR::R29R28)
  134                          .setMIFlag(MachineInstr::FrameSetup);
  141       .setMIFlag(MachineInstr::FrameSetup);
  208   MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(Opcode), AVR::R29R28)
  267         .setMIFlag(MachineInstr::FrameSetup);
  314     MachineInstr &MI = *I;
  403       MachineInstr *New = BuildMI(MBB, MI, DL, TII.get(addOpcode), AVR::R31R30)
  461       for (const MachineInstr &MI : BB) {
lib/Target/AVR/AVRISelLowering.cpp
 1436 MachineBasicBlock *AVRTargetLowering::insertShift(MachineInstr &MI,
 1581 MachineBasicBlock *AVRTargetLowering::insertMul(MachineInstr &MI,
 1597 AVRTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
lib/Target/AVR/AVRISelLowering.h
  109   EmitInstrWithCustomInserter(MachineInstr &MI,
  178   MachineBasicBlock *insertShift(MachineInstr &MI, MachineBasicBlock *BB) const;
  179   MachineBasicBlock *insertMul(MachineInstr &MI, MachineBasicBlock *BB) const;
lib/Target/AVR/AVRInstrInfo.cpp
   82 unsigned AVRInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
  101 unsigned AVRInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  413     auto &MI = *BuildMI(&MBB, DL, get(AVR::RJMPk)).addMBB(TBB);
  422   auto &CondMI = *BuildMI(&MBB, DL, getBrCond(CC)).addMBB(TBB);
  429     auto &MI = *BuildMI(&MBB, DL, get(AVR::RJMPk)).addMBB(FBB);
  476 unsigned AVRInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
  504 AVRInstrInfo::getBranchDestBlock(const MachineInstr &MI) const {
  568     auto &MI = *BuildMI(&MBB, DL, get(AVR::JMPk)).addMBB(&NewDestBB);
lib/Target/AVR/AVRInstrInfo.h
   72   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
   86   unsigned isLoadFromStackSlot(const MachineInstr &MI,
   88   unsigned isStoreToStackSlot(const MachineInstr &MI,
  105   MachineBasicBlock *getBranchDestBlock(const MachineInstr &MI) const override;
lib/Target/AVR/AVRMCInstLower.cpp
   62 void AVRMCInstLower::lowerInstruction(const MachineInstr &MI, MCInst &OutMI) const {
lib/Target/AVR/AVRMCInstLower.h
   31   void lowerInstruction(const MachineInstr &MI, MCInst &OutMI) const;
lib/Target/AVR/AVRRegisterInfo.cpp
   99   MachineInstr &MI = *II;
  133   MachineInstr &MI = *II;
  196     MachineInstr *New = BuildMI(MBB, II, dl, TII.get(Opcode), DstReg)
  224     MachineInstr *New = BuildMI(MBB, II, dl, TII.get(AddOpc), AVR::R29R28)
  276 bool AVRRegisterInfo::shouldCoalesce(MachineInstr *MI,
lib/Target/AVR/AVRRegisterInfo.h
   58   bool shouldCoalesce(MachineInstr *MI,
lib/Target/AVR/AVRRelaxMemOperations.cpp
   89   MachineInstr &MI = *MBBI;
  125   MachineInstr &MI = *MBBI;
lib/Target/BPF/BPFAsmPrinter.cpp
   45   void printOperand(const MachineInstr *MI, int OpNum, raw_ostream &O);
   46   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
   48   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum,
   51   void EmitInstruction(const MachineInstr *MI) override;
   72 void BPFAsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
  110 bool BPFAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  119 bool BPFAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
  140 void BPFAsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/BPF/BPFISelLowering.cpp
  564 BPFTargetLowering::EmitSubregExt(MachineInstr &MI, MachineBasicBlock *BB,
  586 BPFTargetLowering::EmitInstrWithCustomInserterMemcpy(MachineInstr &MI,
  617 BPFTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
lib/Target/BPF/BPFISelLowering.h
   54   EmitInstrWithCustomInserter(MachineInstr &MI,
  113   unsigned EmitSubregExt(MachineInstr &MI, MachineBasicBlock *BB, unsigned Reg,
  116   MachineBasicBlock * EmitInstrWithCustomInserterMemcpy(MachineInstr &MI,
lib/Target/BPF/BPFInstrInfo.cpp
  115 bool BPFInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
lib/Target/BPF/BPFInstrInfo.h
   36   bool expandPostRAPseudo(MachineInstr &MI) const override;
lib/Target/BPF/BPFMCInstLower.cpp
   47 void BPFMCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
lib/Target/BPF/BPFMCInstLower.h
   34   void Lower(const MachineInstr *MI, MCInst &OutMI) const;
lib/Target/BPF/BPFMIChecking.cpp
  106 static bool hasLiveDefs(const MachineInstr &MI, const TargetRegisterInfo *TRI) {
  158     for (MachineInstr &MI : MBB) {
lib/Target/BPF/BPFMIPeephole.cpp
   54   bool isMovFrom32Def(MachineInstr *MovMI);
   78 bool BPFMIPeephole::isMovFrom32Def(MachineInstr *MovMI)
   80   MachineInstr *DefInsn = MRI->getVRegDef(MovMI->getOperand(1).getReg());
   95       MachineInstr *PhiDef = MRI->getVRegDef(opnd.getReg());
  120   MachineInstr* ToErase = nullptr;
  124     for (MachineInstr &MI : MBB) {
  140         MachineInstr *SllMI = MRI->getVRegDef(ShfReg);
  154         MachineInstr *MovMI = MRI->getVRegDef(SllMI->getOperand(1).getReg());
  237   MachineInstr* ToErase = nullptr;
  241     for (MachineInstr &MI : MBB) {
  358   MachineInstr* ToErase = nullptr;
  362     for (MachineInstr &MI : MBB) {
  364       MachineInstr *MI2 = nullptr;
  366       MachineInstr *DefMI;
  423           MachineInstr *PhiDef = MRI->getVRegDef(opnd.getReg());
lib/Target/BPF/BPFMISimplifyPatchable.cpp
   77   MachineInstr *ToErase = nullptr;
   81     for (MachineInstr &MI : MBB) {
  103       MachineInstr *DefInst = MRI->getUniqueVRegDef(SrcReg);
lib/Target/BPF/BPFRegisterInfo.cpp
   62   MachineInstr &MI = *II;
   69     for (auto &I : MBB)
lib/Target/BPF/BTFDebug.cpp
  940 void BTFDebug::generateFieldReloc(const MachineInstr *MI,
  962 void BTFDebug::processLDimm64(const MachineInstr *MI) {
 1003 void BTFDebug::beginInstruction(const MachineInstr *MI) {
 1007       MI->getFlag(MachineInstr::FrameSetup))
 1123 bool BTFDebug::InstLower(const MachineInstr *MI, MCInst &OutMI) {
lib/Target/BPF/BTFDebug.h
  297   void generateFieldReloc(const MachineInstr *MI, const MCSymbol *ORSym,
  304   void processLDimm64(const MachineInstr *MI);
  326   bool InstLower(const MachineInstr *MI, MCInst &OutMI);
  348   void beginInstruction(const MachineInstr *MI) override;
lib/Target/Hexagon/BitTracker.cpp
  720 bool BT::MachineEvaluator::evaluate(const MachineInstr &MI,
  766 bool BT::UseQueueType::Cmp::operator()(const MachineInstr *InstA,
  767                                        const MachineInstr *InstB) const {
  798 void BT::visitPHI(const MachineInstr &PI) {
  843 void BT::visitNonBranch(const MachineInstr &MI) {
  919 void BT::visitBranchesFrom(const MachineInstr &BI) {
  928     const MachineInstr &MI = *It;
  985   for (MachineInstr &UseI : MRI.use_nodbg_instructions(Reg))
 1032 void BT::visit(const MachineInstr &MI) {
 1067       const MachineInstr &PI = *It++;
 1081       const MachineInstr &MI = *It++;
 1104     MachineInstr &UseI = *UseQ.front();
lib/Target/Hexagon/BitTracker.h
   57   void visit(const MachineInstr &MI);
   62   void visitPHI(const MachineInstr &PI);
   63   void visitNonBranch(const MachineInstr &MI);
   64   void visitBranchesFrom(const MachineInstr &BI);
   69   using InstrSetType = std::set<const MachineInstr *>;
   83     MachineInstr *front() const {
   86     void push(MachineInstr *MI) {
   99       Cmp(DenseMap<const MachineInstr*,unsigned> &Map) : Dist(Map) {}
  100       bool operator()(const MachineInstr *MI, const MachineInstr *MJ) const;
  100       bool operator()(const MachineInstr *MI, const MachineInstr *MJ) const;
  101       DenseMap<const MachineInstr*,unsigned> &Dist;
  103     std::priority_queue<MachineInstr*, std::vector<MachineInstr*>, Cmp> Uses;
  103     std::priority_queue<MachineInstr*, std::vector<MachineInstr*>, Cmp> Uses;
  104     DenseSet<const MachineInstr*> Set; // Set to avoid adding duplicate entries.
  105     DenseMap<const MachineInstr*,unsigned> Dist;
  470   virtual bool evaluate(const MachineInstr &MI, const CellMapType &Inputs,
  476   virtual bool evaluate(const MachineInstr &BI, const CellMapType &Inputs,
lib/Target/Hexagon/HexagonAsmPrinter.cpp
   58 void HexagonLowerToMC(const MCInstrInfo &MCII, const MachineInstr *MI,
   75 void HexagonAsmPrinter::printOperand(const MachineInstr *MI, unsigned OpNo,
  114 bool HexagonAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  155 bool HexagonAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
  180 static MCSymbol *smallData(AsmPrinter &AP, const MachineInstr &MI,
  266                                                   const MachineInstr &MI) {
  743 void HexagonAsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/Hexagon/HexagonAsmPrinter.h
   49     void EmitInstruction(const MachineInstr *MI) override;
   50     void HexagonProcessInstruction(MCInst &Inst, const MachineInstr &MBB);
   52     void printOperand(const MachineInstr *MI, unsigned OpNo, raw_ostream &O);
   53     bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
   55     bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
lib/Target/Hexagon/HexagonBitSimplify.cpp
  200     static void getInstrDefs(const MachineInstr &MI, RegisterSet &Defs);
  201     static void getInstrUses(const MachineInstr &MI, RegisterSet &Uses);
  216     static bool parseRegSequence(const MachineInstr &I,
  271   for (auto &I : B)
  288 void HexagonBitSimplify::getInstrDefs(const MachineInstr &MI,
  300 void HexagonBitSimplify::getInstrUses(const MachineInstr &MI,
  431 bool HexagonBitSimplify::parseRegSequence(const MachineInstr &I,
  974     MachineInstr *UseI = I->getParent();
  995   std::vector<MachineInstr*> Instrs;
 1058     bool isLossyShiftLeft(const MachineInstr &MI, unsigned OpN,
 1060     bool isLossyShiftRight(const MachineInstr &MI, unsigned OpN,
 1063     bool computeUsedBits(const MachineInstr &MI, unsigned OpN, BitVector &Bits,
 1078 bool RedundantInstrElimination::isLossyShiftLeft(const MachineInstr &MI,
 1138 bool RedundantInstrElimination::isLossyShiftRight(const MachineInstr &MI,
 1218       MachineInstr &UseI = *I->getParent();
 1248 bool RedundantInstrElimination::computeUsedBits(const MachineInstr &MI,
 1308     MachineInstr *MI = &*I;
 1346       MachineInstr *CopyI =
 1379     static bool isTfrConst(const MachineInstr &MI);
 1392 bool ConstGeneration::isTfrConst(const MachineInstr &MI) {
 1525     bool propagateRegCopy(MachineInstr &MI);
 1663 bool CopyPropagation::propagateRegCopy(MachineInstr &MI) {
 1717   std::vector<MachineInstr*> Instrs;
 1760     bool genStoreUpperHalf(MachineInstr *MI);
 1761     bool genStoreImmediate(MachineInstr *MI);
 1762     bool genPackhl(MachineInstr *MI, BitTracker::RegisterRef RD,
 1764     bool genExtractHalf(MachineInstr *MI, BitTracker::RegisterRef RD,
 1766     bool genCombineHalf(MachineInstr *MI, BitTracker::RegisterRef RD,
 1768     bool genExtractLow(MachineInstr *MI, BitTracker::RegisterRef RD,
 1770     bool genBitSplit(MachineInstr *MI, BitTracker::RegisterRef RD,
 1772     bool simplifyTstbit(MachineInstr *MI, BitTracker::RegisterRef RD,
 1774     bool simplifyExtractLow(MachineInstr *MI, BitTracker::RegisterRef RD,
 1776     bool simplifyRCmp0(MachineInstr *MI, BitTracker::RegisterRef RD);
 1780     std::vector<MachineInstr*> NewMIs;
 1913 bool BitSimplification::genStoreUpperHalf(MachineInstr *MI) {
 1936 bool BitSimplification::genStoreImmediate(MachineInstr *MI) {
 2012 bool BitSimplification::genPackhl(MachineInstr *MI,
 2039 bool BitSimplification::genExtractHalf(MachineInstr *MI,
 2078 bool BitSimplification::genCombineHalf(MachineInstr *MI,
 2110 bool BitSimplification::genExtractLow(MachineInstr *MI,
 2170 bool BitSimplification::genBitSplit(MachineInstr *MI,
 2263     MachineInstr *DefS = MRI.getVRegDef(S);
 2277     for (MachineInstr *In : NewMIs) {
 2287       MachineInstr *DefI = MRI.getVRegDef(Op0.getReg());
 2323 bool BitSimplification::simplifyTstbit(MachineInstr *MI,
 2383 bool BitSimplification::simplifyExtractLow(MachineInstr *MI,
 2575 bool BitSimplification::simplifyRCmp0(MachineInstr *MI,
 2659   MachineInstr *InpDef = MRI.getVRegDef(SR.Reg);
 2705     MachineInstr *MI = &*I;
 2810       for (auto &I : B)
 2910     using InstrList = std::vector<MachineInstr *>;
 2916       PhiInfo(MachineInstr &P, MachineBasicBlock &B);
 2923     static unsigned getDefReg(const MachineInstr *MI);
 2925     bool isBitShuffle(const MachineInstr *MI, unsigned DefR) const;
 2926     bool isStoreInput(const MachineInstr *MI, unsigned DefR) const;
 2942 HexagonLoopRescheduling::PhiInfo::PhiInfo(MachineInstr &P,
 2958 unsigned HexagonLoopRescheduling::getDefReg(const MachineInstr *MI) {
 2978 bool HexagonLoopRescheduling::isBitShuffle(const MachineInstr *MI,
 3008 bool HexagonLoopRescheduling::isStoreInput(const MachineInstr *MI,
 3080     const MachineInstr *SI = G.Ins[i-1];
 3108   for (auto &I : *C.LB) {
 3116       MachineInstr *UseI = UI->getParent();
 3169       MachineInstr *UseI = UI->getParent();
 3210     MachineInstr *SI = ShufIns[i];
 3221       MachineInstr *MI = ShufIns[j];
 3274       const MachineInstr *DefPrehR = MRI->getVRegDef(F->PR.Reg);
lib/Target/Hexagon/HexagonBitTracker.cpp
  166   RegisterRefs(const MachineInstr &MI) : Vector(MI.getNumOperands()) {
  187 bool HexagonEvaluator::evaluate(const MachineInstr &MI,
  982 bool HexagonEvaluator::evaluate(const MachineInstr &BI,
 1040 unsigned HexagonEvaluator::getUniqueDefVReg(const MachineInstr &MI) const {
 1055 bool HexagonEvaluator::evaluateLoad(const MachineInstr &MI,
 1213 bool HexagonEvaluator::evaluateFormalCopy(const MachineInstr &MI,
lib/Target/Hexagon/HexagonBitTracker.h
   34   bool evaluate(const MachineInstr &MI, const CellMapType &Inputs,
   36   bool evaluate(const MachineInstr &BI, const CellMapType &Inputs,
   51   unsigned getUniqueDefVReg(const MachineInstr &MI) const;
   52   bool evaluateLoad(const MachineInstr &MI, const CellMapType &Inputs,
   54   bool evaluateFormalCopy(const MachineInstr &MI, const CellMapType &Inputs,
lib/Target/Hexagon/HexagonBlockRanges.cpp
  161   for (auto &In : B) {
  171 MachineInstr *HexagonBlockRanges::InstrIndexMap::getInstr(IndexType Idx) const {
  177       MachineInstr *MI) const {
  206 void HexagonBlockRanges::InstrIndexMap::replaceInstr(MachineInstr *OldMI,
  207       MachineInstr *NewMI) {
  315   for (auto &In : B) {
  522   for (auto &In : M.Block) {
lib/Target/Hexagon/HexagonBlockRanges.h
  126     MachineInstr *getInstr(IndexType Idx) const;
  127     IndexType getIndex(MachineInstr *MI) const;
  131     void replaceInstr(MachineInstr *OldMI, MachineInstr *NewMI);
  131     void replaceInstr(MachineInstr *OldMI, MachineInstr *NewMI);
  139     std::map<IndexType,MachineInstr*> Map;
lib/Target/Hexagon/HexagonBranchRelaxation.cpp
   76     bool isJumpOutOfRange(MachineInstr &MI,
  115     for (auto &MI : B.instrs()) {
  143 bool HexagonBranchRelaxation::isJumpOutOfRange(MachineInstr &MI,
  198     for (auto &MI : B) {
lib/Target/Hexagon/HexagonCFGOptimizer.cpp
   38   void InvertAndChangeJumpTarget(MachineInstr &, MachineBasicBlock *);
   81     MachineInstr &MI, MachineBasicBlock *NewTarget) {
  127       MachineInstr &MI = *MII;
lib/Target/Hexagon/HexagonConstExtenders.cpp
  318       MachineInstr *UseMI = nullptr;
  392     OffsetRange getOffsetRange(Register R, const MachineInstr &MI) const;
  396     void recordExtender(MachineInstr &MI, unsigned OpNum);
  397     void collectInstr(MachineInstr &MI);
  410     unsigned getOperandIndex(const MachineInstr &MI,
  412     const MachineOperand &getPredicateOp(const MachineInstr &MI) const;
  413     const MachineOperand &getLoadResultOp(const MachineInstr &MI) const;
  414     const MachineOperand &getStoredValueOp(const MachineInstr &MI) const;
 1047 OffsetRange HCE::getOffsetRange(Register Rb, const MachineInstr &MI) const {
 1140 void HCE::recordExtender(MachineInstr &MI, unsigned OpNum) {
 1227 void HCE::collectInstr(MachineInstr &MI) {
 1250     for (MachineInstr &MI : MBB)
 1487   DenseSet<MachineInstr*> RefMIs;
 1504   const MachineInstr *DefI = Rs.isVReg() ? MRI->getVRegDef(Rs.Reg) : nullptr;
 1536   const MachineInstr *InitI = nullptr;
 1584   MachineInstr &MI = *ED.UseMI;
 1702   MachineInstr &MI = *ED.UseMI;
 1839   const MachineInstr &MI = *ED.UseMI;
 1856   std::vector<std::pair<MachineInstr*,unsigned>> RegOps;
 1859       MachineInstr &UI = *Op.getParent();
 1873     for (std::pair<MachineInstr*,unsigned> P : RegOps) {
 1914 unsigned HCE::getOperandIndex(const MachineInstr &MI,
 1922 const MachineOperand &HCE::getPredicateOp(const MachineInstr &MI) const {
 1934 const MachineOperand &HCE::getLoadResultOp(const MachineInstr &MI) const {
 1939 const MachineOperand &HCE::getStoredValueOp(const MachineInstr &MI) const {
 1965     const MachineInstr *MA = A.UseMI;
 1966     const MachineInstr *MB = B.UseMI;
lib/Target/Hexagon/HexagonConstPropagation.cpp
  252     void visitPHI(const MachineInstr &PN);
  253     void visitNonBranch(const MachineInstr &MI);
  254     void visitBranchesFrom(const MachineInstr &BrI);
  268     using SetOfInstr = std::set<const MachineInstr *>;
  304     virtual bool evaluate(const MachineInstr &MI, const CellMap &Inputs,
  308     virtual bool evaluate(const MachineInstr &BrI, const CellMap &Inputs,
  311     virtual bool rewrite(MachineInstr &MI, const CellMap &Inputs) = 0;
  619 void MachineConstPropagator::visitPHI(const MachineInstr &PN) {
  676 void MachineConstPropagator::visitNonBranch(const MachineInstr &MI) {
  723 void MachineConstPropagator::visitBranchesFrom(const MachineInstr &BrI) {
  732     const MachineInstr &MI = *It;
  786   for (MachineInstr &MI : MRI->use_nodbg_instructions(Reg)) {
  804   for (const MachineInstr &MI : *MB) {
  818     const MachineInstr &MI = *I;
  852     MachineInstr *PN = &*I;
  985       MachineInstr &MI = *I;
 1836     bool evaluate(const MachineInstr &MI, const CellMap &Inputs,
 1840     bool evaluate(const MachineInstr &BrI, const CellMap &Inputs,
 1843     bool rewrite(MachineInstr &MI, const CellMap &Inputs) override;
 1851     void replaceWithNop(MachineInstr &MI);
 1855     bool evaluateHexCompare(const MachineInstr &MI, const CellMap &Inputs,
 1860     bool evaluateHexLogical(const MachineInstr &MI, const CellMap &Inputs,
 1862     bool evaluateHexCondMove(const MachineInstr &MI, const CellMap &Inputs,
 1864     bool evaluateHexExt(const MachineInstr &MI, const CellMap &Inputs,
 1866     bool evaluateHexVector1(const MachineInstr &MI, const CellMap &Inputs,
 1868     bool evaluateHexVector2(const MachineInstr &MI, const CellMap &Inputs,
 1872     bool rewriteHexBranch(MachineInstr &BrI, const CellMap &Inputs);
 1873     bool rewriteHexConstDefs(MachineInstr &MI, const CellMap &Inputs,
 1875     bool rewriteHexConstUses(MachineInstr &MI, const CellMap &Inputs);
 1916 bool HexagonConstEvaluator::evaluate(const MachineInstr &MI,
 2250 bool HexagonConstEvaluator::evaluate(const MachineInstr &BrI,
 2319 bool HexagonConstEvaluator::rewrite(MachineInstr &MI, const CellMap &Inputs) {
 2501 void HexagonConstEvaluator::replaceWithNop(MachineInstr &MI) {
 2544 bool HexagonConstEvaluator::evaluateHexCompare(const MachineInstr &MI,
 2619 bool HexagonConstEvaluator::evaluateHexLogical(const MachineInstr &MI,
 2666 bool HexagonConstEvaluator::evaluateHexCondMove(const MachineInstr &MI,
 2709 bool HexagonConstEvaluator::evaluateHexExt(const MachineInstr &MI,
 2753 bool HexagonConstEvaluator::evaluateHexVector1(const MachineInstr &MI,
 2782 bool HexagonConstEvaluator::rewriteHexConstDefs(MachineInstr &MI,
 2846   SmallVector<const MachineInstr*,4> NewInstrs;
 2897       const MachineInstr *NewMI;
 2946 bool HexagonConstEvaluator::rewriteHexConstUses(MachineInstr &MI,
 2953   MachineInstr *NewMI = nullptr;
 3123 bool HexagonConstEvaluator::rewriteHexBranch(MachineInstr &BrI,
lib/Target/Hexagon/HexagonCopyToCombine.cpp
   65   DenseSet<MachineInstr *> PotentiallyNewifiableTFR;
   66   SmallVector<MachineInstr *, 8> DbgMItoMove;
   91   MachineInstr *findPairable(MachineInstr &I1, bool &DoInsertAtI1,
   91   MachineInstr *findPairable(MachineInstr &I1, bool &DoInsertAtI1,
   96   void combine(MachineInstr &I1, MachineInstr &I2,
   96   void combine(MachineInstr &I1, MachineInstr &I2,
  100   bool isSafeToMoveTogether(MachineInstr &I1, MachineInstr &I2,
  100   bool isSafeToMoveTogether(MachineInstr &I1, MachineInstr &I2,
  127 static bool isCombinableInstType(MachineInstr &MI, const HexagonInstrInfo *TII,
  172 template <unsigned N> static bool isGreaterThanNBitTFRI(const MachineInstr &I) {
  184                                     MachineInstr &HighRegInst,
  185                                     MachineInstr &LowRegInst, bool AllowC64) {
  237 static void removeKillInfo(MachineInstr &MI, unsigned RegNotKilled) {
  248 static bool isUnsafeToMoveAcross(MachineInstr &MI, unsigned UseReg,
  263 bool HexagonCopyToCombine::isSafeToMoveTogether(MachineInstr &I1,
  264                                                 MachineInstr &I2,
  293     MachineInstr *KillingInstr = nullptr;
  339     MachineInstr *KillingInstr = nullptr;
  343       MachineInstr &MI = *I;
  396   DenseMap<unsigned, MachineInstr *> LastDef;
  397   for (MachineInstr &MI : BB) {
  414         MachineInstr *DefInst = LastDef[Reg];
  489       MachineInstr &I1 = *MI++;
  509       MachineInstr *I2 = findPairable(I1, DoInsertAtI1, OptForSize);
  524 MachineInstr *HexagonCopyToCombine::findPairable(MachineInstr &I1,
  524 MachineInstr *HexagonCopyToCombine::findPairable(MachineInstr &I1,
  573 void HexagonCopyToCombine::combine(MachineInstr &I1, MachineInstr &I2,
  573 void HexagonCopyToCombine::combine(MachineInstr &I1, MachineInstr &I2,
lib/Target/Hexagon/HexagonEarlyIfConv.cpp
  185     bool usesUndefVReg(const MachineInstr *MI) const;
  191     bool isPredicableStore(const MachineInstr *MI) const;
  192     bool isSafeToSpeculate(const MachineInstr *MI) const;
  400 bool HexagonEarlyIfConversion::usesUndefVReg(const MachineInstr *MI) const {
  407     const MachineInstr *DefI = MRI->getVRegDef(R);
  454   for (const MachineInstr &MI : *B) {
  479     const MachineInstr *Def1 = MRI->getVRegDef(RA.getReg());
  480     const MachineInstr *Def3 = MRI->getVRegDef(RB.getReg());
  659 bool HexagonEarlyIfConversion::isPredicableStore(const MachineInstr *MI)
  683 bool HexagonEarlyIfConversion::isSafeToSpeculate(const MachineInstr *MI)
  723     MachineInstr::mop_iterator MOI = MI->operands_begin();
  815     MachineInstr *PN = &*I;
  988     MachineInstr *PN = &*I;
lib/Target/Hexagon/HexagonExpandCondsets.cpp
  197     bool isCondset(const MachineInstr &MI);
  207     void removeInstr(MachineInstr &MI);
  212     MachineInstr *genCondTfrFor(MachineOperand &SrcOp,
  216     bool split(MachineInstr &MI, std::set<unsigned> &UpdRegs);
  218     bool isPredicable(MachineInstr *MI);
  219     MachineInstr *getReachingDefForPred(RegisterRef RD,
  221     bool canMoveOver(MachineInstr &MI, ReferenceMap &Defs, ReferenceMap &Uses);
  222     bool canMoveMemTo(MachineInstr &MI, MachineInstr &ToI, bool IsDown);
  222     bool canMoveMemTo(MachineInstr &MI, MachineInstr &ToI, bool IsDown);
  223     void predicateAt(const MachineOperand &DefOp, MachineInstr &MI,
  230     bool predicate(MachineInstr &TfrI, bool Cond, std::set<unsigned> &UpdRegs);
  237     bool coalesceSegments(const SmallVectorImpl<MachineInstr*> &Condsets,
  273 bool HexagonExpandCondsets::isCondset(const MachineInstr &MI) {
  317     MachineInstr *MI = LIS->getInstructionFromIndex(K);
  341       MachineInstr *DefI = LIS->getInstructionFromIndex(NextI->start);
  418     MachineInstr *DefI = LIS->getInstructionFromIndex(Seg.start);
  472     MachineInstr *DefI = LIS->getInstructionFromIndex(Seg.start);
  489     MachineInstr *DefI = LIS->getInstructionFromIndex(Seg.start);
  545 void HexagonExpandCondsets::removeInstr(MachineInstr &MI) {
  622 MachineInstr *HexagonExpandCondsets::genCondTfrFor(MachineOperand &SrcOp,
  626   MachineInstr *MI = SrcOp.getParent();
  662 bool HexagonExpandCondsets::split(MachineInstr &MI,
  707   MachineInstr *TfrT =
  709   MachineInstr *TfrF =
  721 bool HexagonExpandCondsets::isPredicable(MachineInstr *MI) {
  744 MachineInstr *HexagonExpandCondsets::getReachingDefForPred(RegisterRef RD,
  754     MachineInstr *MI = &*I;
  793 bool HexagonExpandCondsets::canMoveOver(MachineInstr &MI, ReferenceMap &Defs,
  819 bool HexagonExpandCondsets::canMoveMemTo(MachineInstr &TheI, MachineInstr &ToI,
  819 bool HexagonExpandCondsets::canMoveMemTo(MachineInstr &TheI, MachineInstr &ToI,
  835     MachineInstr *MI = &*I;
  854                                         MachineInstr &MI,
  895   MachineInstr *NewI = MB;
  912     MachineInstr *MI = &*I;
  934 bool HexagonExpandCondsets::predicate(MachineInstr &TfrI, bool Cond,
  958   MachineInstr *DefI = getReachingDefForPred(RT, TfrI, PredR, Cond);
  982     MachineInstr *MI = &*I;
 1189       const SmallVectorImpl<MachineInstr*> &Condsets,
 1191   SmallVector<MachineInstr*,16> TwoRegs;
 1192   for (MachineInstr *MI : Condsets) {
 1200   for (MachineInstr *CI : TwoRegs) {
 1225       MachineInstr *RDef = getReachingDefForPred(RS, CI, RP.Reg, true);
 1236       MachineInstr *RDef = getReachingDefForPred(RS, CI, RP.Reg, false);
 1266   SmallVector<MachineInstr*,16> Condsets;
 1268     for (auto &I : B)
 1282   for (MachineInstr *MI : Condsets)
 1295   for (MachineInstr *MI : Condsets)
lib/Target/Hexagon/HexagonFixupHwLoops.cpp
   84 static bool isHardwareLoop(const MachineInstr &MI) {
  125     for (const MachineInstr &MI : MBB)
lib/Target/Hexagon/HexagonFrameLowering.cpp
  285       const MachineInstr *MI = &I;
  354 static MachineInstr *getReturn(MachineBasicBlock &MBB) {
  355     for (auto &I : MBB)
  534       MachineInstr *RetI = getReturn(B);
  611   SmallVector<MachineInstr *, 4> AdjustRegs;
  613     for (auto &MI : MBB)
  666   MachineInstr *RetI = getReturn(MBB);
  725   MachineInstr *NewI = BuildMI(MBB, RetI, dl, HII.get(NewOpc))
  817     MachineInstr &RetI = MBB.back();
  849     for (MachineInstr &I : B) {
 1251     MachineInstr *SaveRegsCall =
 1300     MachineInstr *DeallocCall = nullptr;
 1345   MachineInstr &MI = *I;
 1388   if (const MachineInstr *AI = getAlignaInstr(MF))
 1571   MachineInstr *MI = &*It;
 1592   MachineInstr *MI = &*It;
 1625   MachineInstr *MI = &*It;
 1656   MachineInstr *MI = &*It;
 1693   MachineInstr *MI = &*It;
 1731   MachineInstr *MI = &*It;
 1791   MachineInstr *MI = &*It;
 1831   MachineInstr *MI = &*It;
 1860   MachineInstr *MI = &*It;
 1892       MachineInstr *MI = &*I;
 2063     for (auto &In : B) {
 2247         MachineInstr &SI = *IM.getInstr(Range.start());
 2248         MachineInstr &EI = *IM.getInstr(Range.end());
 2272         MachineInstr *CopyIn = nullptr;
 2297           MachineInstr &MI = *It;
 2304           MachineInstr *CopyOut = nullptr;
 2330 void HexagonFrameLowering::expandAlloca(MachineInstr *AI,
 2398 const MachineInstr *HexagonFrameLowering::getAlignaInstr(
 2409 void HexagonFrameLowering::addCalleeSaveRegistersAsImpOperand(MachineInstr *MI,
 2502     for (const MachineInstr &MI : B) {
lib/Target/Hexagon/HexagonFrameLowering.h
  103   const MachineInstr *getAlignaInstr(const MachineFunction &MF) const;
  110   void expandAlloca(MachineInstr *AI, const HexagonInstrInfo &TII,
  168   void addCalleeSaveRegistersAsImpOperand(MachineInstr *MI, const CSIVect &CSI,
lib/Target/Hexagon/HexagonGenInsert.cpp
  533     void getInstrDefs(const MachineInstr *MI, RegisterSet &Defs) const;
  534     void getInstrUses(const MachineInstr *MI, RegisterSet &Uses) const;
  605       const MachineInstr *MI = &*I;
  721 void HexagonGenInsert::getInstrDefs(const MachineInstr *MI,
  734 void HexagonGenInsert::getInstrUses(const MachineInstr *MI,
  944     MachineInstr *MI = &*I;
 1020       const MachineInstr *DefI = MRI->getVRegDef(R);
 1072   MachineInstr *DefVR = MRI->getVRegDef(VR);
 1153   const MachineInstr *DefV = MRI->getVRegDef(VR);
 1157     const MachineInstr *DefS = MRI->getVRegDef(SR);
 1158     const MachineInstr *DefI = MRI->getVRegDef(IR);
 1301     using InstrSet = SmallSet<const MachineInstr *, 16>;
 1346     const MachineInstr *DefI = MRI->getVRegDef(I->first);
 1410     MachineInstr *MI = MRI->getVRegDef(I->first);
 1444     MachineInstr *DefI = MRI->getVRegDef(I->first);
 1459   std::vector<MachineInstr*> Instrs;
 1464     MachineInstr *MI = *I;
lib/Target/Hexagon/HexagonGenMux.cpp
  110       MachineInstr *Def1, *Def2;
  119     using InstrIndexMap = DenseMap<MachineInstr *, unsigned>;
  129     void getDefsUses(const MachineInstr *MI, BitVector &Defs,
  158 void HexagonGenMux::getDefsUses(const MachineInstr *MI, BitVector &Defs,
  187     MachineInstr *MI = &*I;
  237     MachineInstr *MI = &*I;
  304     MachineInstr &Def1 = *It1, &Def2 = *It2;
lib/Target/Hexagon/HexagonGenPredicate.cpp
  102     using VectOfInst = SetVector<MachineInstr *>;
  117     bool isConvertibleToPredForm(const MachineInstr *MI);
  121     bool convertToPredForm(MachineInstr *MI);
  186 bool HexagonGenPredicate::isConvertibleToPredForm(const MachineInstr *MI) {
  209       MachineInstr *MI = &*I;
  232     MachineInstr *DefI = MRI->getVRegDef(Reg.R);
  238     MachineInstr *UseI = I->getParent();
  254   MachineInstr *DefI = MRI->getVRegDef(Reg.R);
  328     const MachineInstr *DefI = MRI->getVRegDef(PR.R);
  367 bool HexagonGenPredicate::convertToPredForm(MachineInstr *MI) {
  469     for (MachineInstr &MI : MBB) {
  520       MachineInstr *MI = *I;
lib/Target/Hexagon/HexagonHardwareLoops.cpp
  126     using LoopFeederMap = std::map<unsigned, MachineInstr *>;
  183                                int64_t &IVBump, MachineInstr *&IVOp) const;
  195                                  SmallVectorImpl<MachineInstr *> &OldInsts);
  210     bool isInvalidLoopOperation(const MachineInstr *MI,
  222     bool isDead(const MachineInstr *MI,
  223                 SmallVectorImpl<MachineInstr *> &DeadPhis) const;
  226     void removeIfDead(MachineInstr *MI);
  232     bool orderBumpCompare(MachineInstr *BumpI, MachineInstr *CmpI);
  232     bool orderBumpCompare(MachineInstr *BumpI, MachineInstr *CmpI);
  237     bool isLoopFeeder(MachineLoop *L, MachineBasicBlock *A, MachineInstr *MI,
  243     bool phiMayWrapOrUnderflow(MachineInstr *Phi, const MachineOperand *EndVal,
  404                                                  MachineInstr *&IVOp
  429     MachineInstr *Phi = &*I;
  439       MachineInstr *DI = MRI->getVRegDef(PhiOpReg);
  465   MachineInstr *PredI = MRI->getVRegDef(PredR);
  566     SmallVectorImpl<MachineInstr *> &OldInsts) {
  596   MachineInstr *IVOp;
  604   MachineInstr *IV_Phi = MRI->getVRegDef(IVReg);
  650   MachineInstr *CondI = MRI->getVRegDef(PredReg);
  737     const MachineInstr *StartValInstr = MRI->getVRegDef(Start->getReg());
  743     const MachineInstr *EndValInstr = MRI->getVRegDef(End->getReg());
  928       const MachineInstr *EndValInstr = MRI->getVRegDef(End->getReg());
  988 bool HexagonHardwareLoops::isInvalidLoopOperation(const MachineInstr *MI,
 1018       const MachineInstr *MI = &*MII;
 1033 bool HexagonHardwareLoops::isDead(const MachineInstr *MI,
 1034                               SmallVectorImpl<MachineInstr *> &DeadPhis) const {
 1055     MachineInstr *OnePhi = I->getParent();
 1067         MachineInstr *UseMI = Use.getParent();
 1081 void HexagonHardwareLoops::removeIfDead(MachineInstr *MI) {
 1084   SmallVector<MachineInstr*, 1> DeadPhis;
 1101         MachineInstr *UseMI = I->getParent();
 1202   SmallVector<MachineInstr*, 2> OldInsts;
 1212     MachineInstr *TCDef = MRI->getVRegDef(TripCount->getReg());
 1320 bool HexagonHardwareLoops::orderBumpCompare(MachineInstr *BumpI,
 1321                                             MachineInstr *CmpI) {
 1340     MachineInstr *In = &*I;
 1365                                         MachineInstr *MI,
 1376     MachineInstr *Def = MRI->getVRegDef(MO->getReg());
 1387     MachineInstr *Phi, const MachineOperand *EndVal, MachineBasicBlock *MBB,
 1437   MachineInstr *Def = MRI->getVRegDef(Reg);
 1456     MachineInstr *MI = &*I;
 1514   MachineInstr *DI = MRI->getVRegDef(R);
 1586   MachineInstr *DI = MRI->getVRegDef(R);
 1630     MachineInstr *Phi = &*I;
 1638       MachineInstr *DI = MRI->getVRegDef(PhiReg);
 1706   MachineInstr *PredDef = MRI->getVRegDef(P);
 1762         MachineInstr *IndI = nullptr;
 1763         MachineInstr *nonIndI = nullptr;
 1827       MachineInstr *BumpI = MRI->getVRegDef(I->first);
 1900       MachineInstr *PN = &*I;
 1903       MachineInstr *NewPN = MF->CreateMachineInstr(PD, DL);
 1948       MachineInstr *PN = &*I;
lib/Target/Hexagon/HexagonHazardRecognizer.cpp
   40   MachineInstr *MI = SU->getInstr();
   56       MachineInstr *NewMI =
  109   MachineInstr *MI = SU->getInstr();
  127     MachineInstr *NewMI =
lib/Target/Hexagon/HexagonInstrInfo.cpp
  146 MachineInstr *HexagonInstrInfo::findLoopInstr(MachineBasicBlock *BB,
  176     if (MachineInstr *Loop = findLoopInstr(PB, EndLoopOp, TargetBB, Visited))
  185 static inline void parseOperands(const MachineInstr &MI,
  239 unsigned HexagonInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
  287 unsigned HexagonInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  338     const MachineInstr &MI,
  356     const MachineInstr &MI,
  443   MachineInstr *LastInst = &*I;
  444   MachineInstr *SecondLastInst = nullptr;
  619       MachineInstr *Loop = findLoopInstr(TBB, EndLoopOp, Cond[1].getMBB(),
  661     MachineInstr *Loop = findLoopInstr(TBB, EndLoopOp, Cond[1].getMBB(),
  679   MachineInstr *Loop, *EndLoop;
  687   HexagonPipelinerLoopInfo(MachineInstr *Loop, MachineInstr *EndLoop)
  687   HexagonPipelinerLoopInfo(MachineInstr *Loop, MachineInstr *EndLoop)
  700   bool shouldIgnoreForPipelining(const MachineInstr *MI) const override {
  711       MachineInstr *NewCmp = BuildMI(&MBB, DL,
  761     MachineInstr *LoopInst = findLoopInstr(
 1007 static void getLiveRegsAt(LivePhysRegs &Regs, const MachineInstr &MI) {
 1021 bool HexagonInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
 1098       MachineInstr *MI1New = BuildMI(MBB, MI, DL, get(NewOpc))
 1120       MachineInstr *MI1New = BuildMI(MBB, MI, DL, get(NewOpc),
 1543 bool HexagonInstrInfo::isPostIncrement(const MachineInstr &MI) const {
 1555 bool HexagonInstrInfo::isPredicated(const MachineInstr &MI) const {
 1561     MachineInstr &MI, ArrayRef<MachineOperand> Cond) const {
 1617 bool HexagonInstrInfo::DefinesPredicate(MachineInstr &MI,
 1644 bool HexagonInstrInfo::isPredicable(const MachineInstr &MI) const {
 1680 bool HexagonInstrInfo::isSchedulingBoundary(const MachineInstr &MI,
 1763 bool HexagonInstrInfo::analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
 1853                                            const MachineInstr &MI,
 1869     const MachineInstr &MIa, const MachineInstr &MIb) const {
 1869     const MachineInstr &MIa, const MachineInstr &MIb) const {
 1926 bool HexagonInstrInfo::getIncrementValue(const MachineInstr &MI,
 2000 bool HexagonInstrInfo::isAbsoluteSet(const MachineInstr &MI) const {
 2004 bool HexagonInstrInfo::isAccumulator(const MachineInstr &MI) const {
 2009 bool HexagonInstrInfo::isBaseImmOffset(const MachineInstr &MI) const {
 2013 bool HexagonInstrInfo::isComplex(const MachineInstr &MI) const {
 2022 bool HexagonInstrInfo::isCompoundBranchInstr(const MachineInstr &MI) const {
 2028 bool HexagonInstrInfo::isConstExtended(const MachineInstr &MI) const {
 2071 bool HexagonInstrInfo::isDeallocRet(const MachineInstr &MI) const {
 2086 bool HexagonInstrInfo::isDependent(const MachineInstr &ProdMI,
 2087       const MachineInstr &ConsMI) const {
 2121 bool HexagonInstrInfo::isDotCurInst(const MachineInstr &MI) const {
 2132 bool HexagonInstrInfo::isDotNewInst(const MachineInstr &MI) const {
 2140 bool HexagonInstrInfo::isDuplexPair(const MachineInstr &MIa,
 2141       const MachineInstr &MIb) const {
 2147 bool HexagonInstrInfo::isEarlySourceInstr(const MachineInstr &MI) const {
 2175 bool HexagonInstrInfo::isExtendable(const MachineInstr &MI) const {
 2197 bool HexagonInstrInfo::isExtended(const MachineInstr &MI) const {
 2210 bool HexagonInstrInfo::isFloat(const MachineInstr &MI) const {
 2217 bool HexagonInstrInfo::isHVXMemWithAIndirect(const MachineInstr &I,
 2218       const MachineInstr &J) const {
 2226 bool HexagonInstrInfo::isIndirectCall(const MachineInstr &MI) const {
 2237 bool HexagonInstrInfo::isIndirectL4Return(const MachineInstr &MI) const {
 2251 bool HexagonInstrInfo::isJumpR(const MachineInstr &MI) const {
 2269 bool HexagonInstrInfo::isJumpWithinBranchRange(const MachineInstr &MI,
 2311 bool HexagonInstrInfo::isLateInstrFeedsEarlyInstr(const MachineInstr &LRMI,
 2312       const MachineInstr &ESMI) const {
 2329 bool HexagonInstrInfo::isLateResultInstr(const MachineInstr &MI) const {
 2348 bool HexagonInstrInfo::isLateSourceInstr(const MachineInstr &MI) const {
 2354 bool HexagonInstrInfo::isLoopN(const MachineInstr &MI) const {
 2366 bool HexagonInstrInfo::isMemOp(const MachineInstr &MI) const {
 2398 bool HexagonInstrInfo::isNewValue(const MachineInstr &MI) const {
 2408 bool HexagonInstrInfo::isNewValueInst(const MachineInstr &MI) const {
 2412 bool HexagonInstrInfo::isNewValueJump(const MachineInstr &MI) const {
 2420 bool HexagonInstrInfo::isNewValueStore(const MachineInstr &MI) const {
 2431 bool HexagonInstrInfo::isOperandExtended(const MachineInstr &MI,
 2438 bool HexagonInstrInfo::isPredicatedNew(const MachineInstr &MI) const {
 2450 bool HexagonInstrInfo::isPredicatedTrue(const MachineInstr &MI) const {
 2481 bool HexagonInstrInfo::isSaveCalleeSavedRegsCall(const MachineInstr &MI) const {
 2488 bool HexagonInstrInfo::isSignExtendingLoad(const MachineInstr &MI) const {
 2566 bool HexagonInstrInfo::isSolo(const MachineInstr &MI) const {
 2571 bool HexagonInstrInfo::isSpillPredRegOp(const MachineInstr &MI) const {
 2581 bool HexagonInstrInfo::isTailCall(const MachineInstr &MI) const {
 2592 bool HexagonInstrInfo::isTC1(const MachineInstr &MI) const {
 2597 bool HexagonInstrInfo::isTC2(const MachineInstr &MI) const {
 2602 bool HexagonInstrInfo::isTC2Early(const MachineInstr &MI) const {
 2607 bool HexagonInstrInfo::isTC4x(const MachineInstr &MI) const {
 2613 bool HexagonInstrInfo::isToBeScheduledASAP(const MachineInstr &MI1,
 2614       const MachineInstr &MI2) const {
 2631 bool HexagonInstrInfo::isHVXVec(const MachineInstr &MI) const {
 2825 bool HexagonInstrInfo::isVecAcc(const MachineInstr &MI) const {
 2829 bool HexagonInstrInfo::isVecALU(const MachineInstr &MI) const {
 2837 bool HexagonInstrInfo::isVecUsableNextPacket(const MachineInstr &ProdMI,
 2838       const MachineInstr &ConsMI) const {
 2851 bool HexagonInstrInfo::isZeroExtendingLoad(const MachineInstr &MI) const {
 2930 bool HexagonInstrInfo::addLatencyToSchedule(const MachineInstr &MI1,
 2931       const MachineInstr &MI2) const {
 2940     const MachineInstr &LdSt, const MachineOperand *&BaseOp, int64_t &Offset,
 2951 bool HexagonInstrInfo::canExecuteInBundle(const MachineInstr &First,
 2952       const MachineInstr &Second) const {
 2976 bool HexagonInstrInfo::doesNotReturn(const MachineInstr &CallMI) const {
 2990 bool HexagonInstrInfo::hasNonExtEquivalent(const MachineInstr &MI) const {
 3025 bool HexagonInstrInfo::hasPseudoInstrPair(const MachineInstr &MI) const {
 3042 bool HexagonInstrInfo::mayBeCurLoad(const MachineInstr &MI) const {
 3049 bool HexagonInstrInfo::mayBeNewStore(const MachineInstr &MI) const {
 3057 bool HexagonInstrInfo::producesStall(const MachineInstr &ProdMI,
 3058       const MachineInstr &ConsMI) const {
 3075 bool HexagonInstrInfo::producesStall(const MachineInstr &MI,
 3088     const MachineInstr &J = *MII;
 3095 bool HexagonInstrInfo::predCanBeUsedAsDotNew(const MachineInstr &MI,
 3147 unsigned HexagonInstrInfo::getAddrMode(const MachineInstr &MI) const {
 3156 MachineOperand *HexagonInstrInfo::getBaseAndOffset(const MachineInstr &MI,
 3189 bool HexagonInstrInfo::getBaseAndOffsetPosition(const MachineInstr &MI,
 3226 SmallVector<MachineInstr*, 2> HexagonInstrInfo::getBranchingInstrs(
 3228   SmallVector<MachineInstr*, 2> Jumpers;
 3264   MachineInstr *LastInst = &*I;
 3266   MachineInstr *SecondLastInst = nullptr;
 3284 unsigned HexagonInstrInfo::getCExtOpNum(const MachineInstr &MI) const {
 3292       const MachineInstr &MI) const {
 3379 unsigned HexagonInstrInfo::getCompoundOpcode(const MachineInstr &GA,
 3380       const MachineInstr &GB) const {
 3417 int HexagonInstrInfo::getDotCurOp(const MachineInstr &MI) const {
 3433 int HexagonInstrInfo::getNonDotCurOp(const MachineInstr &MI) const {
 3530 int HexagonInstrInfo::getDotNewOp(const MachineInstr &MI) const {
 3571 int HexagonInstrInfo::getDotNewPredJumpOp(const MachineInstr &MI,
 3602     for (const MachineInstr &I : B) {
 3657 int HexagonInstrInfo::getDotNewPredOp(const MachineInstr &MI,
 3672 int HexagonInstrInfo::getDotOldOp(const MachineInstr &MI) const {
 3724       const MachineInstr &MI) const {
 4069 short HexagonInstrInfo::getEquivalentHWInstr(const MachineInstr &MI) const {
 4074       const InstrItineraryData *ItinData, const MachineInstr &MI) const {
 4094                                         const MachineInstr &DefMI,
 4096                                         const MachineInstr &UseMI,
 4159 int HexagonInstrInfo::getMaxValue(const MachineInstr &MI) const {
 4173 bool HexagonInstrInfo::isAddrModeWithOffset(const MachineInstr &MI) const {
 4201 unsigned HexagonInstrInfo::getMemAccessSize(const MachineInstr &MI) const {
 4221 int HexagonInstrInfo::getMinValue(const MachineInstr &MI) const {
 4235 short HexagonInstrInfo::getNonExtOpcode(const MachineInstr &MI) const {
 4279 short HexagonInstrInfo::getPseudoInstrPair(const MachineInstr &MI) const {
 4283 short HexagonInstrInfo::getRegForm(const MachineInstr &MI) const {
 4291 unsigned HexagonInstrInfo::getSize(const MachineInstr &MI) const {
 4325 uint64_t HexagonInstrInfo::getType(const MachineInstr &MI) const {
 4330 unsigned HexagonInstrInfo::getUnits(const MachineInstr &MI) const {
 4352 void HexagonInstrInfo::immediateExtend(MachineInstr &MI) const {
 4366       MachineInstr &MI, MachineBasicBlock *NewTarget) const {
 4392   MachineInstr *NewMI;
 4408 bool HexagonInstrInfo::reversePredSense(MachineInstr &MI) const {
 4441 bool HexagonInstrInfo::getBundleNoShuf(const MachineInstr &MIB) const {
lib/Target/Hexagon/HexagonInstrInfo.h
   57   unsigned isLoadFromStackSlot(const MachineInstr &MI,
   65   unsigned isStoreToStackSlot(const MachineInstr &MI,
   72       const MachineInstr &MI,
   79       const MachineInstr &MI,
  204   bool expandPostRAPseudo(MachineInstr &MI) const override;
  207   bool getMemOperandWithOffset(const MachineInstr &LdSt,
  222   bool isPredicated(const MachineInstr &MI) const override;
  225   bool isPostIncrement(const MachineInstr &MI) const override;
  229   bool PredicateInstruction(MachineInstr &MI,
  240   bool DefinesPredicate(MachineInstr &MI,
  246   bool isPredicable(const MachineInstr &MI) const override;
  250   bool isSchedulingBoundary(const MachineInstr &MI,
  271   bool analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  278                            const MachineInstr &MI,
  290   areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
  291                                   const MachineInstr &MIb) const override;
  295   bool getBaseAndOffsetPosition(const MachineInstr &MI, unsigned &BasePos,
  299   bool getIncrementValue(const MachineInstr &MI, int &Value) const override;
  310                         const MachineInstr &DefMI, unsigned DefIdx,
  311                         const MachineInstr &UseMI,
  335   bool isTailCall(const MachineInstr &MI) const override;
  340   MachineInstr *findLoopInstr(MachineBasicBlock *BB, unsigned EndLoopOp,
  344   bool isBaseImmOffset(const MachineInstr &MI) const;
  345   bool isAbsoluteSet(const MachineInstr &MI) const;
  346   bool isAccumulator(const MachineInstr &MI) const;
  347   bool isAddrModeWithOffset(const MachineInstr &MI) const;
  348   bool isComplex(const MachineInstr &MI) const;
  349   bool isCompoundBranchInstr(const MachineInstr &MI) const;
  350   bool isConstExtended(const MachineInstr &MI) const;
  351   bool isDeallocRet(const MachineInstr &MI) const;
  352   bool isDependent(const MachineInstr &ProdMI,
  353                    const MachineInstr &ConsMI) const;
  354   bool isDotCurInst(const MachineInstr &MI) const;
  355   bool isDotNewInst(const MachineInstr &MI) const;
  356   bool isDuplexPair(const MachineInstr &MIa, const MachineInstr &MIb) const;
  356   bool isDuplexPair(const MachineInstr &MIa, const MachineInstr &MIb) const;
  357   bool isEarlySourceInstr(const MachineInstr &MI) const;
  360   bool isExtendable(const MachineInstr &MI) const;
  361   bool isExtended(const MachineInstr &MI) const;
  362   bool isFloat(const MachineInstr &MI) const;
  363   bool isHVXMemWithAIndirect(const MachineInstr &I,
  364                              const MachineInstr &J) const;
  365   bool isIndirectCall(const MachineInstr &MI) const;
  366   bool isIndirectL4Return(const MachineInstr &MI) const;
  367   bool isJumpR(const MachineInstr &MI) const;
  368   bool isJumpWithinBranchRange(const MachineInstr &MI, unsigned offset) const;
  369   bool isLateInstrFeedsEarlyInstr(const MachineInstr &LRMI,
  370                                   const MachineInstr &ESMI) const;
  371   bool isLateResultInstr(const MachineInstr &MI) const;
  372   bool isLateSourceInstr(const MachineInstr &MI) const;
  373   bool isLoopN(const MachineInstr &MI) const;
  374   bool isMemOp(const MachineInstr &MI) const;
  375   bool isNewValue(const MachineInstr &MI) const;
  377   bool isNewValueInst(const MachineInstr &MI) const;
  378   bool isNewValueJump(const MachineInstr &MI) const;
  380   bool isNewValueStore(const MachineInstr &MI) const;
  382   bool isOperandExtended(const MachineInstr &MI, unsigned OperandNum) const;
  383   bool isPredicatedNew(const MachineInstr &MI) const;
  385   bool isPredicatedTrue(const MachineInstr &MI) const;
  390   bool isSaveCalleeSavedRegsCall(const MachineInstr &MI) const;
  391   bool isSignExtendingLoad(const MachineInstr &MI) const;
  392   bool isSolo(const MachineInstr &MI) const;
  393   bool isSpillPredRegOp(const MachineInstr &MI) const;
  394   bool isTC1(const MachineInstr &MI) const;
  395   bool isTC2(const MachineInstr &MI) const;
  396   bool isTC2Early(const MachineInstr &MI) const;
  397   bool isTC4x(const MachineInstr &MI) const;
  398   bool isToBeScheduledASAP(const MachineInstr &MI1,
  399                            const MachineInstr &MI2) const;
  400   bool isHVXVec(const MachineInstr &MI) const;
  404   bool isVecAcc(const MachineInstr &MI) const;
  405   bool isVecALU(const MachineInstr &MI) const;
  406   bool isVecUsableNextPacket(const MachineInstr &ProdMI,
  407                              const MachineInstr &ConsMI) const;
  408   bool isZeroExtendingLoad(const MachineInstr &MI) const;
  410   bool addLatencyToSchedule(const MachineInstr &MI1,
  411                             const MachineInstr &MI2) const;
  412   bool canExecuteInBundle(const MachineInstr &First,
  413                           const MachineInstr &Second) const;
  414   bool doesNotReturn(const MachineInstr &CallMI) const;
  416   bool hasNonExtEquivalent(const MachineInstr &MI) const;
  417   bool hasPseudoInstrPair(const MachineInstr &MI) const;
  419   bool mayBeCurLoad(const MachineInstr &MI) const;
  420   bool mayBeNewStore(const MachineInstr &MI) const;
  421   bool producesStall(const MachineInstr &ProdMI,
  422                      const MachineInstr &ConsMI) const;
  423   bool producesStall(const MachineInstr &MI,
  425   bool predCanBeUsedAsDotNew(const MachineInstr &MI, unsigned PredReg) const;
  429   unsigned getAddrMode(const MachineInstr &MI) const;
  430   MachineOperand *getBaseAndOffset(const MachineInstr &MI, int64_t &Offset,
  432   SmallVector<MachineInstr*,2> getBranchingInstrs(MachineBasicBlock& MBB) const;
  433   unsigned getCExtOpNum(const MachineInstr &MI) const;
  435   getCompoundCandidateGroup(const MachineInstr &MI) const;
  436   unsigned getCompoundOpcode(const MachineInstr &GA,
  437                              const MachineInstr &GB) const;
  439   int getDotCurOp(const MachineInstr &MI) const;
  440   int getNonDotCurOp(const MachineInstr &MI) const;
  441   int getDotNewOp(const MachineInstr &MI) const;
  442   int getDotNewPredJumpOp(const MachineInstr &MI,
  444   int getDotNewPredOp(const MachineInstr &MI,
  446   int getDotOldOp(const MachineInstr &MI) const;
  447   HexagonII::SubInstructionGroup getDuplexCandidateGroup(const MachineInstr &MI)
  449   short getEquivalentHWInstr(const MachineInstr &MI) const;
  451                                       const MachineInstr &MI) const;
  454   int getMaxValue(const MachineInstr &MI) const;
  455   unsigned getMemAccessSize(const MachineInstr &MI) const;
  456   int getMinValue(const MachineInstr &MI) const;
  457   short getNonExtOpcode(const MachineInstr &MI) const;
  460   short getPseudoInstrPair(const MachineInstr &MI) const;
  461   short getRegForm(const MachineInstr &MI) const;
  462   unsigned getSize(const MachineInstr &MI) const;
  463   uint64_t getType(const MachineInstr &MI) const;
  464   unsigned getUnits(const MachineInstr &MI) const;
  473   void immediateExtend(MachineInstr &MI) const;
  474   bool invertAndChangeJumpTarget(MachineInstr &MI,
  477   bool reversePredSense(MachineInstr &MI) const;
  482   bool getBundleNoShuf(const MachineInstr &MIB) const;
  493   short changeAddrMode_abs_io(const MachineInstr &MI) const {
  496   short changeAddrMode_io_abs(const MachineInstr &MI) const {
  499   short changeAddrMode_io_rr(const MachineInstr &MI) const {
  502   short changeAddrMode_rr_io(const MachineInstr &MI) const {
  505   short changeAddrMode_rr_ur(const MachineInstr &MI) const {
  508   short changeAddrMode_ur_rr(const MachineInstr &MI) const {
lib/Target/Hexagon/HexagonMCInstLower.cpp
   36 void HexagonLowerToMC(const MCInstrInfo &MCII, const MachineInstr *MI,
   97 void llvm::HexagonLowerToMC(const MCInstrInfo &MCII, const MachineInstr *MI,
lib/Target/Hexagon/HexagonMachineFunctionInfo.h
   35   std::map<const MachineInstr*, unsigned> PacketInfo;
   49   void setStartPacket(MachineInstr* MI) {
   52   void setEndPacket(MachineInstr* MI)   {
   55   bool isStartPacket(const MachineInstr* MI) const {
   59   bool isEndPacket(const MachineInstr* MI) const {
lib/Target/Hexagon/HexagonNewValueJump.cpp
  101     bool isNewValueJumpCandidate(const MachineInstr &MI) const;
  245   MachineInstr &MI = *II;
  294       MachineInstr *def = MRI.getVRegDef(cmpOp2);
  334 static unsigned getNewValueJumpOpcode(MachineInstr *MI, int reg,
  428     const MachineInstr &MI) const {
  488     MachineInstr *cmpInstr = nullptr, *jmpInstr = nullptr;
  496       MachineInstr &MI = *--MII;
  681           MachineInstr *NewMI;
lib/Target/Hexagon/HexagonOptAddrMode.cpp
   78   using MISetType = DenseSet<MachineInstr *>;
   79   using InstrEvalMap = DenseMap<MachineInstr *, bool>;
   91   bool xformUseMI(MachineInstr *TfrMI, MachineInstr *UseMI,
   91   bool xformUseMI(MachineInstr *TfrMI, MachineInstr *UseMI,
   93   bool processAddUses(NodeAddr<StmtNode *> AddSN, MachineInstr *AddMI,
   95   bool updateAddUses(MachineInstr *AddMI, MachineInstr *UseMI);
   95   bool updateAddUses(MachineInstr *AddMI, MachineInstr *UseMI);
   98   bool hasRepForm(MachineInstr &MI, unsigned TfrDefR);
   99   bool canRemoveAddasl(NodeAddr<StmtNode *> AddAslSN, MachineInstr &MI,
  101   bool isSafeToExtLR(NodeAddr<StmtNode *> SN, MachineInstr *MI,
  105   short getBaseWithLongOffset(const MachineInstr &MI) const;
  106   bool changeStore(MachineInstr *OldMI, MachineOperand ImmOp,
  108   bool changeLoad(MachineInstr *OldMI, MachineOperand ImmOp, unsigned ImmOpNum);
  109   bool changeAddAsl(NodeAddr<UseNode *> AddAslUN, MachineInstr *AddAslMI,
  111   bool isValidOffset(MachineInstr *MI, int Offset);
  125 bool HexagonOptAddrMode::hasRepForm(MachineInstr &MI, unsigned TfrDefR) {
  158                                          MachineInstr &MI,
  186     MachineInstr &UseMI = *NodeAddr<StmtNode *>(IA).Addr->getCode();
  284                                        MachineInstr *MI, unsigned LRExtReg,
  313     MachineInstr *UseMI = NodeAddr<StmtNode *>(IA).Addr->getCode();
  323 bool HexagonOptAddrMode::isValidOffset(MachineInstr *MI, int Offset) {
  348                                         MachineInstr *AddMI,
  355     MachineInstr *MI = SN.Addr->getCode();
  398     MachineInstr *UseMI = OwnerN.Addr->getCode();
  410 bool HexagonOptAddrMode::updateAddUses(MachineInstr *AddMI,
  411                                         MachineInstr *UseMI) {
  442     MachineInstr &MI = *SN.Addr->getCode();
  482 bool HexagonOptAddrMode::changeLoad(MachineInstr *OldMI, MachineOperand ImmOp,
  543 bool HexagonOptAddrMode::changeStore(MachineInstr *OldMI, MachineOperand ImmOp,
  594 short HexagonOptAddrMode::getBaseWithLongOffset(const MachineInstr &MI) const {
  603                                       MachineInstr *AddAslMI,
  621     MachineInstr *UseMI = UseIA.Addr->getCode();
  667 bool HexagonOptAddrMode::xformUseMI(MachineInstr *TfrMI, MachineInstr *UseMI,
  667 bool HexagonOptAddrMode::xformUseMI(MachineInstr *TfrMI, MachineInstr *UseMI,
  694     MachineInstr *MI = SA.Addr->getCode();
  748       MachineInstr *UseMI = OwnerN.Addr->getCode();
lib/Target/Hexagon/HexagonPeephole.cpp
  132       MachineInstr &MI = *I;
lib/Target/Hexagon/HexagonRDFOpt.cpp
   87   bool interpretAsCopy(const MachineInstr *MI, EqualityMap &EM) override;
  111 bool HexagonCP::interpretAsCopy(const MachineInstr *MI, EqualityMap &EM) {
  189   MachineInstr *MI = NodeAddr<StmtNode*>(IA).Addr->getCode();
  218   MachineInstr &MI = *NodeAddr<StmtNode*>(IA).Addr->getCode();
lib/Target/Hexagon/HexagonRegisterInfo.cpp
  187   MachineInstr &MI = *II;
  235 bool HexagonRegisterInfo::shouldCoalesce(MachineInstr *MI,
  258       if (const MachineInstr *MI = Indexes.getInstructionFromIndex(I))
lib/Target/Hexagon/HexagonRegisterInfo.h
   63   bool shouldCoalesce(MachineInstr *MI, const TargetRegisterClass *SrcRC,
lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp
   74       MachineInstr &MI = *I;
lib/Target/Hexagon/HexagonSplitDouble.cpp
   96     bool isVolatileInstr(const MachineInstr *MI) const;
   97     bool isFixedInstr(const MachineInstr *MI) const;
   99     int32_t profit(const MachineInstr *MI) const;
  106     void createHalfInstr(unsigned Opc, MachineInstr *MI,
  108     void splitMemRef(MachineInstr *MI, const UUPairMap &PairMap);
  109     void splitImmediate(MachineInstr *MI, const UUPairMap &PairMap);
  110     void splitCombine(MachineInstr *MI, const UUPairMap &PairMap);
  111     void splitExt(MachineInstr *MI, const UUPairMap &PairMap);
  112     void splitShift(MachineInstr *MI, const UUPairMap &PairMap);
  113     void splitAslOr(MachineInstr *MI, const UUPairMap &PairMap);
  114     bool splitInstr(MachineInstr *MI, const UUPairMap &PairMap);
  115     void replaceSubregUses(MachineInstr *MI, const UUPairMap &PairMap);
  116     void collapseRegPairs(MachineInstr *MI, const UUPairMap &PairMap);
  154 bool HexagonSplitDoubleRegs::isVolatileInstr(const MachineInstr *MI) const {
  161 bool HexagonSplitDoubleRegs::isFixedInstr(const MachineInstr *MI) const {
  235     MachineInstr *DefI = MRI->getVRegDef(R);
  253       MachineInstr *UseI = Op.getParent();
  315 int32_t HexagonSplitDoubleRegs::profit(const MachineInstr *MI) const {
  405   const MachineInstr *DefI = MRI->getVRegDef(Reg);
  427     MachineInstr *DefI = MRI->getVRegDef(DR);
  438       MachineInstr *UseI = U->getParent();
  508   const MachineInstr *CmpI = MRI->getVRegDef(PR);
  548       const MachineInstr *UseI = I->getParent();
  594 void HexagonSplitDoubleRegs::createHalfInstr(unsigned Opc, MachineInstr *MI,
  598   MachineInstr *NewI = BuildMI(B, MI, DL, TII->get(Opc));
  628 void HexagonSplitDoubleRegs::splitMemRef(MachineInstr *MI,
  634   MachineInstr *LowI, *HighI;
  700 void HexagonSplitDoubleRegs::splitImmediate(MachineInstr *MI,
  727 void HexagonSplitDoubleRegs::splitCombine(MachineInstr *MI,
  757 void HexagonSplitDoubleRegs::splitExt(MachineInstr *MI,
  777 void HexagonSplitDoubleRegs::splitShift(MachineInstr *MI,
  901 void HexagonSplitDoubleRegs::splitAslOr(MachineInstr *MI,
  994 bool HexagonSplitDoubleRegs::splitInstr(MachineInstr *MI,
 1077 void HexagonSplitDoubleRegs::replaceSubregUses(MachineInstr *MI,
 1099 void HexagonSplitDoubleRegs::collapseRegPairs(MachineInstr *MI,
 1127   using MISet = std::set<MachineInstr *>;
 1139     MachineInstr *DefI = MRI->getVRegDef(DR);
lib/Target/Hexagon/HexagonStoreWidening.cpp
   87     static bool handledStoreType(const MachineInstr *MI);
   92     using InstrGroup = std::vector<MachineInstr *>;
   96     bool instrAliased(InstrGroup &Stores, const MachineInstr *MI);
   97     void createStoreGroup(MachineInstr *BaseStore, InstrGroup::iterator Begin,
  107     bool storesAreAdjacent(const MachineInstr *S1, const MachineInstr *S2);
  107     bool storesAreAdjacent(const MachineInstr *S1, const MachineInstr *S2);
  121 static unsigned getBaseAddressRegister(const MachineInstr *MI) {
  127 static int64_t getStoreOffset(const MachineInstr *MI) {
  145 static const MachineMemOperand &getStoreTarget(const MachineInstr *MI) {
  152 inline bool HexagonStoreWidening::handledStoreType(const MachineInstr *MI) {
  192       const MachineInstr *MI) {
  215   for (auto &I : MBB)
  222     MachineInstr *MI = *I;
  238 void HexagonStoreWidening::createStoreGroup(MachineInstr *BaseStore,
  247     MachineInstr *MI = *I;
  283 bool HexagonStoreWidening::storesAreAdjacent(const MachineInstr *S1,
  284       const MachineInstr *S2) {
  313   MachineInstr *FirstMI = *Begin;
  340   MachineInstr *S1 = FirstMI;
  353     MachineInstr *S2 = *I;
  403     MachineInstr *MI = *I;
  415   MachineInstr *FirstSt = OG.front();
  433     MachineInstr *StI =
  445     MachineInstr *TfrI = BuildMI(*MF, DL, TfrD, VReg)
  456     MachineInstr *StI =
  493   SmallPtrSet<MachineInstr*, 4> InstrSet;
  498   for (auto &I : *MBB) {
lib/Target/Hexagon/HexagonSubtarget.cpp
  146     MachineInstr &MI1 = *SU.getInstr();
  155       MachineInstr &MI2 = *SI.getSUnit()->getInstr();
  231       const MachineInstr *MI = DAG->SUnits[su].getInstr();
  273     MachineInstr &L0 = *S0.getInstr();
  286       MachineInstr &L1 = *S1.getInstr();
  321   MachineInstr *SrcInst = Src->getInstr();
  322   MachineInstr *DstInst = Dst->getInstr();
  348     MachineInstr *DDst = Dst->Succs[0].getSUnit()->getInstr();
  401 void HexagonSubtarget::updateLatency(MachineInstr &SrcInst,
  402       MachineInstr &DstInst, SDep &Dep) const {
  419   MachineInstr *SrcI = Src->getInstr();
  431     MachineInstr *DstI = Dst->getInstr();
  489   MachineInstr &SrcInst = *Src->getInstr();
  490   MachineInstr &DstInst = *Dst->getInstr();
lib/Target/Hexagon/HexagonSubtarget.h
  270   void updateLatency(MachineInstr &SrcInst, MachineInstr &DstInst, SDep &Dep)
  270   void updateLatency(MachineInstr &SrcInst, MachineInstr &DstInst, SDep &Dep)
lib/Target/Hexagon/HexagonVExtract.cpp
   56     unsigned genElemLoad(MachineInstr *ExtI, unsigned BaseR,
   66 unsigned HexagonVExtract::genElemLoad(MachineInstr *ExtI, unsigned BaseR,
   77     MachineInstr *DI = MRI.getVRegDef(ExtIdxR);
  106   std::map<unsigned, SmallVector<MachineInstr*,4>> VExtractMap;
  110     for (MachineInstr &MI : MBB) {
  127     MachineInstr *DefI = MRI.getVRegDef(VecR);
  140     for (MachineInstr *ExtI : P.second) {
lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
  146 static bool hasWriteToReadDep(const MachineInstr &FirstI,
  147                               const MachineInstr &SecondI,
  173     MI.clearFlag(MachineInstr::BundledSucc);
  174     MI.clearFlag(MachineInstr::BundledPred);
  197   MachineInstr &SingleI = *BundleIt->getNextNode();
  287   auto *ExtMI = MF.CreateMachineInstr(HII->get(Hexagon::A4_ext), DebugLoc());
  295 bool HexagonPacketizerList::isCallDependent(const MachineInstr &MI,
  324 static bool isDirectJump(const MachineInstr &MI) {
  328 static bool isSchedBarrier(const MachineInstr &MI) {
  336 static bool isControlFlow(const MachineInstr &MI) {
  341 static bool doesModifyCalleeSavedReg(const MachineInstr &MI,
  352 bool HexagonPacketizerList::isNewifiable(const MachineInstr &MI,
  368 bool HexagonPacketizerList::promoteToDotCur(MachineInstr &MI,
  378   MachineInstr *MI = nullptr;
  399 bool HexagonPacketizerList::canPromoteToDotCur(const MachineInstr &MI,
  421   MachineInstr &MJ = *MII;
  450 bool HexagonPacketizerList::promoteToDotNew(MachineInstr &MI,
  463 bool HexagonPacketizerList::demoteToDotOld(MachineInstr &MI) {
  469 bool HexagonPacketizerList::useCallersSP(MachineInstr &MI) {
  490 void HexagonPacketizerList::useCalleesSP(MachineInstr &MI) {
  510   MachineInstr &MI = *SUI->getInstr();
  511   MachineInstr &MJ = *SUJ->getInstr();
  544 void HexagonPacketizerList::undoChangedOffset(MachineInstr &MI) {
  559 static PredicateKind getPredicateSense(const MachineInstr &MI,
  568 static const MachineOperand &getPostIncrementOperand(const MachineInstr &MI,
  602 static const MachineOperand& getStoreValueOperand(const MachineInstr &MI) {
  607 static bool isLoadAbsSet(const MachineInstr &MI) {
  621 static const MachineOperand &getAbsSetOperand(const MachineInstr &MI) {
  643 bool HexagonPacketizerList::canPromoteToNewValueStore(const MachineInstr &MI,
  644       const MachineInstr &PacketMI, unsigned DepReg) {
  752     MachineInstr &TempMI = *TempSU->getInstr();
  812 bool HexagonPacketizerList::canPromoteToNewValue(const MachineInstr &MI,
  819   MachineInstr &PacketMI = *PacketSU->getInstr();
  828 static bool isImplicitDependency(const MachineInstr &I, bool CheckDef,
  842 bool HexagonPacketizerList::canPromoteToDotNew(const MachineInstr &MI,
  852   const MachineInstr &PI = *PacketSU->getInstr();
  885   MachineInstr *NewMI = MF.CreateMachineInstr(D, DebugLoc());
  911 bool HexagonPacketizerList::restrictingDepExistInPacket(MachineInstr &MI,
  940 static unsigned getPredicatedRegister(MachineInstr &MI,
  958 bool HexagonPacketizerList::arePredicatesComplements(MachineInstr &MI1,
  959                                                      MachineInstr &MI2) {
 1035 bool HexagonPacketizerList::ignorePseudoInstruction(const MachineInstr &MI,
 1058 bool HexagonPacketizerList::isSoloInstruction(const MachineInstr &MI) {
 1093 static bool cannotCoexistAsymm(const MachineInstr &MI, const MachineInstr &MJ,
 1093 static bool cannotCoexistAsymm(const MachineInstr &MI, const MachineInstr &MJ,
 1143 bool HexagonPacketizerList::cannotCoexist(const MachineInstr &MI,
 1144       const MachineInstr &MJ) {
 1154       MachineInstr &MI = *I;
 1180 static bool isSystemInstr(const MachineInstr &MI) {
 1192 bool HexagonPacketizerList::hasDeadDependence(const MachineInstr &I,
 1193                                               const MachineInstr &J) {
 1219 bool HexagonPacketizerList::hasControlDependence(const MachineInstr &I,
 1220                                                  const MachineInstr &J) {
 1255 bool HexagonPacketizerList::hasRegMaskDependence(const MachineInstr &I,
 1256                                                  const MachineInstr &J) {
 1285 bool HexagonPacketizerList::hasDualStoreDependence(const MachineInstr &I,
 1286                                                    const MachineInstr &J) {
 1312   MachineInstr &I = *SUI->getInstr();
 1313   MachineInstr &J = *SUJ->getInstr();
 1350     MachineInstr &NextMI = *NextMII;
 1359     for (MachineInstr *PI : CurrentPacketMIs) {
 1623   MachineInstr &I = *SUI->getInstr();
 1624   MachineInstr &J = *SUJ->getInstr();
 1708     MachineInstr &NvjMI = *++MII;
 1786   for (MachineInstr *MI : CurrentPacketMIs) {
 1788     for (auto &I : make_range(HII->expandVGatherPseudo(*MI), NextMI))
 1808 bool HexagonPacketizerList::shouldAddToPacket(const MachineInstr &MI) {
 1815 bool HexagonPacketizerList::producesStall(const MachineInstr &I) {
lib/Target/Hexagon/HexagonVLIWPacketizer.h
   29   std::vector<MachineInstr *> OldPacketMIs;
   54   std::vector<MachineInstr*> IgnoreDepMIs;
   79   bool ignorePseudoInstruction(const MachineInstr &MI,
   84   bool isSoloInstruction(const MachineInstr &MI) override;
   98   bool shouldAddToPacket(const MachineInstr &MI) override;
  109   bool isCallDependent(const MachineInstr &MI, SDep::Kind DepType,
  111   bool promoteToDotCur(MachineInstr &MI, SDep::Kind DepType,
  114   bool canPromoteToDotCur(const MachineInstr &MI, const SUnit *PacketSU,
  119   bool promoteToDotNew(MachineInstr &MI, SDep::Kind DepType,
  122   bool canPromoteToDotNew(const MachineInstr &MI, const SUnit *PacketSU,
  125   bool canPromoteToNewValue(const MachineInstr &MI, const SUnit *PacketSU,
  127   bool canPromoteToNewValueStore(const MachineInstr &MI,
  128                                  const MachineInstr &PacketMI, unsigned DepReg);
  129   bool demoteToDotOld(MachineInstr &MI);
  130   bool useCallersSP(MachineInstr &MI);
  131   void useCalleesSP(MachineInstr &MI);
  133   void undoChangedOffset(MachineInstr &MI);
  134   bool arePredicatesComplements(MachineInstr &MI1, MachineInstr &MI2);
  134   bool arePredicatesComplements(MachineInstr &MI1, MachineInstr &MI2);
  135   bool restrictingDepExistInPacket(MachineInstr&, unsigned);
  136   bool isNewifiable(const MachineInstr &MI, const TargetRegisterClass *NewRC);
  137   bool isCurifiable(MachineInstr &MI);
  138   bool cannotCoexist(const MachineInstr &MI, const MachineInstr &MJ);
  138   bool cannotCoexist(const MachineInstr &MI, const MachineInstr &MJ);
  147   bool hasDeadDependence(const MachineInstr &I, const MachineInstr &J);
  147   bool hasDeadDependence(const MachineInstr &I, const MachineInstr &J);
  148   bool hasControlDependence(const MachineInstr &I, const MachineInstr &J);
  148   bool hasControlDependence(const MachineInstr &I, const MachineInstr &J);
  149   bool hasRegMaskDependence(const MachineInstr &I, const MachineInstr &J);
  149   bool hasRegMaskDependence(const MachineInstr &I, const MachineInstr &J);
  150   bool hasDualStoreDependence(const MachineInstr &I, const MachineInstr &J);
  150   bool hasDualStoreDependence(const MachineInstr &I, const MachineInstr &J);
  151   bool producesStall(const MachineInstr &MI);
lib/Target/Hexagon/HexagonVectorPrint.cpp
  107 static bool getInstrVecReg(const MachineInstr &MI, unsigned &Reg) {
  135   std::vector<MachineInstr *> VecPrintList;
  137     for (auto &MI : MBB) {
  163   for (auto *I : VecPrintList) {
lib/Target/Hexagon/RDFCopy.cpp
   40 bool CopyPropagation::interpretAsCopy(const MachineInstr *MI, EqualityMap &EM) {
lib/Target/Hexagon/RDFCopy.h
   40     virtual bool interpretAsCopy(const MachineInstr *MI, EqualityMap &EM);
lib/Target/Hexagon/RDFDeadCode.cpp
   58 bool DeadCodeElimination::isLiveInstr(const MachineInstr *MI) const {
  237     MachineInstr *MI = NodeAddr<StmtNode*>(IA).Addr->getCode();
lib/Target/Hexagon/RDFDeadCode.h
   58     bool isLiveInstr(const MachineInstr *MI) const;
lib/Target/Hexagon/RDFGraph.cpp
  225   const MachineInstr &MI = *P.Obj.Addr->getCode();
  230     MachineInstr::const_mop_iterator T =
  598 bool TargetOperandInfo::isPreserving(const MachineInstr &In, unsigned OpNum)
  604 bool TargetOperandInfo::isClobbering(const MachineInstr &In, unsigned OpNum)
  617 bool TargetOperandInfo::isFixedReg(const MachineInstr &In, unsigned OpNum)
  844       MachineInstr *MI) {
  876     for (MachineInstr &I : B) {
 1105       MachineInstr *MI = NodeAddr<StmtNode*>(IA).Addr->getCode();
 1248 void DataFlowGraph::buildStmt(NodeAddr<BlockNode*> BA, MachineInstr &In) {
lib/Target/Hexagon/RDFGraph.h
  418     virtual bool isPreserving(const MachineInstr &In, unsigned OpNum) const;
  419     virtual bool isClobbering(const MachineInstr &In, unsigned OpNum) const;
  420     virtual bool isFixedReg(const MachineInstr &In, unsigned OpNum) const;
  615     MachineInstr *getCode() const {
  621     MachineInstr *getCode() const {
  622       return CodeNode::getCode<MachineInstr*>();
  835         MachineInstr *MI);
  847     void buildStmt(NodeAddr<BlockNode*> BA, MachineInstr &In);
lib/Target/Hexagon/RDFLiveness.cpp
  191       MachineInstr *CA = NodeAddr<StmtNode*>(OA).Addr->getCode();
  192       MachineInstr *CB = NodeAddr<StmtNode*>(OB).Addr->getCode();
  880     MachineInstr *MI = &*I;
lib/Target/Hexagon/RDFRegisters.cpp
   78     for (const MachineInstr &In : B)
lib/Target/Lanai/LanaiAsmPrinter.cpp
   51   void printOperand(const MachineInstr *MI, int OpNum, raw_ostream &O);
   52   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
   54   void EmitInstruction(const MachineInstr *MI) override;
   59   void customEmitInstruction(const MachineInstr *MI);
   60   void emitCallInstruction(const MachineInstr *MI);
   64 void LanaiAsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
  111 bool LanaiAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  149 void LanaiAsmPrinter::emitCallInstruction(const MachineInstr *MI) {
  189 void LanaiAsmPrinter::customEmitInstruction(const MachineInstr *MI) {
  197 void LanaiAsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/Lanai/LanaiFrameLowering.cpp
   72       MachineInstr &MI = *MBBI++;
  118       .setMIFlag(MachineInstr::FrameSetup);
  125       .setMIFlag(MachineInstr::FrameSetup);
  133         .setMIFlag(MachineInstr::FrameSetup);
lib/Target/Lanai/LanaiInstrInfo.cpp
   89     const MachineInstr &MIa, const MachineInstr &MIb) const {
   89     const MachineInstr &MIa, const MachineInstr &MIb) const {
  119 bool LanaiInstrInfo::expandPostRAPseudo(MachineInstr & /*MI*/) const {
  177 bool LanaiInstrInfo::analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  205 inline static bool isRedundantFlagInstr(MachineInstr *CmpI, unsigned SrcReg,
  207                                         MachineInstr *OI) {
  284     MachineInstr &CmpInstr, unsigned SrcReg, unsigned SrcReg2, int /*CmpMask*/,
  287   MachineInstr *MI = MRI->getUniqueVRegDef(SrcReg);
  303   MachineInstr *Sub = nullptr;
  321     const MachineInstr &Instr = *I;
  356       const MachineInstr &Instr = *I;
  438 bool LanaiInstrInfo::analyzeSelect(const MachineInstr &MI,
  457 static MachineInstr *canFoldIntoSelect(unsigned Reg,
  463   MachineInstr *MI = MRI.getVRegDef(Reg);
  492 MachineInstr *
  493 LanaiInstrInfo::optimizeSelect(MachineInstr &MI,
  494                                SmallPtrSetImpl<MachineInstr *> &SeenMIs,
  498   MachineInstr *DefMI = canFoldIntoSelect(MI.getOperand(1).getReg(), MRI);
  717 unsigned LanaiInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
  728 unsigned LanaiInstrInfo::isLoadFromStackSlotPostFE(const MachineInstr &MI,
  746 unsigned LanaiInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  758     const MachineInstr &LdSt, const MachineOperand *&BaseOp, int64_t &Offset,
  796 bool LanaiInstrInfo::getMemOperandWithOffset(const MachineInstr &LdSt,
lib/Target/Lanai/LanaiInstrInfo.h
   38   bool areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
   39                                        const MachineInstr &MIb) const override;
   41   unsigned isLoadFromStackSlot(const MachineInstr &MI,
   44   unsigned isLoadFromStackSlotPostFE(const MachineInstr &MI,
   47   unsigned isStoreToStackSlot(const MachineInstr &MI,
   68   bool expandPostRAPseudo(MachineInstr &MI) const override;
   70   bool getMemOperandWithOffset(const MachineInstr &LdSt,
   75   bool getMemOperandWithOffsetWidth(const MachineInstr &LdSt,
   97   bool analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  104   bool optimizeCompareInstr(MachineInstr &CmpInstr, unsigned SrcReg,
  118   bool analyzeSelect(const MachineInstr &MI,
  131   MachineInstr *optimizeSelect(MachineInstr &MI,
  131   MachineInstr *optimizeSelect(MachineInstr &MI,
  132                                SmallPtrSetImpl<MachineInstr *> &SeenMIs,
lib/Target/Lanai/LanaiMCInstLower.cpp
   93 void LanaiMCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
lib/Target/Lanai/LanaiMCInstLower.h
   34   void Lower(const MachineInstr *MI, MCInst &OutMI) const;
lib/Target/Lanai/LanaiMemAluCombiner.cpp
  149 bool isNonVolatileMemoryOp(const MachineInstr &MI) {
  191   for (MachineInstr::const_mop_iterator Mop = Instr->operands_begin();
lib/Target/Lanai/LanaiRegisterInfo.cpp
  141   MachineInstr &MI = *II;
lib/Target/MSP430/MSP430AsmPrinter.cpp
   52     void printOperand(const MachineInstr *MI, int OpNum,
   54     void printSrcMemOperand(const MachineInstr *MI, int OpNum,
   56     bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
   58     bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
   60     void EmitInstruction(const MachineInstr *MI) override;
   78 void MSP430AsmPrinter::printOperand(const MachineInstr *MI, int OpNum,
  107 void MSP430AsmPrinter::printSrcMemOperand(const MachineInstr *MI, int OpNum,
  129 bool MSP430AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  139 bool MSP430AsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
  151 void MSP430AsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/MSP430/MSP430BranchSelector.cpp
   98     for (MachineInstr &MI : MBB) {
  179       MachineInstr &OldBranch = *MI;
lib/Target/MSP430/MSP430FrameLowering.cpp
   97       MachineInstr *MI =
  159       MachineInstr *MI =
  169       MachineInstr *MI =
  237     MachineInstr &Old = *I;
  245       MachineInstr *New = nullptr;
  274       MachineInstr &Old = *I;
  275       MachineInstr *New =
lib/Target/MSP430/MSP430ISelLowering.cpp
 1410 MSP430TargetLowering::EmitShiftInstr(MachineInstr &MI,
 1540 MSP430TargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
lib/Target/MSP430/MSP430ISelLowering.h
  130     EmitInstrWithCustomInserter(MachineInstr &MI,
  132     MachineBasicBlock *EmitShiftInstr(MachineInstr &MI,
lib/Target/MSP430/MSP430InstrInfo.cpp
  163 bool MSP430InstrInfo::isUnpredicatedTerminator(const MachineInstr &MI) const {
  300 unsigned MSP430InstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
lib/Target/MSP430/MSP430InstrInfo.h
   54   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
   59   bool isUnpredicatedTerminator(const MachineInstr &MI) const override;
   72   int64_t getFramePoppedByCallee(const MachineInstr &I) const {
lib/Target/MSP430/MSP430MCInstLower.cpp
  115 void MSP430MCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
lib/Target/MSP430/MSP430MCInstLower.h
   33   void Lower(const MachineInstr *MI, MCInst &OutMI) const;
lib/Target/MSP430/MSP430RegisterInfo.cpp
  108   MachineInstr &MI = *II;
lib/Target/Mips/MicroMipsSizeReduction.cpp
  123   MachineInstr *MI;         // Instruction
  128   ReduceEntryFunArgs(MachineInstr *argMI, const ReduceEntry &argEntry,
  196   static bool ReplaceInstruction(MachineInstr *MI, const ReduceEntry &Entry,
  197                                  MachineInstr *MI2 = nullptr,
  308 static bool GetImm(MachineInstr *MI, unsigned Op, int64_t &Imm) {
  337 static bool ImmInRange(MachineInstr *MI, const ReduceEntry &Entry) {
  351 static bool CheckXWPInstr(MachineInstr *MI, bool ReduceToLwp,
  398 static bool ConsecutiveInstr(MachineInstr *MI1, MachineInstr *MI2) {
  398 static bool ConsecutiveInstr(MachineInstr *MI1, MachineInstr *MI2) {
  417   MachineInstr *MI = &*MII;
  442   MachineInstr *MI = Arguments->MI;
  464   MachineInstr *MI1 = Arguments->MI;
  465   MachineInstr *MI2 = &*NextMII;
  497   MachineInstr *MI = Arguments->MI;
  511   MachineInstr *MI = Arguments->MI;
  525   MachineInstr *MI = Arguments->MI;
  543   MachineInstr *MI = Arguments->MI;
  558   MachineInstr *MI = Arguments->MI;
  621   MachineInstr *MI1 = Arguments->MI;
  622   MachineInstr *MI2 = &*NextMII;
  656   MachineInstr *MI = Arguments->MI;
  680     MachineInstr *MI = &*MII;
  693 bool MicroMipsSizeReduce::ReplaceInstruction(MachineInstr *MI,
  695                                              MachineInstr *MI2,
lib/Target/Mips/Mips16FrameLowering.cpp
   88       .addReg(Mips::SP).setMIFlag(MachineInstr::FrameSetup);
lib/Target/Mips/Mips16ISelLowering.cpp
  164 Mips16TargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
  511 Mips16TargetLowering::emitSel16(unsigned Opc, MachineInstr &MI,
  574 Mips16TargetLowering::emitSelT16(unsigned Opc1, unsigned Opc2, MachineInstr &MI,
  640                                   MachineInstr &MI,
  706                                           MachineInstr &MI,
  724     MachineInstr &MI, MachineBasicBlock *BB) const {
  756 Mips16TargetLowering::emitFEXT_CCRX16_ins(unsigned SltOpc, MachineInstr &MI,
  775                                            MachineInstr &MI,
lib/Target/Mips/Mips16ISelLowering.h
   30     EmitInstrWithCustomInserter(MachineInstr &MI,
   53     MachineBasicBlock *emitSel16(unsigned Opc, MachineInstr &MI,
   57                                    MachineInstr &MI,
   61                                   MachineInstr &MI,
   65                                            MachineInstr &MI,
   70                                             MachineInstr &MI,
   73     MachineBasicBlock *emitFEXT_CCRX16_ins(unsigned SltOpc, MachineInstr &MI,
   77                                             MachineInstr &MI,
lib/Target/Mips/Mips16InstrInfo.cpp
   54 unsigned Mips16InstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
   64 unsigned Mips16InstrInfo::isStoreToStackSlot(const MachineInstr &MI,
   99 bool Mips16InstrInfo::isCopyInstrImpl(const MachineInstr &MI,
  146 bool Mips16InstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
lib/Target/Mips/Mips16InstrInfo.h
   40   unsigned isLoadFromStackSlot(const MachineInstr &MI,
   48   unsigned isStoreToStackSlot(const MachineInstr &MI,
   69   bool expandPostRAPseudo(MachineInstr &MI) const override;
  109   bool isCopyInstrImpl(const MachineInstr &MI, const MachineOperand *&Source,
lib/Target/Mips/Mips16RegisterInfo.cpp
   79   MachineInstr &MI = *II;
lib/Target/Mips/MipsAsmPrinter.cpp
  116                                               const MachineInstr *MI) {
  161 static void emitDirectiveRelocJalr(const MachineInstr &MI,
  188 void MipsAsmPrinter::EmitInstruction(const MachineInstr *MI) {
  514 bool MipsAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,
  619 bool MipsAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
  655 void MipsAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
  721 printMemOperand(const MachineInstr *MI, int opNum, raw_ostream &O) {
  744 printMemOperandEA(const MachineInstr *MI, int opNum, raw_ostream &O) {
  753 printFCCOperand(const MachineInstr *MI, int opNum, raw_ostream &O,
  760 printRegisterList(const MachineInstr *MI, int opNum, raw_ostream &O) {
 1135 void MipsAsmPrinter::EmitSled(const MachineInstr &MI, SledKind Kind) {
 1233 void MipsAsmPrinter::LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI) {
 1237 void MipsAsmPrinter::LowerPATCHABLE_FUNCTION_EXIT(const MachineInstr &MI) {
 1241 void MipsAsmPrinter::LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI) {
 1245 void MipsAsmPrinter::PrintDebugValueComment(const MachineInstr *MI,
lib/Target/Mips/MipsAsmPrinter.h
   45   void EmitInstrWithMacroNoAT(const MachineInstr *MI);
   53   void LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI);
   54   void LowerPATCHABLE_FUNCTION_EXIT(const MachineInstr &MI);
   55   void LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI);
   69   void EmitSled(const MachineInstr &MI, SledKind Kind);
   73                                    const MachineInstr *MI);
   79                                 const MachineInstr *MI);
  137   void EmitInstruction(const MachineInstr *MI) override;
  147   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  149   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum,
  151   void printOperand(const MachineInstr *MI, int opNum, raw_ostream &O);
  152   void printMemOperand(const MachineInstr *MI, int opNum, raw_ostream &O);
  153   void printMemOperandEA(const MachineInstr *MI, int opNum, raw_ostream &O);
  154   void printFCCOperand(const MachineInstr *MI, int opNum, raw_ostream &O,
  156   void printRegisterList(const MachineInstr *MI, int opNum, raw_ostream &O);
  159   void PrintDebugValueComment(const MachineInstr *MI, raw_ostream &OS);
lib/Target/Mips/MipsBranchExpansion.cpp
  129   MachineInstr *Br = nullptr;
  156   int64_t computeOffset(const MachineInstr *Br);
  225 static MachineBasicBlock *getTargetMBB(const MachineInstr &Br) {
  304 int64_t MipsBranchExpansion::computeOffset(const MachineInstr *Br) {
lib/Target/Mips/MipsCallLowering.cpp
  575     MachineInstr *CalleeGlobalValue =
lib/Target/Mips/MipsConstantIslandPass.cpp
   88 static unsigned int branchTargetOperand(MachineInstr *MI) {
  254       MachineInstr *MI;
  255       MachineInstr *CPEMI;
  267       CPUser(MachineInstr *mi, MachineInstr *cpemi, unsigned maxdisp,
  267       CPUser(MachineInstr *mi, MachineInstr *cpemi, unsigned maxdisp,
  304     MachineInstr *CPEMI;
  308     CPEntry(MachineInstr *cpemi, unsigned cpi, unsigned rc = 0)
  324     MachineInstr *MI;
  329     ImmBranch(MachineInstr *mi, unsigned maxdisp, bool cond, int ubr)
  372     void doInitialPlacement(std::vector<MachineInstr*> &CPEMIs);
  373     CPEntry *findConstPoolEntry(unsigned CPI, const MachineInstr *CPEMI);
  374     Align getCPEAlign(const MachineInstr &CPEMI);
  375     void initializeFunctionInfo(const std::vector<MachineInstr*> &CPEMIs);
  376     unsigned getOffsetOf(MachineInstr *MI) const;
  386     MachineBasicBlock *splitBlockBeforeInstr(MachineInstr &MI);
  389     bool decrementCPEReferenceCount(unsigned CPI, MachineInstr* CPEMI);
  397     void removeDeadCPEMI(MachineInstr *CPEMI);
  399     bool isCPEntryInRange(MachineInstr *MI, unsigned UserOffset,
  400                           MachineInstr *CPEMI, unsigned Disp, bool NegOk,
  404     bool isBBInRange(MachineInstr *MI, MachineBasicBlock *BB, unsigned Disp);
  467   std::vector<MachineInstr*> CPEMIs;
  526 MipsConstantIslands::doInitialPlacement(std::vector<MachineInstr*> &CPEMIs) {
  567     MachineInstr *CPEMI =
  609                                         const MachineInstr *CPEMI) {
  622 Align MipsConstantIslands::getCPEAlign(const MachineInstr &CPEMI) {
  638 initializeFunctionInfo(const std::vector<MachineInstr*> &CPEMIs) {
  658     for (MachineInstr &MI : MBB) {
  769           MachineInstr *CPEMI = CPEMIs[CPI];
  794   for (const MachineInstr &MI : *MBB)
  801 unsigned MipsConstantIslands::getOffsetOf(MachineInstr *MI) const {
  850 MipsConstantIslands::splitBlockBeforeInstr(MachineInstr &MI) {
  975   (MachineInstr *MI, unsigned UserOffset,
  976    MachineInstr *CPEMI, unsigned MaxDisp,
 1005   MachineInstr *PredMI = &Pred->back();
 1027                                                     MachineInstr *CPEMI) {
 1048   MachineInstr *UserMI = U.MI;
 1049   MachineInstr *CPEMI  = U.CPEMI;
 1101   MachineInstr *UserMI = U.MI;
 1102   MachineInstr *CPEMI  = U.CPEMI;
 1216   MachineInstr *UserMI = U.MI;
 1217   MachineInstr *CPEMI  = U.CPEMI;
 1311   MachineInstr *UserMI = U.MI;
 1312   MachineInstr *CPEMI  = U.CPEMI;
 1416 void MipsConstantIslands::removeDeadCPEMI(MachineInstr *CPEMI) {
 1460   (MachineInstr *MI,MachineBasicBlock *DestBB, unsigned MaxDisp) {
 1485   MachineInstr *MI = Br.MI;
 1504   MachineInstr *MI = Br.MI;
 1544   MachineInstr *MI = Br.MI;
 1570   MachineInstr *BMI = &MBB->back();
lib/Target/Mips/MipsDelaySlotFiller.cpp
  108   using BB2BrMap = SmallDenseMap<MachineBasicBlock *, MachineInstr *, 2>;
  114     void init(const MachineInstr &MI);
  117     void setCallerSaved(const MachineInstr &MI);
  127     bool update(const MachineInstr &MI, unsigned Begin, unsigned End);
  147     bool hasHazard(const MachineInstr &MI);
  161     virtual bool hasHazard_(const MachineInstr &MI) = 0;
  170     bool hasHazard_(const MachineInstr &MI) override { return true; }
  179     bool hasHazard_(const MachineInstr &MI) override;
  191     bool hasHazard_(const MachineInstr &MI) override;
  199     bool getUnderlyingObjects(const MachineInstr &MI,
  257     bool delayHasHazard(const MachineInstr &Candidate, RegDefsUses &RegDU,
  269     bool searchBackward(MachineBasicBlock &MBB, MachineInstr &Slot) const;
  286     std::pair<MipsInstrInfo::BranchType, MachineInstr *>
  295     bool terminateSearch(const MachineInstr &Candidate) const;
  304 static bool hasUnoccupiedSlot(const MachineInstr *MI) {
  349 void RegDefsUses::init(const MachineInstr &MI) {
  366 void RegDefsUses::setCallerSaved(const MachineInstr &MI) {
  413 bool RegDefsUses::update(const MachineInstr &MI, unsigned Begin, unsigned End) {
  451 bool InspectMemInstr::hasHazard(const MachineInstr &MI) {
  473 bool LoadFromStackOrConst::hasHazard_(const MachineInstr &MI) {
  493 bool MemDefsUses::hasHazard_(const MachineInstr &MI) {
  524 getUnderlyingObjects(const MachineInstr &MI,
  742                                          MachineInstr &Slot) const {
  848 std::pair<MipsInstrInfo::BranchType, MachineInstr *>
  854   SmallVector<MachineInstr*, 2> BranchInstrs;
  890   std::pair<MipsInstrInfo::BranchType, MachineInstr *> P =
  908 bool MipsDelaySlotFiller::delayHasHazard(const MachineInstr &Candidate,
  922 bool MipsDelaySlotFiller::terminateSearch(const MachineInstr &Candidate) const {
lib/Target/Mips/MipsISelLowering.cpp
 1263 static MachineBasicBlock *insertDivByZeroTrap(MachineInstr &MI,
 1294 MipsTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
 1422 MipsTargetLowering::emitAtomicBinary(MachineInstr &MI,
 1539     MachineInstr &MI, MachineBasicBlock *BB, unsigned Size, unsigned DstReg,
 1569     MachineInstr &MI, MachineBasicBlock *BB, unsigned Size) const {
 1721 MipsTargetLowering::emitAtomicCmpSwap(MachineInstr &MI,
 1778     MachineInstr &MI, MachineBasicBlock *BB, unsigned Size) const {
 2965 void MipsTargetLowering::AdjustInstrPostInstrSelection(MachineInstr &MI,
 4414 MachineBasicBlock *MipsTargetLowering::emitPseudoSELECT(MachineInstr &MI,
 4492 MachineBasicBlock *MipsTargetLowering::emitPseudoD_SELECT(MachineInstr &MI,
lib/Target/Mips/MipsISelLowering.h
  343     EmitInstrWithCustomInserter(MachineInstr &MI,
  346     void AdjustInstrPostInstrSelection(MachineInstr &MI,
  692     MachineBasicBlock *emitSignExtendToI32InReg(MachineInstr &MI,
  697     MachineBasicBlock *emitAtomicBinary(MachineInstr &MI,
  699     MachineBasicBlock *emitAtomicBinaryPartword(MachineInstr &MI,
  702     MachineBasicBlock *emitAtomicCmpSwap(MachineInstr &MI,
  704     MachineBasicBlock *emitAtomicCmpSwapPartword(MachineInstr &MI,
  707     MachineBasicBlock *emitSEL_D(MachineInstr &MI, MachineBasicBlock *BB) const;
  708     MachineBasicBlock *emitPseudoSELECT(MachineInstr &MI, MachineBasicBlock *BB,
  710     MachineBasicBlock *emitPseudoD_SELECT(MachineInstr &MI,
lib/Target/Mips/MipsInstrInfo.cpp
   79 void MipsInstrInfo::AnalyzeCondBr(const MachineInstr *Inst, unsigned Opc,
   99   SmallVector<MachineInstr*, 2> BranchInstrs;
  193     SmallVectorImpl<MachineInstr *> &BranchInstrs) const {
  207   MachineInstr *LastInst = &*I;
  217   MachineInstr *SecondLastInst = nullptr;
  563 bool MipsInstrInfo::SafeInForbiddenSlot(const MachineInstr &MI) const {
  571 bool MipsInstrInfo::HasForbiddenSlot(const MachineInstr &MI) const {
  576 unsigned MipsInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
  680 bool MipsInstrInfo::findCommutedOpIndices(const MachineInstr &MI,
  722 static bool verifyInsExtInstruction(const MachineInstr &MI, StringRef &ErrInfo,
  759 bool MipsInstrInfo::verifyInstruction(const MachineInstr &MI,
lib/Target/Mips/MipsInstrInfo.h
   83                            SmallVectorImpl<MachineInstr *> &BranchInstrs) const;
   93   bool SafeInForbiddenSlot(const MachineInstr &MI) const;
   96   bool HasForbiddenSlot(const MachineInstr &MI) const;
  110   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
  151   bool findCommutedOpIndices(const MachineInstr &MI, unsigned &SrcOpIdx1,
  155   bool verifyInstruction(const MachineInstr &MI,
  173   void AnalyzeCondBr(const MachineInstr *Inst, unsigned Opc,
lib/Target/Mips/MipsInstructionSelector.cpp
   37   bool select(MachineInstr &I) override;
   41   bool selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const;
   44   bool selectCopy(MachineInstr &I, MachineRegisterInfo &MRI) const;
   48   unsigned selectLoadStoreOpCode(MachineInstr &I,
   87 bool MipsInstructionSelector::selectCopy(MachineInstr &I,
  134     MachineInstr *Inst = B.buildInstr(Mips::ORi, {DestReg}, {Register(Mips::ZERO)})
  140     MachineInstr *Inst = B.buildInstr(Mips::LUi, {DestReg}, {})
  146     MachineInstr *Inst = B.buildInstr(Mips::ADDiu, {DestReg}, {Register(Mips::ZERO)})
  152   MachineInstr *LUi = B.buildInstr(Mips::LUi, {LUiReg}, {})
  154   MachineInstr *ORi = B.buildInstr(Mips::ORi, {DestReg}, {LUiReg})
  165 MipsInstructionSelector::selectLoadStoreOpCode(MachineInstr &I,
  229 bool MipsInstructionSelector::select(MachineInstr &I) {
  245     MachineInstr *Mul = BuildMI(MBB, I, I.getDebugLoc(), TII.get(Mips::MUL))
  261   MachineInstr *MI = nullptr;
  267     MachineInstr *PseudoMULTu, *PseudoMove;
  318     MachineInstr *SLL = BuildMI(MBB, I, I.getDebugLoc(), TII.get(Mips::SLL))
  326     MachineInstr *ADDu = BuildMI(MBB, I, I.getDebugLoc(), TII.get(Mips::ADDu))
  334     MachineInstr *LW =
  347       MachineInstr *ADDu = BuildMI(MBB, I, I.getDebugLoc(), TII.get(Mips::ADDu))
  356     MachineInstr *Branch =
  401     MachineInstr *Addr = MRI.getVRegDef(I.getOperand(1).getReg());
  403       MachineInstr *Offset = MRI.getVRegDef(Addr->getOperand(2).getReg());
  428     MachineInstr *PseudoDIV, *PseudoMove;
  536     MachineInstr *Trunc = BuildMI(MBB, I, I.getDebugLoc(), TII.get(Opcode))
  542     MachineInstr *Move = BuildMI(MBB, I, I.getDebugLoc(), TII.get(Mips::MFC1))
  554       MachineInstr *LWGOT = BuildMI(MBB, I, I.getDebugLoc(), TII.get(Mips::LW))
  577         MachineInstr *ADDiu =
  589       MachineInstr *LUi = BuildMI(MBB, I, I.getDebugLoc(), TII.get(Mips::LUi))
  596       MachineInstr *ADDiu =
  766     MachineInstr *FCMP = BuildMI(MBB, I, I.getDebugLoc(), TII.get(FCMPOpcode))
  773     MachineInstr *Move = BuildMI(MBB, I, I.getDebugLoc(), TII.get(MoveOpcode))
  793     MachineInstr *LEA_ADDiu =
  801     MachineInstr *Store = BuildMI(MBB, I, I.getDebugLoc(), TII.get(Mips::SW))
lib/Target/Mips/MipsLegalizerInfo.cpp
  241 bool MipsLegalizerInfo::legalizeCustom(MachineInstr &MI,
  299 static bool SelectMSA3OpIntrinsic(MachineInstr &MI, unsigned Opcode,
  314 static bool MSA3OpIntrinsicToGeneric(MachineInstr &MI, unsigned Opcode,
  326 bool MSA2OpIntrinsicToGeneric(MachineInstr &MI, unsigned Opcode,
  337 bool MipsLegalizerInfo::legalizeIntrinsic(MachineInstr &MI,
  357     MachineInstr *Trap = MIRBuilder.buildInstr(Mips::TRAP);
lib/Target/Mips/MipsLegalizerInfo.h
   28   bool legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI,
   32   bool legalizeIntrinsic(MachineInstr &MI, MachineRegisterInfo &MRI,
lib/Target/Mips/MipsMCInstLower.cpp
  217 lowerLongBranchLUi(const MachineInstr *MI, MCInst &OutMI) const {
  254 void MipsMCInstLower::lowerLongBranchADDiu(const MachineInstr *MI,
  296 bool MipsMCInstLower::lowerLongBranch(const MachineInstr *MI,
  317 void MipsMCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
lib/Target/Mips/MipsMCInstLower.h
   37   void Lower(const MachineInstr *MI, MCInst &OutMI) const;
   45   void lowerLongBranchLUi(const MachineInstr *MI, MCInst &OutMI) const;
   46   void lowerLongBranchADDiu(const MachineInstr *MI, MCInst &OutMI,
   48   bool lowerLongBranch(const MachineInstr *MI, MCInst &OutMI) const;
lib/Target/Mips/MipsOptimizePICCall.cpp
  100   bool isCallViaRegister(MachineInstr &MI, unsigned &Reg,
  124 static MachineOperand *getCallTargetRegOpnd(MachineInstr &MI) {
  162 static void eraseGPOpnd(MachineInstr &MI) {
  266 bool OptimizePICCall::isCallViaRegister(MachineInstr &MI, unsigned &Reg,
  281   MachineInstr *DefMI = MRI.getVRegDef(Reg);
lib/Target/Mips/MipsPreLegalizerCombiner.cpp
   32   virtual bool combine(GISelChangeObserver &Observer, MachineInstr &MI,
   37                                            MachineInstr &MI,
lib/Target/Mips/MipsRegisterBankInfo.cpp
  175   for (MachineInstr &UseMI : MRI.use_instructions(Reg)) {
  176     MachineInstr *NonCopyInstr = skipCopiesOutgoing(&UseMI);
  190   MachineInstr *DefMI = MRI.getVRegDef(Reg);
  194 MachineInstr *
  196     MachineInstr *MI) const {
  199   MachineInstr *Ret = MI;
  208 MachineInstr *
  210     MachineInstr *MI) const {
  213   MachineInstr *Ret = MI;
  221     const MachineInstr *MI) {
  252     const MachineInstr *MI, const MachineInstr *WaitingForTypeOfMI) {
  252     const MachineInstr *MI, const MachineInstr *WaitingForTypeOfMI) {
  287     const MachineInstr *MI, SmallVectorImpl<MachineInstr *> &AdjacentInstrs,
  287     const MachineInstr *MI, SmallVectorImpl<MachineInstr *> &AdjacentInstrs,
  290     MachineInstr *AdjMI = AdjacentInstrs.pop_back_val();
  326 void MipsRegisterBankInfo::TypeInfoForMF::setTypes(const MachineInstr *MI,
  329   for (const MachineInstr *WaitingInstr : getWaitingQueueFor(MI)) {
  335     const MachineInstr *MI, const MachineInstr *CopyInst, unsigned Op) {
  335     const MachineInstr *MI, const MachineInstr *CopyInst, unsigned Op) {
  356 MipsRegisterBankInfo::TypeInfoForMF::determineInstType(const MachineInstr *MI) {
  396 MipsRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
  618   void createdInstr(MachineInstr &MI) override { InstList.insert(&MI); }
  619   void erasingInstr(MachineInstr &MI) override {}
  620   void changingInstr(MachineInstr &MI) override {}
  621   void changedInstr(MachineInstr &MI) override {}
  625 void MipsRegisterBankInfo::setRegBank(MachineInstr &MI,
  653                             MachineInstr &MI) {
  654   SmallVector<MachineInstr *, 2> DeadInstrs;
  656   for (MachineInstr *DeadMI : DeadInstrs)
  662   MachineInstr &MI = OpdMapper.getMI();
  683       MachineInstr *NewMI = NewInstrs.pop_back_val();
lib/Target/Mips/MipsRegisterBankInfo.h
   39   getInstrMapping(const MachineInstr &MI) const override;
   50   void setRegBank(MachineInstr &MI, MachineRegisterInfo &MRI) const;
   79     SmallVector<MachineInstr *, 2> DefUses;
   80     SmallVector<MachineInstr *, 2> UseDefs;
   90     MachineInstr *skipCopiesOutgoing(MachineInstr *MI) const;
   90     MachineInstr *skipCopiesOutgoing(MachineInstr *MI) const;
   97     MachineInstr *skipCopiesIncoming(MachineInstr *MI) const;
   97     MachineInstr *skipCopiesIncoming(MachineInstr *MI) const;
  100     AmbiguousRegDefUseContainer(const MachineInstr *MI);
  101     SmallVectorImpl<MachineInstr *> &getDefUses() { return DefUses; }
  102     SmallVectorImpl<MachineInstr *> &getUseDefs() { return UseDefs; }
  110     DenseMap<const MachineInstr *, SmallVector<const MachineInstr *, 2>>
  110     DenseMap<const MachineInstr *, SmallVector<const MachineInstr *, 2>>
  113     DenseMap<const MachineInstr *, InstType> Types;
  116     bool visit(const MachineInstr *MI, const MachineInstr *WaitingForTypeOfMI);
  116     bool visit(const MachineInstr *MI, const MachineInstr *WaitingForTypeOfMI);
  119     bool visitAdjacentInstrs(const MachineInstr *MI,
  120                              SmallVectorImpl<MachineInstr *> &AdjacentInstrs,
  125     void setTypes(const MachineInstr *MI, InstType ITy);
  129     void setTypesAccordingToPhysicalRegister(const MachineInstr *MI,
  130                                              const MachineInstr *CopyInst,
  134     void startVisit(const MachineInstr *MI) {
  141     bool wasVisited(const MachineInstr *MI) const { return Types.count(MI); };
  144     const InstType &getRecordedTypeForInstr(const MachineInstr *MI) const {
  150     void changeRecordedTypeForInstr(const MachineInstr *MI, InstType InstTy) {
  156     const SmallVectorImpl<const MachineInstr *> &
  157     getWaitingQueueFor(const MachineInstr *MI) const {
  163     void addToWaitingQueue(const MachineInstr *MI,
  164                            const MachineInstr *WaitingForMI) {
  170     InstType determineInstType(const MachineInstr *MI);
lib/Target/Mips/MipsRegisterInfo.cpp
  259   MachineInstr &MI = *II;
lib/Target/Mips/MipsSEFrameLowering.cpp
  530       .setMIFlag(MachineInstr::FrameSetup);
  601         .setMIFlag(MachineInstr::FrameSetup);
  607         .setMIFlag(MachineInstr::FrameSetup);
  615       .setMIFlag(MachineInstr::FrameSetup);
  626       .setMIFlag(MachineInstr::FrameSetup);
  662       .setMIFlag(MachineInstr::FrameSetup);
  670       .setMIFlag(MachineInstr::FrameSetup);
  679         .setMIFlag(MachineInstr::FrameSetup);
  685       .setMIFlag(MachineInstr::FrameSetup);
  829           .setMIFlag(MachineInstr::FrameSetup);
lib/Target/Mips/MipsSEISelDAGToDAG.cpp
   51 void MipsSEDAGToDAGISel::addDSPCtrlRegOperands(bool IsDef, MachineInstr &MI,
   83                                                 const MachineInstr& MI) {
  109     MachineInstr *MI = MO.getParent();
  127 void MipsSEDAGToDAGISel::emitMCountABI(MachineInstr &MI, MachineBasicBlock &MBB,
  160     for (auto &MI: MBB) {
lib/Target/Mips/MipsSEISelDAGToDAG.h
   32   void addDSPCtrlRegOperands(bool IsDef, MachineInstr &MI,
   37   bool replaceUsesWithZeroReg(MachineRegisterInfo *MRI, const MachineInstr&);
  132   void emitMCountABI(MachineInstr &MI, MachineBasicBlock &MBB,
lib/Target/Mips/MipsSEISelLowering.cpp
 1066 MipsSETargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
 3021 MipsSETargetLowering::emitBPOSGE32(MachineInstr &MI,
 3090     MachineInstr &MI, MachineBasicBlock *BB, unsigned BranchOp) const {
 3169 MipsSETargetLowering::emitCOPY_FW(MachineInstr &MI,
 3213 MipsSETargetLowering::emitCOPY_FD(MachineInstr &MI,
 3244 MipsSETargetLowering::emitINSERT_FW(MachineInstr &MI,
 3278 MipsSETargetLowering::emitINSERT_FD(MachineInstr &MI,
 3326     MachineInstr &MI, MachineBasicBlock *BB, unsigned EltSizeInBytes,
 3440 MipsSETargetLowering::emitFILL_FW(MachineInstr &MI,
 3473 MipsSETargetLowering::emitFILL_FD(MachineInstr &MI,
 3508 MipsSETargetLowering::emitST_F16_PSEUDO(MachineInstr &MI,
 3563 MipsSETargetLowering::emitLD_F16_PSEUDO(MachineInstr &MI,
 3649 MipsSETargetLowering::emitFPROUND_PSEUDO(MachineInstr &MI,
 3754 MipsSETargetLowering::emitFPEXTEND_PSEUDO(MachineInstr &MI,
 3817 MipsSETargetLowering::emitFEXP2_W_1(MachineInstr &MI,
 3846 MipsSETargetLowering::emitFEXP2_D_1(MachineInstr &MI,
lib/Target/Mips/MipsSEISelLowering.h
   53     EmitInstrWithCustomInserter(MachineInstr &MI,
   91     MachineBasicBlock *emitBPOSGE32(MachineInstr &MI,
   93     MachineBasicBlock *emitMSACBranchPseudo(MachineInstr &MI,
   97     MachineBasicBlock *emitCOPY_FW(MachineInstr &MI,
  100     MachineBasicBlock *emitCOPY_FD(MachineInstr &MI,
  103     MachineBasicBlock *emitINSERT_FW(MachineInstr &MI,
  106     MachineBasicBlock *emitINSERT_FD(MachineInstr &MI,
  109     MachineBasicBlock *emitINSERT_DF_VIDX(MachineInstr &MI,
  114     MachineBasicBlock *emitFILL_FW(MachineInstr &MI,
  117     MachineBasicBlock *emitFILL_FD(MachineInstr &MI,
  120     MachineBasicBlock *emitFEXP2_W_1(MachineInstr &MI,
  123     MachineBasicBlock *emitFEXP2_D_1(MachineInstr &MI,
  126     MachineBasicBlock *emitLD_F16_PSEUDO(MachineInstr &MI,
  129     MachineBasicBlock *emitST_F16_PSEUDO(MachineInstr &MI,
  132     MachineBasicBlock *emitFPEXTEND_PSEUDO(MachineInstr &MI,
  136     MachineBasicBlock *emitFPROUND_PSEUDO(MachineInstr &MI,
lib/Target/Mips/MipsSEInstrInfo.cpp
   45 unsigned MipsSEInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
   67 unsigned MipsSEInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  186 static bool isORCopyInst(const MachineInstr &MI) {
  205 static bool isReadOrWriteToDSPReg(const MachineInstr &MI, bool &isWrite) {
  224 bool MipsSEInstrInfo::isCopyInstrImpl(const MachineInstr &MI,
  408 bool MipsSEInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
lib/Target/Mips/MipsSEInstrInfo.h
   34   unsigned isLoadFromStackSlot(const MachineInstr &MI,
   42   unsigned isStoreToStackSlot(const MachineInstr &MI,
   63   bool expandPostRAPseudo(MachineInstr &MI) const override;
   82   bool isCopyInstrImpl(const MachineInstr &MI, const MachineOperand *&Source,
lib/Target/Mips/MipsSERegisterInfo.cpp
  149   MachineInstr &MI = *II;
lib/Target/NVPTX/NVPTXAsmPrinter.cpp
  144 void NVPTXAsmPrinter::EmitInstruction(const MachineInstr *MI) {
  151 bool NVPTXAsmPrinter::lowerImageHandleOperand(const MachineInstr *MI,
  212 void NVPTXAsmPrinter::lowerToMCInst(const MachineInstr *MI, MCInst &OutMI) {
  509 void NVPTXAsmPrinter::emitImplicitDef(const MachineInstr *MI) const {
 2174 bool NVPTXAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
 2194 bool NVPTXAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
 2208 void NVPTXAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
 2244 void NVPTXAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum,
lib/Target/NVPTX/NVPTXAsmPrinter.h
  207   void emitImplicitDef(const MachineInstr *MI) const override;
  209   void EmitInstruction(const MachineInstr *) override;
  210   void lowerToMCInst(const MachineInstr *MI, MCInst &OutMI);
  215   void printMemOperand(const MachineInstr *MI, int opNum, raw_ostream &O,
  230   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  232   void printOperand(const MachineInstr *MI, int opNum, raw_ostream &O);
  233   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
  271   bool lowerImageHandleOperand(const MachineInstr *MI, unsigned OpNo,
lib/Target/NVPTX/NVPTXFrameLowering.cpp
   36     MachineInstr *MI = &MBB.front();
lib/Target/NVPTX/NVPTXInstrInfo.cpp
  106   MachineInstr &LastInst = *I;
  124   MachineInstr &SecondLastInst = *I;
lib/Target/NVPTX/NVPTXPeephole.cpp
   73 static bool isCVTAToLocalCombinationCandidate(MachineInstr &Root) {
   83   MachineInstr *GenericAddrDef = nullptr;
  104 static void CombineCVTAToLocal(MachineInstr &Root) {
  109   auto &Prev = *MRI.getUniqueVRegDef(Root.getOperand(1).getReg());
  137       auto &MI = *BlockIter++;
lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp
   59     for (MachineInstr &MI : MBB) {
lib/Target/NVPTX/NVPTXProxyRegErasure.cpp
   54   void replaceMachineInstructionUsage(MachineFunction &MF, MachineInstr &MI);
   56   void replaceRegisterUsage(MachineInstr &Instr, MachineOperand &From,
   67   SmallVector<MachineInstr *, 16> RemoveList;
   70     for (auto &MI : BB) {
   87   for (auto *MI : RemoveList) {
   95                                                           MachineInstr &MI) {
  103     for (auto &I : BB) {
  109 void NVPTXProxyRegErasure::replaceRegisterUsage(MachineInstr &Instr,
lib/Target/NVPTX/NVPTXRegisterInfo.cpp
  117   MachineInstr &MI = *II;
lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp
   32   DenseSet<MachineInstr *> InstrsToRemove;
   43   bool processInstr(MachineInstr &MI);
   63       MachineInstr &MI = *I;
   72   for (DenseSet<MachineInstr *>::iterator I = InstrsToRemove.begin(),
   79 bool NVPTXReplaceImageHandles::processInstr(MachineInstr &MI) {
  140   MachineInstr &TexHandleDef = *MRI.getVRegDef(Op.getReg());
lib/Target/PowerPC/PPC.h
   52   void LowerPPCMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
lib/Target/PowerPC/PPCAsmPrinter.cpp
  100   void EmitInstruction(const MachineInstr *MI) override;
  105   void printOperand(const MachineInstr *MI, unsigned OpNo, raw_ostream &O);
  108   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  110   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
  115   void LowerSTACKMAP(StackMaps &SM, const MachineInstr &MI);
  116   void LowerPATCHPOINT(StackMaps &SM, const MachineInstr &MI);
  117   void EmitTlsCall(const MachineInstr *MI, MCSymbolRefExpr::VariantKind VK);
  144   void EmitInstruction(const MachineInstr *MI) override;
  205 void PPCAsmPrinter::printOperand(const MachineInstr *MI, unsigned OpNo,
  249 bool PPCAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  299 bool PPCAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
  352 void PPCAsmPrinter::LowerSTACKMAP(StackMaps &SM, const MachineInstr &MI) {
  379 void PPCAsmPrinter::LowerPATCHPOINT(StackMaps &SM, const MachineInstr &MI) {
  477 void PPCAsmPrinter::EmitTlsCall(const MachineInstr *MI,
  536 void PPCAsmPrinter::EmitInstruction(const MachineInstr *MI) {
 1184 void PPCLinuxAsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/PowerPC/PPCBranchCoalescing.cpp
  177   bool canMoveToBeginning(const MachineInstr &MI,
  179   bool canMoveToEnd(const MachineInstr &MI,
  244   for (auto &I : Cand.BranchBlock->terminators()) {
  361       MachineInstr *Op1Def = MRI->getVRegDef(Op1.getReg());
  362       MachineInstr *Op2Def = MRI->getVRegDef(Op2.getReg());
  401     MachineInstr &PHIInst = *Iter;
  421 bool PPCBranchCoalescing::canMoveToBeginning(const MachineInstr &MI,
  429     for (auto &Use : MRI->use_instructions(Def.getReg())) {
  452 bool PPCBranchCoalescing::canMoveToEnd(const MachineInstr &MI,
  461       MachineInstr *DefInst = MRI->getVRegDef(Use.getReg());
  540       for (auto &Use : MRI->use_instructions(Def.getReg())) {
  685     MachineInstr &CurrInst = *I;
lib/Target/PowerPC/PPCBranchSelector.cpp
  137     for (MachineInstr &MI : *MBB) {
  330         MachineInstr &OldBranch = *I;
lib/Target/PowerPC/PPCCTRLoops.cpp
  113 static bool clobbersCTR(const MachineInstr &MI) {
lib/Target/PowerPC/PPCExpandISEL.cpp
   57   typedef SmallVector<MachineInstr *, 4> BlockISELList;
   74   bool canMerge(MachineInstr *PrevPushedMI, MachineInstr *MI);
   74   bool canMerge(MachineInstr *PrevPushedMI, MachineInstr *MI);
   77   static bool isISEL(const MachineInstr &MI) {
   82   static bool isISEL8(const MachineInstr &MI) {
  160     for (MachineInstr &MI : MBB)
  181 bool PPCExpandISEL::canMerge(MachineInstr *PrevPushedMI, MachineInstr *MI) {
  181 bool PPCExpandISEL::canMerge(MachineInstr *PrevPushedMI, MachineInstr *MI) {
  395     for (MachineInstr &MI : *MBB)
lib/Target/PowerPC/PPCFastISel.cpp
  110     bool tryToFoldLoadIntoMI(MachineInstr *MI, unsigned OpNo,
 2293 bool PPCFastISel::tryToFoldLoadIntoMI(MachineInstr *MI, unsigned OpNo,
lib/Target/PowerPC/PPCFrameLowering.cpp
  293 static void RemoveVRSaveCode(MachineInstr &MI) {
  339 static void HandleVRSaveUpdate(MachineInstr &MI, const TargetInstrInfo &TII) {
  364     const MachineInstr &Ret = MBB.back();
lib/Target/PowerPC/PPCHazardRecognizers.cpp
  328   MachineInstr *MI = SU->getInstr();
  386   MachineInstr *MI = SU->getInstr();
lib/Target/PowerPC/PPCISelLowering.cpp
10298 PPCTargetLowering::EmitAtomicBinary(MachineInstr &MI, MachineBasicBlock *BB,
10417     MachineInstr &MI, MachineBasicBlock *BB,
10610 PPCTargetLowering::emitEHSjLjSetJmp(MachineInstr &MI,
10752 PPCTargetLowering::emitEHSjLjLongJmp(MachineInstr &MI,
10854 PPCTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
lib/Target/PowerPC/PPCISelLowering.h
  760     EmitInstrWithCustomInserter(MachineInstr &MI,
  762     MachineBasicBlock *EmitAtomicBinary(MachineInstr &MI,
  768     MachineBasicBlock *EmitPartwordAtomicBinary(MachineInstr &MI,
  775     MachineBasicBlock *emitEHSjLjSetJmp(MachineInstr &MI,
  778     MachineBasicBlock *emitEHSjLjLongJmp(MachineInstr &MI,
lib/Target/PowerPC/PPCInstrInfo.cpp
  146                                        const MachineInstr &MI,
  176                                     const MachineInstr &DefMI, unsigned DefIdx,
  177                                     const MachineInstr &UseMI,
  233 bool PPCInstrInfo::isAssociativeAndCommutative(const MachineInstr &Inst) const {
  268     MachineInstr &Root,
  283 bool PPCInstrInfo::isCoalescableExtInstr(const MachineInstr &MI,
  298 unsigned PPCInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
  318 bool PPCInstrInfo::isReallyTriviallyReMaterializable(const MachineInstr &MI,
  352 unsigned PPCInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  368 MachineInstr *PPCInstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  368 MachineInstr *PPCInstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  452 bool PPCInstrInfo::findCommutedOpIndices(const MachineInstr &MI,
  525   MachineInstr &LastInst = *I;
  587   MachineInstr &SecondLastInst = *I;
 1202     SmallVectorImpl<MachineInstr *> &NewMIs) const {
 1231   SmallVector<MachineInstr *, 4> NewMIs;
 1258                                         SmallVectorImpl<MachineInstr *> &NewMIs)
 1283   SmallVector<MachineInstr*, 4> NewMIs;
 1324 bool PPCInstrInfo::FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
 1324 bool PPCInstrInfo::FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
 1415 bool PPCInstrInfo::isPredicated(const MachineInstr &MI) const {
 1426 bool PPCInstrInfo::isUnpredicatedTerminator(const MachineInstr &MI) const {
 1437 bool PPCInstrInfo::PredicateInstruction(MachineInstr &MI,
 1554 bool PPCInstrInfo::DefinesPredicate(MachineInstr &MI,
 1590 bool PPCInstrInfo::isPredicable(const MachineInstr &MI) const {
 1606 bool PPCInstrInfo::analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
 1636 bool PPCInstrInfo::optimizeCompareInstr(MachineInstr &CmpInstr, unsigned SrcReg,
 1670   MachineInstr *MI = MRI->getUniqueVRegDef(SrcReg);
 1701       MachineInstr *UseMI = &*I;
 1742   MachineInstr *Sub = nullptr;
 1764     MachineInstr *UseMI = &*MRI->use_instr_begin(CRReg);
 1801     const MachineInstr &Instr = *I;
 1877       MachineInstr *UseMI = &*I;
 2010 unsigned PPCInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
 2066 bool PPCInstrInfo::expandVSXMemPseudo(MachineInstr &MI) const {
 2132 bool PPCInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
 2269 void PPCInstrInfo::replaceInstrOperandWithImm(MachineInstr &MI,
 2300 void PPCInstrInfo::replaceInstrWithLI(MachineInstr &MI,
 2323 MachineInstr *PPCInstrInfo::getDefMIPostRA(unsigned Reg, MachineInstr &MI,
 2323 MachineInstr *PPCInstrInfo::getDefMIPostRA(unsigned Reg, MachineInstr &MI,
 2340 MachineInstr *PPCInstrInfo::getForwardingDefMI(
 2341   MachineInstr &MI,
 2345   MachineInstr *DefMI = nullptr;
 2399         MachineInstr *DefMI = getDefMIPostRA(Reg, MI, SeenIntermediateUse);
 2453 void PPCInstrInfo::fixupIsDeadOrKill(MachineInstr &StartMI, MachineInstr &EndMI,
 2453 void PPCInstrInfo::fixupIsDeadOrKill(MachineInstr &StartMI, MachineInstr &EndMI,
 2554 bool PPCInstrInfo::foldFrameOffset(MachineInstr &MI) const {
 2574   MachineInstr *ADDMI = getDefMIPostRA(ToBeDeletedReg, MI, OtherIntermediateUse);
 2586   MachineInstr *ADDIMI = nullptr;
 2644 bool PPCInstrInfo::isADDIInstrEligibleForFolding(MachineInstr &ADDIMI,
 2657 bool PPCInstrInfo::isADDInstrEligibleForFolding(MachineInstr &ADDMI) const {
 2664 bool PPCInstrInfo::isImmInstrEligibleForFolding(MachineInstr &MI,
 2707 bool PPCInstrInfo::isValidToBeChangedReg(MachineInstr *ADDMI, unsigned Index,
 2708                                          MachineInstr *&ADDIMI,
 2752 bool PPCInstrInfo::convertToImmediateForm(MachineInstr &MI,
 2753                                           MachineInstr **KilledDef) const {
 2759   MachineInstr *DefMI = getForwardingDefMI(MI, ForwardingOperand,
 2828     for (auto &CompareUseMI : MRI->use_instructions(DefReg)) {
 3407 static void swapMIOperands(MachineInstr &MI, unsigned Op1, unsigned Op2) {
 3447 bool PPCInstrInfo::isUseMIElgibleForForwarding(MachineInstr &MI,
 3485 bool PPCInstrInfo::isDefMIElgibleForForwarding(MachineInstr &DefMI,
 3505     const MachineOperand &RegMO, const MachineInstr &DefMI,
 3506     const MachineInstr &MI, bool KillDefMI,
 3544                                              const MachineInstr &DefMI,
 3601     MachineInstr &MI, const ImmInstrInfo &III, unsigned OpNoForForwarding,
 3602     MachineInstr &DefMI, bool KillDefMI) const {
 3712 bool PPCInstrInfo::transformToImmFormFedByLI(MachineInstr &MI,
 3715                                              MachineInstr &DefMI,
 3869 static bool isSignExtendingOp(const MachineInstr &MI) {
 3910 static bool isZeroExtendingOp(const MachineInstr &MI) {
 3977 bool PPCInstrInfo::isTOCSaveMI(const MachineInstr &MI) const {
 3994 PPCInstrInfo::isSignOrZeroExtended(const MachineInstr &MI, bool SignExt,
 4034           const MachineInstr &CallMI = *(--II);
 4055     const MachineInstr *SrcMI = MRI->getVRegDef(SrcReg);
 4079     const MachineInstr *SrcMI = MRI->getVRegDef(SrcReg);
 4108         const MachineInstr *SrcMI = MRI->getVRegDef(SrcReg);
 4135     const MachineInstr *MISrc1 = MRI->getVRegDef(SrcReg1);
 4136     const MachineInstr *MISrc2 = MRI->getVRegDef(SrcReg2);
 4160   MachineInstr *Loop, *EndLoop, *LoopCount;
 4166   PPCPipelinerLoopInfo(MachineInstr *Loop, MachineInstr *EndLoop,
 4166   PPCPipelinerLoopInfo(MachineInstr *Loop, MachineInstr *EndLoop,
 4167                        MachineInstr *LoopCount)
 4179   bool shouldIgnoreForPipelining(const MachineInstr *MI) const override {
 4238     if (MachineInstr *LoopInst = findLoopInstr(*Preheader, Visited)) {
 4241       MachineInstr *LoopCount = MRI.getUniqueVRegDef(LoopCountReg);
 4248 MachineInstr *PPCInstrInfo::findLoopInstr(
 4255   for (auto &I : PreHeader.instrs())
 4264   const MachineInstr &LdSt,
 4287     const MachineInstr &MIa, const MachineInstr &MIb) const {
 4287     const MachineInstr &MIa, const MachineInstr &MIb) const {
lib/Target/PowerPC/PPCInstrInfo.h
  118                            SmallVectorImpl<MachineInstr *> &NewMIs) const;
  122                             SmallVectorImpl<MachineInstr *> &NewMIs) const;
  126   bool transformToImmFormFedByLI(MachineInstr &MI, const ImmInstrInfo &III,
  127                                  unsigned ConstantOpNo, MachineInstr &DefMI,
  131   bool transformToImmFormFedByAdd(MachineInstr &MI, const ImmInstrInfo &III,
  132                                   unsigned ConstantOpNo, MachineInstr &DefMI,
  139   MachineInstr *getForwardingDefMI(MachineInstr &MI,
  139   MachineInstr *getForwardingDefMI(MachineInstr &MI,
  145   bool isUseMIElgibleForForwarding(MachineInstr &MI, const ImmInstrInfo &III,
  147   bool isDefMIElgibleForForwarding(MachineInstr &DefMI,
  152                                  const MachineInstr &DefMI,
  156                                  const MachineInstr &DefMI,
  157                                  const MachineInstr &MI, bool KillDefMI,
  174   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  174   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  209                            const MachineInstr &MI,
  213                         const MachineInstr &DefMI, unsigned DefIdx,
  214                         const MachineInstr &UseMI,
  224                         const MachineInstr &DefMI,
  240       MachineInstr &Root,
  243   bool isAssociativeAndCommutative(const MachineInstr &Inst) const override;
  245   bool isCoalescableExtInstr(const MachineInstr &MI,
  248   unsigned isLoadFromStackSlot(const MachineInstr &MI,
  250   bool isReallyTriviallyReMaterializable(const MachineInstr &MI,
  252   unsigned isStoreToStackSlot(const MachineInstr &MI,
  255   bool findCommutedOpIndices(const MachineInstr &MI, unsigned &SrcOpIdx1,
  307   bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, unsigned Reg,
  307   bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, unsigned Reg,
  336   bool isPredicated(const MachineInstr &MI) const override;
  338   bool isUnpredicatedTerminator(const MachineInstr &MI) const override;
  340   bool PredicateInstruction(MachineInstr &MI,
  346   bool DefinesPredicate(MachineInstr &MI,
  349   bool isPredicable(const MachineInstr &MI) const override;
  353   bool analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  356   bool optimizeCompareInstr(MachineInstr &CmpInstr, unsigned SrcReg,
  364   bool getMemOperandWithOffsetWidth(const MachineInstr &LdSt,
  372   areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
  373                                   const MachineInstr &MIb) const override;
  378   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
  392   bool expandVSXMemPseudo(MachineInstr &MI) const;
  395   bool expandPostRAPseudo(MachineInstr &MI) const override;
  406   bool isTOCSaveMI(const MachineInstr &MI) const;
  408   bool isSignOrZeroExtended(const MachineInstr &MI, bool SignExt,
  413   bool isSignExtended(const MachineInstr &MI, const unsigned depth = 0) const {
  419   bool isZeroExtended(const MachineInstr &MI, const unsigned depth = 0) const {
  423   bool convertToImmediateForm(MachineInstr &MI,
  424                               MachineInstr **KilledDef = nullptr) const;
  425   bool foldFrameOffset(MachineInstr &MI) const;
  426   bool isADDIInstrEligibleForFolding(MachineInstr &ADDIMI, int64_t &Imm) const;
  427   bool isADDInstrEligibleForFolding(MachineInstr &ADDMI) const;
  428   bool isImmInstrEligibleForFolding(MachineInstr &MI, unsigned &BaseReg,
  432   bool isValidToBeChangedReg(MachineInstr *ADDMI, unsigned Index,
  433                              MachineInstr *&ADDIMI, int64_t &OffsetAddi,
  445   void fixupIsDeadOrKill(MachineInstr &StartMI, MachineInstr &EndMI,
  445   void fixupIsDeadOrKill(MachineInstr &StartMI, MachineInstr &EndMI,
  447   void replaceInstrWithLI(MachineInstr &MI, const LoadImmediateInfo &LII) const;
  448   void replaceInstrOperandWithImm(MachineInstr &MI, unsigned OpNo,
  456   MachineInstr *getDefMIPostRA(unsigned Reg, MachineInstr &MI,
  456   MachineInstr *getDefMIPostRA(unsigned Reg, MachineInstr &MI,
  498   MachineInstr *
lib/Target/PowerPC/PPCMCInstLower.cpp
  150 void llvm::LowerPPCMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
lib/Target/PowerPC/PPCMIPeephole.cpp
  105   bool eliminateRedundantTOCSaves(std::map<MachineInstr *, bool> &TOCSaves);
  106   bool combineSEXTAndSHL(MachineInstr &MI, MachineInstr *&ToErase);
  106   bool combineSEXTAndSHL(MachineInstr &MI, MachineInstr *&ToErase);
  107   bool emitRLDICWhenLoweringJumpTables(MachineInstr &MI);
  108   void UpdateTOCSaves(std::map<MachineInstr *, bool> &TOCSaves,
  109                       MachineInstr *MI);
  145 static MachineInstr *getVRegDefOrNull(MachineOperand *Op,
  161 getKnownLeadingZeroCount(MachineInstr *MI, const PPCInstrInfo *TII) {
  218   std::map<MachineInstr *, bool> &TOCSaves, MachineInstr *MI) {
  218   std::map<MachineInstr *, bool> &TOCSaves, MachineInstr *MI) {
  246     MachineInstr *CurrInst = It->first;
  264   MachineInstr* ToErase = nullptr;
  265   std::map<MachineInstr *, bool> TOCSaves;
  277         for (MachineInstr &MI : MBB) {
  297     for (MachineInstr &MI : MBB) {
  348             MachineInstr *DefMI = MRI->getVRegDef(TrueReg1);
  361                 MachineInstr *LoadMI = MRI->getVRegDef(DefReg);
  448         MachineInstr *DefMI = MRI->getVRegDef(TrueReg);
  458           MachineInstr *Splt = MRI->getVRegDef(ConvReg);
  511         MachineInstr *DefMI = MRI->getVRegDef(TrueReg);
  523           MachineInstr *P1 = MRI->getVRegDef(DefsReg1);
  524           MachineInstr *P2 = MRI->getVRegDef(DefsReg2);
  537               MachineInstr &Use = *(MRI->use_instr_begin(FRSPDefines));
  572         MachineInstr *SrcMI = MRI->getVRegDef(NarrowReg);
  616         MachineInstr *SrcMI = MRI->getVRegDef(NarrowReg);
  685         MachineInstr *SrcMI = MRI->getVRegDef(SrcReg);
  690         MachineInstr *ImpDefMI, *SubRegMI;
  723           MachineInstr *DefPhiMI = getVRegDefOrNull(PhiOp, MRI);
  733           MachineInstr *DefPhiMI = getVRegDefOrNull(PhiOp, MRI);
  734           MachineInstr *DefDomMI = getVRegDefOrNull(DominatorOp, MRI);
  739             MachineInstr *LiMI =
  767         MachineInstr *DefPhiMI = getVRegDefOrNull(&Op1, MRI);
  769           MachineInstr *LiMI = getVRegDefOrNull(&DefPhiMI->getOperand(i), MRI);
  832 static bool isEqOrNe(MachineInstr *BI) {
  865 static unsigned getPredicateToDecImm(MachineInstr *BI, MachineInstr *CMPI) {
  865 static unsigned getPredicateToDecImm(MachineInstr *BI, MachineInstr *CMPI) {
  884 static unsigned getPredicateToIncImm(MachineInstr *BI, MachineInstr *CMPI) {
  884 static unsigned getPredicateToIncImm(MachineInstr *BI, MachineInstr *CMPI) {
  902 static unsigned getIncomingRegForBlock(MachineInstr *Phi,
  921     MachineInstr *Inst = MRI->getVRegDef(SrcReg);
  955       MachineInstr *CMPI = MRI->getVRegDef(CndReg);
 1012     MachineInstr *BI = &*MBB.getFirstInstrTerminator();
 1013     MachineInstr *CMPI = MRI->getVRegDef(BI->getOperand(1).getReg());
 1016         MachineInstr *Inst = MRI->getVRegDef(CMPI->getOperand(I).getReg());
 1034     std::map<MachineInstr *, bool> &TOCSaves) {
 1111     MachineInstr *BI1   = &*MBB1->getFirstInstrTerminator();
 1112     MachineInstr *CMPI1 = MRI->getVRegDef(BI1->getOperand(1).getReg());
 1114     MachineInstr *BI2   = &*MBB2.getFirstInstrTerminator();
 1115     MachineInstr *CMPI2 = MRI->getVRegDef(BI2->getOperand(1).getReg());
 1282           MachineInstr *Inst = MRI->getVRegDef(CMPI2->getOperand(I).getReg());
 1331 bool PPCMIPeephole::emitRLDICWhenLoweringJumpTables(MachineInstr &MI) {
 1339   MachineInstr *SrcMI = MRI->getVRegDef(SrcReg);
 1395 bool PPCMIPeephole::combineSEXTAndSHL(MachineInstr &MI,
 1396                                       MachineInstr *&ToErase) {
 1419   MachineInstr *SrcMI = MRI->getVRegDef(SrcReg);
 1439   MachineInstr *NewInstr =
lib/Target/PowerPC/PPCPreEmitPeephole.cpp
   76       DenseSet<MachineInstr *> InstrsToErase;
  158       for (MachineInstr *MI : InstrsToErase) {
  171       SmallVector<MachineInstr *, 4> InstrsToErase;
  174         for (MachineInstr &MI : MBB) {
  197           MachineInstr *DefMIToErase = nullptr;
  222         MachineInstr *Br = &*I;
  225         MachineInstr *CRSetMI = nullptr;
  284       for (MachineInstr *MI : InstrsToErase) {
lib/Target/PowerPC/PPCQPXLoadSplat.cpp
   66     SmallVector<MachineInstr *, 4> Splats;
   69       MachineInstr *MI = &*MBBI;
   81         MachineInstr *SMI = *SI;
lib/Target/PowerPC/PPCReduceCRLogicals.cpp
   57   for (auto &MI : Successor->instrs()) {
   67           MachineInstr *DefMI = MRI->getVRegDef(MI.getOperand(i - 1).getReg());
   90   for (auto &MI : Successor->instrs()) {
  107   MachineInstr *OrigBranch;
  108   MachineInstr *SplitBefore;
  109   MachineInstr *SplitCond;
  114   MachineInstr *MIToDelete;
  115   MachineInstr *NewCond;
  252 static bool isBinary(MachineInstr &MI) {
  256 static bool isNullary(MachineInstr &MI) {
  356     MachineInstr *MI;
  358     std::pair<MachineInstr*, MachineInstr*> CopyDefs;
  358     std::pair<MachineInstr*, MachineInstr*> CopyDefs;
  359     std::pair<MachineInstr*, MachineInstr*> TrueDefs;
  359     std::pair<MachineInstr*, MachineInstr*> TrueDefs;
  389   static bool isCRLogical(MachineInstr &MI) {
  410   MachineInstr *lookThroughCRCopy(unsigned Reg, unsigned &Subreg,
  411                                   MachineInstr *&CpDef);
  425   CRLogicalOpInfo createCRLogicalOpInfo(MachineInstr &MI);
  462 PPCReduceCRLogicals::createCRLogicalOpInfo(MachineInstr &MIParam) {
  471     MachineInstr *Def1 = lookThroughCRCopy(MIParam.getOperand(1).getReg(),
  480       MachineInstr *Def2 = lookThroughCRCopy(MIParam.getOperand(2).getReg(),
  497   for (MachineInstr &UseMI :
  534 MachineInstr *PPCReduceCRLogicals::lookThroughCRCopy(unsigned Reg,
  536                                                      MachineInstr *&CpDef) {
  540   MachineInstr *Copy = MRI->getVRegDef(Reg);
  642   MachineInstr *SplitBefore = &*Def2It;
  656   MachineInstr *Branch =
  684   MachineInstr *SplitCond =
  712     for (MachineInstr &MI : MBB) {
lib/Target/PowerPC/PPCRegisterInfo.cpp
  495   MachineInstr &MI = *II;
  614   MachineInstr &MI = *II;
  645   MachineInstr &MI = *II;       // ; SPILL_CR <SrcReg>, <offset>
  690   MachineInstr &MI = *II;       // ; <DestReg> = RESTORE_CR <offset>
  733   MachineInstr &MI = *II;       // ; SPILL_CRBIT <SrcReg>, <offset>
  813   MachineInstr &MI = *II;       // ; <DestReg> = RESTORE_CRBIT <offset>
  863   MachineInstr &MI = *II;       // ; SPILL_VRSAVE <SrcReg>, <offset>
  889   MachineInstr &MI = *II;       // ; <DestReg> = RESTORE_VRSAVE <offset>
  963 static unsigned offsetMinAlign(const MachineInstr &MI) {
  969 static unsigned getOffsetONFromFION(const MachineInstr &MI,
  989   MachineInstr &MI = *II;
 1175 needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const {
 1241 void PPCRegisterInfo::resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
 1265 bool PPCRegisterInfo::isFrameOffsetLegal(const MachineInstr *MI,
lib/Target/PowerPC/PPCRegisterInfo.h
  134   bool needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const override;
  138   void resolveFrameIndex(MachineInstr &MI, unsigned BaseReg,
  140   bool isFrameOffsetLegal(const MachineInstr *MI, unsigned BaseReg,
lib/Target/PowerPC/PPCTLSDynamicCall.cpp
   55         MachineInstr &MI = *I;
  116         MachineInstr *Addi = BuildMI(MBB, I, DL, TII->get(Opc1), GPR3)
  125         MachineInstr *Call = (BuildMI(MBB, I, DL, TII->get(Opc2), GPR3)
lib/Target/PowerPC/PPCTOCRegDeps.cpp
   96     bool hasTOCLoReloc(const MachineInstr &MI) {
  117       for (auto &MI : MBB) {
lib/Target/PowerPC/PPCVSXCopy.cpp
   87       for (MachineInstr &MI : MBB) {
lib/Target/PowerPC/PPCVSXFMAMutate.cpp
   77         MachineInstr &MI = *I;
  117         MachineInstr *AddendMI = LIS->getInstructionFromIndex(AddendValNo->def);
  285           MachineInstr *UseMI = UseMO.getParent();
lib/Target/PowerPC/PPCVSXSwapRemoval.cpp
   68   MachineInstr *VSEMI;
  108   DenseMap<MachineInstr*, int> SwapMap;
  127   int addSwapEntry(MachineInstr *MI, PPCVSXSwapEntry &SwapEntry);
  150   void insertSwap(MachineInstr *MI, MachineBasicBlock::iterator InsertPoint,
  245     for (MachineInstr &MI : MBB) {
  536 int PPCVSXSwapRemoval::addSwapEntry(MachineInstr *MI,
  557   MachineInstr *MI = MRI->getVRegDef(SrcReg);
  591     MachineInstr *MI = SwapVector[EntryIdx].VSEMI;
  617       MachineInstr* DefMI = MRI->getVRegDef(Reg);
  669       MachineInstr *MI = SwapVector[EntryIdx].VSEMI;
  676       for (MachineInstr &UseMI : MRI->use_nodbg_instructions(DefReg)) {
  697       MachineInstr *MI = SwapVector[EntryIdx].VSEMI;
  699       MachineInstr *DefMI = MRI->getVRegDef(UseReg);
  719       for (MachineInstr &UseMI : MRI->use_nodbg_instructions(DefReg)) {
  758         MachineInstr *MI = SwapVector[EntryIdx].VSEMI;
  761         for (MachineInstr &UseMI : MRI->use_nodbg_instructions(DefReg)) {
  774         MachineInstr *MI = SwapVector[EntryIdx].VSEMI;
  776         MachineInstr *DefMI = MRI->getVRegDef(UseReg);
  799 void PPCVSXSwapRemoval::insertSwap(MachineInstr *MI,
  823     MachineInstr *MI = SwapVector[EntryIdx].VSEMI;
  862     MachineInstr *MI = SwapVector[EntryIdx].VSEMI;
  892     MachineInstr *MI = SwapVector[EntryIdx].VSEMI;
  949       MachineInstr *MI = SwapVector[EntryIdx].VSEMI;
  972     MachineInstr *MI = SwapVector[EntryIdx].VSEMI;
lib/Target/RISCV/RISCV.h
   33 void LowerRISCVMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
lib/Target/RISCV/RISCVAsmPrinter.cpp
   43   void EmitInstruction(const MachineInstr *MI) override;
   45   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
   47   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
   52                                    const MachineInstr *MI);
   74 void RISCVAsmPrinter::EmitInstruction(const MachineInstr *MI) {
   84 bool RISCVAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  125 bool RISCVAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
  233 static void doAtomicBinOpExpansion(const RISCVInstrInfo *TII, MachineInstr &MI,
  296     const RISCVInstrInfo *TII, MachineInstr &MI, DebugLoc DL,
  362   MachineInstr &MI = *MBBI;
  415   MachineInstr &MI = *MBBI;
  531   MachineInstr &MI = *MBBI;
  629   MachineInstr &MI = *MBBI;
lib/Target/RISCV/RISCVFrameLowering.cpp
  147   adjustReg(MBB, MBBI, DL, SPReg, SPReg, -StackSize, MachineInstr::FrameSetup);
  182               StackSize - RVFI->getVarArgsSaveSize(), MachineInstr::FrameSetup);
  197               MachineInstr::FrameSetup);
  256               MachineInstr::FrameDestroy);
  266               MachineInstr::FrameDestroy);
  313   adjustReg(MBB, MBBI, DL, SPReg, SPReg, StackSize, MachineInstr::FrameDestroy);
  460       adjustReg(MBB, MI, DL, SPReg, SPReg, Amount, MachineInstr::NoFlags);
lib/Target/RISCV/RISCVISelLowering.cpp
 1089 static MachineBasicBlock *emitReadCycleWidePseudo(MachineInstr &MI,
 1151 static MachineBasicBlock *emitSplitF64Pseudo(MachineInstr &MI,
 1182 static MachineBasicBlock *emitBuildPairF64Pseudo(MachineInstr &MI,
 1215 static bool isSelectPseudo(MachineInstr &MI) {
 1226 static MachineBasicBlock *emitSelectPseudo(MachineInstr &MI,
 1256   SmallVector<MachineInstr *, 4> SelectDebugValues;
 1260   MachineInstr *LastSelectPseudo = &MI;
 1301   for (MachineInstr *DebugInstr : SelectDebugValues) {
 1350 RISCVTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
lib/Target/RISCV/RISCVISelLowering.h
  108   EmitInstrWithCustomInserter(MachineInstr &MI,
lib/Target/RISCV/RISCVInstrInfo.cpp
   36 unsigned RISCVInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
   62 unsigned RISCVInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  203 static void parseCondBranch(MachineInstr &LastInst, MachineBasicBlock *&Target,
  348     MachineInstr &MI = *BuildMI(&MBB, DL, get(RISCV::PseudoBR)).addMBB(TBB);
  356   MachineInstr &CondMI =
  366   MachineInstr &MI = *BuildMI(&MBB, DL, get(RISCV::PseudoBR)).addMBB(FBB);
  399   MachineInstr &LuiMI = *BuildMI(MBB, II, DL, get(RISCV::LUI), ScratchReg)
  422 RISCVInstrInfo::getBranchDestBlock(const MachineInstr &MI) const {
  450 unsigned RISCVInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
  478 bool RISCVInstrInfo::isAsCheapAsAMove(const MachineInstr &MI) const {
  491 bool RISCVInstrInfo::verifyInstruction(const MachineInstr &MI,
lib/Target/RISCV/RISCVInstrInfo.h
   31   unsigned isLoadFromStackSlot(const MachineInstr &MI,
   33   unsigned isStoreToStackSlot(const MachineInstr &MI,
   54               MachineInstr::MIFlag Flag = MachineInstr::NoFlags) const;
   56   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
   79   MachineBasicBlock *getBranchDestBlock(const MachineInstr &MI) const override;
   84   bool isAsCheapAsAMove(const MachineInstr &MI) const override;
   86   bool verifyInstruction(const MachineInstr &MI,
lib/Target/RISCV/RISCVInstructionSelector.cpp
   37   bool select(MachineInstr &I) override;
   41   bool selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const;
   83 bool RISCVInstructionSelector::select(MachineInstr &I) {
lib/Target/RISCV/RISCVMCInstLower.cpp
  128 void llvm::LowerRISCVMachineInstrToMCInst(const MachineInstr *MI, MCInst &OutMI,
lib/Target/RISCV/RISCVMergeBaseOffset.cpp
   43   bool detectLuiAddiGlobal(MachineInstr &LUI, MachineInstr *&ADDI);
   43   bool detectLuiAddiGlobal(MachineInstr &LUI, MachineInstr *&ADDI);
   45   bool detectAndFoldOffset(MachineInstr &HiLUI, MachineInstr &LoADDI);
   45   bool detectAndFoldOffset(MachineInstr &HiLUI, MachineInstr &LoADDI);
   46   void foldOffset(MachineInstr &HiLUI, MachineInstr &LoADDI, MachineInstr &Tail,
   46   void foldOffset(MachineInstr &HiLUI, MachineInstr &LoADDI, MachineInstr &Tail,
   46   void foldOffset(MachineInstr &HiLUI, MachineInstr &LoADDI, MachineInstr &Tail,
   48   bool matchLargeOffset(MachineInstr &TailAdd, Register GSReg, int64_t &Offset);
   62   std::set<MachineInstr *> DeadInstrs;
   80 bool RISCVMergeBaseOffsetOpt::detectLuiAddiGlobal(MachineInstr &HiLUI,
   81                                                   MachineInstr *&LoADDI) {
  102 void RISCVMergeBaseOffsetOpt::foldOffset(MachineInstr &HiLUI,
  103                                          MachineInstr &LoADDI,
  104                                          MachineInstr &Tail, int64_t Offset) {
  134 bool RISCVMergeBaseOffsetOpt::matchLargeOffset(MachineInstr &TailAdd,
  146   MachineInstr &OffsetTail = *MRI->getVRegDef(Reg);
  154     MachineInstr &OffsetLui =
  179 bool RISCVMergeBaseOffsetOpt::detectAndFoldOffset(MachineInstr &HiLUI,
  180                                                   MachineInstr &LoADDI) {
  184   MachineInstr &Tail = *MRI->use_begin(DestReg)->getParent();
  266     for (MachineInstr &HiLUI : MBB) {
  267       MachineInstr *LoADDI = nullptr;
  277   for (auto *MI : DeadInstrs)
lib/Target/RISCV/RISCVRegisterInfo.cpp
  107   MachineInstr &MI = *II;
lib/Target/Sparc/LeonPasses.cpp
   49       MachineInstr &MI = *MBBI;
   84       MachineInstr &MI = *MBBI;
  136       MachineInstr &MI = *MBBI;
lib/Target/Sparc/LeonPasses.h
   36   int GetRegIndexForOperand(MachineInstr &MI, int OperandIndex);
lib/Target/Sparc/Sparc.h
   32   void LowerSparcMachineInstrToMCInst(const MachineInstr *MI,
lib/Target/Sparc/SparcAsmPrinter.cpp
   51     void printOperand(const MachineInstr *MI, int opNum, raw_ostream &OS);
   52     void printMemOperand(const MachineInstr *MI, int opNum, raw_ostream &OS,
   56     void EmitInstruction(const MachineInstr *MI) override;
   62     bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
   64     bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
   67     void LowerGETPCXAndEmitMCInsts(const MachineInstr *MI,
  169 void SparcAsmPrinter::LowerGETPCXAndEmitMCInsts(const MachineInstr *MI,
  252 void SparcAsmPrinter::EmitInstruction(const MachineInstr *MI)
  291 void SparcAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
  382 void SparcAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum,
  406 bool SparcAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  427 bool SparcAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
lib/Target/Sparc/SparcFrameLowering.cpp
  208     MachineInstr &MI = *I;
lib/Target/Sparc/SparcISelLowering.cpp
 3099 SparcTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
 3117 SparcTargetLowering::expandSelectCC(MachineInstr &MI, MachineBasicBlock *BB,
lib/Target/Sparc/SparcISelLowering.h
   71     EmitInstrWithCustomInserter(MachineInstr &MI,
  211     MachineBasicBlock *expandSelectCC(MachineInstr &MI, MachineBasicBlock *BB,
lib/Target/Sparc/SparcInstrInfo.cpp
   43 unsigned SparcInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
   62 unsigned SparcInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  153 static void parseCondBranch(MachineInstr *LastInst, MachineBasicBlock *&Target,
  172   MachineInstr *LastInst = &*I;
  190   MachineInstr *SecondLastInst = &*I;
  375   MachineInstr *MovMI = nullptr;
  494 bool SparcInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
lib/Target/Sparc/SparcInstrInfo.h
   56   unsigned isLoadFromStackSlot(const MachineInstr &MI,
   64   unsigned isStoreToStackSlot(const MachineInstr &MI,
  102   bool expandPostRAPseudo(MachineInstr &MI) const override;
lib/Target/Sparc/SparcMCInstLower.cpp
   29 static MCOperand LowerSymbolOperand(const MachineInstr *MI,
   67 static MCOperand LowerOperand(const MachineInstr *MI,
   93 void llvm::LowerSparcMachineInstrToMCInst(const MachineInstr *MI,
lib/Target/Sparc/SparcRegisterInfo.cpp
  169   MachineInstr &MI = *II;
  188       MachineInstr *StMI =
  200       MachineInstr *LdMI =
lib/Target/SystemZ/SystemZAsmPrinter.cpp
   31 static MCInst lowerRILow(const MachineInstr *MI, unsigned Opcode) {
   45 static MCInst lowerRIHigh(const MachineInstr *MI, unsigned Opcode) {
   59 static MCInst lowerRIEfLow(const MachineInstr *MI, unsigned Opcode) {
   87 static void lowerAlignmentHint(const MachineInstr *MI, MCInst &LoweredMI,
  106 static MCInst lowerSubvectorLoad(const MachineInstr *MI, unsigned Opcode) {
  116 static MCInst lowerSubvectorStore(const MachineInstr *MI, unsigned Opcode) {
  125 void SystemZAsmPrinter::EmitInstruction(const MachineInstr *MI) {
  553 void SystemZAsmPrinter::LowerFENTRY_CALL(const MachineInstr &MI,
  569 void SystemZAsmPrinter::LowerSTACKMAP(const MachineInstr &MI) {
  602 void SystemZAsmPrinter::LowerPATCHPOINT(const MachineInstr &MI,
  682 bool SystemZAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  693 bool SystemZAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
lib/Target/SystemZ/SystemZAsmPrinter.h
   35   void EmitInstruction(const MachineInstr *MI) override;
   38   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
   40   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
   49   void LowerFENTRY_CALL(const MachineInstr &MI, SystemZMCInstLower &MCIL);
   50   void LowerSTACKMAP(const MachineInstr &MI);
   51   void LowerPATCHPOINT(const MachineInstr &MI, SystemZMCInstLower &Lower);
lib/Target/SystemZ/SystemZElimCompare.cpp
   83   Reference getRegReferences(MachineInstr &MI, unsigned Reg);
   84   bool convertToBRCT(MachineInstr &MI, MachineInstr &Compare,
   84   bool convertToBRCT(MachineInstr &MI, MachineInstr &Compare,
   85                      SmallVectorImpl<MachineInstr *> &CCUsers);
   86   bool convertToLoadAndTrap(MachineInstr &MI, MachineInstr &Compare,
   86   bool convertToLoadAndTrap(MachineInstr &MI, MachineInstr &Compare,
   87                             SmallVectorImpl<MachineInstr *> &CCUsers);
   88   bool convertToLoadAndTest(MachineInstr &MI, MachineInstr &Compare,
   88   bool convertToLoadAndTest(MachineInstr &MI, MachineInstr &Compare,
   89                             SmallVectorImpl<MachineInstr *> &CCUsers);
   90   bool adjustCCMasksForInstr(MachineInstr &MI, MachineInstr &Compare,
   90   bool adjustCCMasksForInstr(MachineInstr &MI, MachineInstr &Compare,
   91                              SmallVectorImpl<MachineInstr *> &CCUsers,
   93   bool optimizeCompareZero(MachineInstr &Compare,
   94                            SmallVectorImpl<MachineInstr *> &CCUsers);
   95   bool fuseCompareOperations(MachineInstr &Compare,
   96                              SmallVectorImpl<MachineInstr *> &CCUsers);
  115 static bool preservesValueOf(MachineInstr &MI, unsigned Reg) {
  138 static bool resultTests(MachineInstr &MI, unsigned Reg) {
  147 Reference SystemZElimCompare::getRegReferences(MachineInstr &MI, unsigned Reg) {
  170 static bool isLoadAndTestAsCmp(MachineInstr &MI) {
  181 static unsigned getCompareSourceReg(MachineInstr &Compare) {
  196     MachineInstr &MI, MachineInstr &Compare,
  196     MachineInstr &MI, MachineInstr &Compare,
  197     SmallVectorImpl<MachineInstr *> &CCUsers) {
  215   MachineInstr *Branch = CCUsers[0];
  250     MachineInstr &MI, MachineInstr &Compare,
  250     MachineInstr &MI, MachineInstr &Compare,
  251     SmallVectorImpl<MachineInstr *> &CCUsers) {
  259   MachineInstr *Branch = CCUsers[0];
  290     MachineInstr &MI, MachineInstr &Compare,
  290     MachineInstr &MI, MachineInstr &Compare,
  291     SmallVectorImpl<MachineInstr *> &CCUsers) {
  315     MachineInstr &MI, MachineInstr &Compare,
  315     MachineInstr &MI, MachineInstr &Compare,
  316     SmallVectorImpl<MachineInstr *> &CCUsers,
  344       MachineInstr *MI = CCUsers[I];
  404 static bool isCompareZero(MachineInstr &Compare) {
  424     MachineInstr &Compare, SmallVectorImpl<MachineInstr *> &CCUsers) {
  424     MachineInstr &Compare, SmallVectorImpl<MachineInstr *> &CCUsers) {
  436     MachineInstr &MI = *MBBI++;
  472     MachineInstr &MI = *MBBI++;
  492     MachineInstr &Compare, SmallVectorImpl<MachineInstr *> &CCUsers) {
  492     MachineInstr &Compare, SmallVectorImpl<MachineInstr *> &CCUsers) {
  496   MachineInstr *Branch = CCUsers[0];
  599   SmallVector<MachineInstr *, 4> CCUsers;
  602     MachineInstr &MI = *--MBBI;
lib/Target/SystemZ/SystemZFrameLowering.cpp
  333     MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII->get(Opcode), Reg)
lib/Target/SystemZ/SystemZHazardRecognizer.cpp
  117 bool SystemZHazardRecognizer::has4RegOps(const MachineInstr *MI) const {
  264 static inline bool isBranchRetTrap(MachineInstr *MI) {
  410 void SystemZHazardRecognizer::emitInstruction(MachineInstr *MI,
lib/Target/SystemZ/SystemZHazardRecognizer.h
   78   bool has4RegOps(const MachineInstr *MI) const;
  107   MachineInstr *LastEmittedMI;
  128   void emitInstruction(MachineInstr *MI, bool TakenBranch = false);
lib/Target/SystemZ/SystemZISelLowering.cpp
 6502 static Register forceReg(MachineInstr &MI, MachineOperand &Base,
 6522 static bool checkCCKill(MachineInstr &MI, MachineBasicBlock *MBB) {
 6526     const MachineInstr& mi = *miI;
 6547 static bool isSelectPseudo(MachineInstr &MI) {
 6567 static void createPHIsForSelects(SmallVector<MachineInstr*, 8> &Selects,
 6574   MachineInstr *FirstMI = Selects.front();
 6619 SystemZTargetLowering::emitSelect(MachineInstr &MI,
 6631   SmallVector<MachineInstr*, 8> Selects;
 6632   SmallVector<MachineInstr*, 8> DbgValues;
 6666   MachineInstr *LastMI = Selects.back();
 6713 MachineBasicBlock *SystemZTargetLowering::emitCondStore(MachineInstr &MI,
 6806     MachineInstr &MI, MachineBasicBlock *MBB, unsigned BinOpcode,
 6925     MachineInstr &MI, MachineBasicBlock *MBB, unsigned CompareOpcode,
 7039 SystemZTargetLowering::emitAtomicCmpSwapW(MachineInstr &MI,
 7164 SystemZTargetLowering::emitPair128(MachineInstr &MI,
 7191 MachineBasicBlock *SystemZTargetLowering::emitExt128(MachineInstr &MI,
 7223     MachineInstr &MI, MachineBasicBlock *MBB, unsigned Opcode) const {
 7403     MachineInstr &MI, MachineBasicBlock *MBB, unsigned Opcode) const {
 7462     MachineInstr &MI, MachineBasicBlock *MBB, unsigned Opcode,
 7510     MachineInstr &MI, MachineBasicBlock *MBB, unsigned Opcode) const {
 7533     MachineInstr &MI, MachineBasicBlock *MBB) const {
lib/Target/SystemZ/SystemZISelLowering.h
  477   EmitInstrWithCustomInserter(MachineInstr &MI,
  627   MachineBasicBlock *emitSelect(MachineInstr &MI, MachineBasicBlock *BB) const;
  628   MachineBasicBlock *emitCondStore(MachineInstr &MI, MachineBasicBlock *BB,
  631   MachineBasicBlock *emitPair128(MachineInstr &MI,
  633   MachineBasicBlock *emitExt128(MachineInstr &MI, MachineBasicBlock *MBB,
  635   MachineBasicBlock *emitAtomicLoadBinary(MachineInstr &MI,
  639   MachineBasicBlock *emitAtomicLoadMinMax(MachineInstr &MI,
  644   MachineBasicBlock *emitAtomicCmpSwapW(MachineInstr &MI,
  646   MachineBasicBlock *emitMemMemWrapper(MachineInstr &MI, MachineBasicBlock *BB,
  648   MachineBasicBlock *emitStringWrapper(MachineInstr &MI, MachineBasicBlock *BB,
  650   MachineBasicBlock *emitTransactionBegin(MachineInstr &MI,
  653   MachineBasicBlock *emitLoadAndTestCmp0(MachineInstr &MI,
lib/Target/SystemZ/SystemZInstrBuilder.h
   27   MachineInstr *MI = MIB;
lib/Target/SystemZ/SystemZInstrInfo.cpp
   72   MachineInstr *EarlierMI = MF.CloneMachineInstr(&*MI);
  137 void SystemZInstrInfo::expandRIPseudo(MachineInstr &MI, unsigned LowOpcode,
  151 void SystemZInstrInfo::expandRIEPseudo(MachineInstr &MI, unsigned LowOpcode,
  175 void SystemZInstrInfo::expandRXYPseudo(MachineInstr &MI, unsigned LowOpcode,
  187 void SystemZInstrInfo::expandLOCPseudo(MachineInstr &MI, unsigned LowOpcode,
  197 void SystemZInstrInfo::expandZExtPseudo(MachineInstr &MI, unsigned LowOpcode,
  211 void SystemZInstrInfo::expandLoadStackGuard(MachineInstr *MI) const {
  272 MachineInstr *SystemZInstrInfo::commuteInstructionImpl(MachineInstr &MI,
  272 MachineInstr *SystemZInstrInfo::commuteInstructionImpl(MachineInstr &MI,
  291     auto &WorkingMI = cloneIfNew(MI);
  309 static int isSimpleMove(const MachineInstr &MI, int &FrameIndex,
  320 unsigned SystemZInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
  325 unsigned SystemZInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  330 bool SystemZInstrInfo::isStackSlotCopy(const MachineInstr &MI,
  516 bool SystemZInstrInfo::analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  608 bool SystemZInstrInfo::FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
  608 bool SystemZInstrInfo::FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
  672 bool SystemZInstrInfo::isPredicable(const MachineInstr &MI) const {
  719     MachineInstr &MI, ArrayRef<MachineOperand> Pred) const {
  902 static bool isSimpleBD12Move(const MachineInstr *MI, unsigned Flag) {
  940 static void transferDeadCC(MachineInstr *OldMI, MachineInstr *NewMI) {
  940 static void transferDeadCC(MachineInstr *OldMI, MachineInstr *NewMI) {
  948 MachineInstr *SystemZInstrInfo::convertToThreeAddress(
  997 MachineInstr *SystemZInstrInfo::foldMemoryOperandImpl(
  998     MachineFunction &MF, MachineInstr &MI, ArrayRef<unsigned> Ops,
 1020         MachineInstr *BuiltMI = BuildMI(*InsertPt->getParent(), InsertPt,
 1047     MachineInstr *BuiltMI =
 1062     MachineInstr *BuiltMI =
 1077     MachineInstr *BuiltMI =
 1210 MachineInstr *SystemZInstrInfo::foldMemoryOperandImpl(
 1211     MachineFunction &MF, MachineInstr &MI, ArrayRef<unsigned> Ops,
 1217 bool SystemZInstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
 1396 unsigned SystemZInstrInfo::getInstSizeInBytes(const MachineInstr &MI) const {
 1406 SystemZInstrInfo::getBranchInfo(const MachineInstr &MI) const {
 1600                                            const MachineInstr *MI) const {
 1752 areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
 1753                                 const MachineInstr &MIb) const {
lib/Target/SystemZ/SystemZInstrInfo.h
  165   void expandRIPseudo(MachineInstr &MI, unsigned LowOpcode, unsigned HighOpcode,
  167   void expandRIEPseudo(MachineInstr &MI, unsigned LowOpcode,
  169   void expandRXYPseudo(MachineInstr &MI, unsigned LowOpcode,
  171   void expandLOCPseudo(MachineInstr &MI, unsigned LowOpcode,
  173   void expandZExtPseudo(MachineInstr &MI, unsigned LowOpcode,
  175   void expandLoadStackGuard(MachineInstr *MI) const;
  197   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  197   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  205   unsigned isLoadFromStackSlot(const MachineInstr &MI,
  207   unsigned isStoreToStackSlot(const MachineInstr &MI,
  209   bool isStackSlotCopy(const MachineInstr &MI, int &DestFrameIndex,
  221   bool analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  229   bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, unsigned Reg,
  229   bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, unsigned Reg,
  231   bool isPredicable(const MachineInstr &MI) const override;
  242   bool PredicateInstruction(MachineInstr &MI,
  257   MachineInstr *convertToThreeAddress(MachineFunction::iterator &MFI,
  260   MachineInstr *
  261   foldMemoryOperandImpl(MachineFunction &MF, MachineInstr &MI,
  266   MachineInstr *foldMemoryOperandImpl(
  267       MachineFunction &MF, MachineInstr &MI, ArrayRef<unsigned> Ops,
  270   bool expandPostRAPseudo(MachineInstr &MBBI) const override;
  278   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
  285   SystemZII::Branch getBranchInfo(const MachineInstr &MI) const;
  313                            const MachineInstr *MI = nullptr) const;
  330   areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
  331                                   const MachineInstr &MIb) const override;
lib/Target/SystemZ/SystemZLDCleanup.cpp
   44   MachineInstr *ReplaceTLSCall(MachineInstr *I, unsigned TLSBaseAddrReg);
   44   MachineInstr *ReplaceTLSCall(MachineInstr *I, unsigned TLSBaseAddrReg);
   45   MachineInstr *SetRegister(MachineInstr *I, unsigned *TLSBaseAddrReg);
   45   MachineInstr *SetRegister(MachineInstr *I, unsigned *TLSBaseAddrReg);
  116 MachineInstr *SystemZLDCleanup::ReplaceTLSCall(MachineInstr *I,
  116 MachineInstr *SystemZLDCleanup::ReplaceTLSCall(MachineInstr *I,
  119   MachineInstr *Copy = BuildMI(*I->getParent(), I, I->getDebugLoc(),
  131 MachineInstr *SystemZLDCleanup::SetRegister(MachineInstr *I,
  131 MachineInstr *SystemZLDCleanup::SetRegister(MachineInstr *I,
  138   MachineInstr *Next = I->getNextNode();
  139   MachineInstr *Copy = BuildMI(*I->getParent(), Next, I->getDebugLoc(),
lib/Target/SystemZ/SystemZLongBranch.cpp
  102   MachineInstr *Branch = nullptr;
  154   TerminatorInfo describeTerminator(MachineInstr &MI);
  159   void splitBranchOnCount(MachineInstr *MI, unsigned AddOpcode);
  160   void splitCompareBranch(MachineInstr *MI, unsigned CompareOpcode);
  213 TerminatorInfo SystemZLongBranch::describeTerminator(MachineInstr &MI) {
  354 void SystemZLongBranch::splitBranchOnCount(MachineInstr *MI,
  362   MachineInstr *BRCL = BuildMI(*MBB, MI, DL, TII->get(SystemZ::BRCL))
  373 void SystemZLongBranch::splitCompareBranch(MachineInstr *MI,
  380   MachineInstr *BRCL = BuildMI(*MBB, MI, DL, TII->get(SystemZ::BRCL))
  391   MachineInstr *Branch = Terminator.Branch;
lib/Target/SystemZ/SystemZMCInstLower.cpp
   94 void SystemZMCInstLower::lower(const MachineInstr *MI, MCInst &OutMI) const {
lib/Target/SystemZ/SystemZMCInstLower.h
   32   void lower(const MachineInstr *MI, MCInst &OutMI) const;
lib/Target/SystemZ/SystemZPostRewrite.cpp
  162   MachineInstr &MI = *MBBI;
  215   MachineInstr &MI = *MBBI;
lib/Target/SystemZ/SystemZRegisterInfo.cpp
   99       for (auto &Use : MRI->reg_instructions(Reg)) {
  132             for (MachineInstr &DefMI : MRI->def_instructions(VirtReg))
  151   for (auto &Use : MRI->reg_nodbg_instructions(VirtReg))
  336 bool SystemZRegisterInfo::shouldCoalesce(MachineInstr *MI,
  362   MachineInstr *FirstMI_GR128 =
  364   MachineInstr *FirstMI_GRNar =
  366   MachineInstr *LastMI_GR128 = LIS.getInstructionFromIndex(IntGR128.endIndex());
  367   MachineInstr *LastMI_GRNar = LIS.getInstructionFromIndex(IntGRNar.endIndex());
lib/Target/SystemZ/SystemZRegisterInfo.h
   87  bool shouldCoalesce(MachineInstr *MI,
lib/Target/SystemZ/SystemZShortenInst.cpp
   43   bool shortenIIF(MachineInstr &MI, unsigned LLIxL, unsigned LLIxH);
   44   bool shortenOn0(MachineInstr &MI, unsigned Opcode);
   45   bool shortenOn01(MachineInstr &MI, unsigned Opcode);
   46   bool shortenOn001(MachineInstr &MI, unsigned Opcode);
   47   bool shortenOn001AddCC(MachineInstr &MI, unsigned Opcode);
   48   bool shortenFPConv(MachineInstr &MI, unsigned Opcode);
   49   bool shortenSelect(MachineInstr &MI, unsigned Opcode);
   67 static void tieOpsIfNeeded(MachineInstr &MI) {
   76 bool SystemZShortenInst::shortenIIF(MachineInstr &MI, unsigned LLIxL,
  109 bool SystemZShortenInst::shortenOn0(MachineInstr &MI, unsigned Opcode) {
  119 bool SystemZShortenInst::shortenOn01(MachineInstr &MI, unsigned Opcode) {
  131 bool SystemZShortenInst::shortenOn001(MachineInstr &MI, unsigned Opcode) {
  144 bool SystemZShortenInst::shortenOn001AddCC(MachineInstr &MI, unsigned Opcode) {
  157 bool SystemZShortenInst::shortenFPConv(MachineInstr &MI, unsigned Opcode) {
  181 bool SystemZShortenInst::shortenSelect(MachineInstr &MI, unsigned Opcode) {
  206     MachineInstr &MI = *MBBI;
lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp
   80   for (MachineInstr &MI : EntryMBB) {
   89   for (MachineInstr &MI : llvm::make_range(InsertPt, EntryMBB.end())) {
lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
  308 void WebAssemblyAsmPrinter::EmitInstruction(const MachineInstr *MI) {
  366 bool WebAssemblyAsmPrinter::PrintAsmOperand(const MachineInstr *MI,
  404 bool WebAssemblyAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
lib/Target/WebAssembly/WebAssemblyAsmPrinter.h
   66   void EmitInstruction(const MachineInstr *MI) override;
   67   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
   69   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
lib/Target/WebAssembly/WebAssemblyCFGSort.cpp
  148   for (const MachineInstr &Term : MBB->terminators()) {
lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
   69   DenseMap<const MachineInstr *, MachineInstr *> BeginToEnd;
   69   DenseMap<const MachineInstr *, MachineInstr *> BeginToEnd;
   71   DenseMap<const MachineInstr *, MachineInstr *> EndToBegin;
   71   DenseMap<const MachineInstr *, MachineInstr *> EndToBegin;
   73   DenseMap<const MachineInstr *, MachineBasicBlock *> TryToEHPad;
   75   DenseMap<const MachineBasicBlock *, MachineInstr *> EHPadToTry;
   94   void registerScope(MachineInstr *Begin, MachineInstr *End);
   94   void registerScope(MachineInstr *Begin, MachineInstr *End);
   95   void registerTryScope(MachineInstr *Begin, MachineInstr *End,
   95   void registerTryScope(MachineInstr *Begin, MachineInstr *End,
   97   void unregisterScope(MachineInstr *Begin);
  123   for (MachineInstr &MI : Pred->terminators())
  178 void WebAssemblyCFGStackify::registerScope(MachineInstr *Begin,
  179                                            MachineInstr *End) {
  184 void WebAssemblyCFGStackify::registerTryScope(MachineInstr *Begin,
  185                                               MachineInstr *End,
  192 void WebAssemblyCFGStackify::unregisterScope(MachineInstr *Begin) {
  194   MachineInstr *End = BeginToEnd[Begin];
  222   MachineInstr *BrOnExn = nullptr;
  263   SmallPtrSet<const MachineInstr *, 4> BeforeSet;
  265   SmallPtrSet<const MachineInstr *, 4> AfterSet;
  266   for (const auto &MI : *Header) {
  328   MachineInstr *Begin =
  336   for (auto &MI : MBB) {
  361   MachineInstr *End = BuildMI(MBB, InsertPos, MBB.findPrevDebugLoc(InsertPos),
  393   SmallPtrSet<const MachineInstr *, 4> BeforeSet;
  394   SmallPtrSet<const MachineInstr *, 4> AfterSet;
  395   for (const auto &MI : MBB) {
  408   MachineInstr *Begin = BuildMI(MBB, InsertPos, MBB.findDebugLoc(InsertPos),
  416   for (const auto &MI : MBB)
  428   MachineInstr *End =
  494   SmallPtrSet<const MachineInstr *, 4> BeforeSet;
  496   SmallPtrSet<const MachineInstr *, 4> AfterSet;
  497   for (const auto &MI : *Header) {
  535   MachineInstr *ThrowingCall = nullptr;
  540       for (auto &MI : reverse(*Header)) {
  576   MachineInstr *Begin =
  584   for (const auto &MI : *Cont) {
  617   MachineInstr *End =
  680   SmallVector<MachineInstr *, 32> ToDelete;
  682     for (auto &MI : MBB) {
  686       MachineInstr *Try = &MI, *EndTry = BeginToEnd[Try];
  701   for (auto *MI : ToDelete) {
  714   for (auto &MI : Split) {
  718       if (MachineInstr *Def = MRI.getUniqueVRegDef(MO.getReg()))
  861   using TryRange = std::pair<MachineInstr *, MachineInstr *>;
  861   using TryRange = std::pair<MachineInstr *, MachineInstr *>;
  873     for (auto &MI : reverse(MBB)) {
  913     MachineInstr *RangeBegin = nullptr, *RangeEnd = nullptr; // inclusive
  914     for (auto &MI : reverse(MBB)) {
 1013     MachineInstr *Catch = nullptr;
 1015     for (auto &MI : *EHPad) {
 1030     MachineInstr *BeginTry = EHPadToTry[EHPad];
 1031     MachineInstr *EndTry = BeginToEnd[BeginTry];
 1109       MachineInstr *RangeBegin = nullptr, *RangeEnd = nullptr;
 1130       MachineInstr *NestedTry =
 1148       MachineInstr *NestedEndTry =
 1174     for (auto &MI : reverse(MBB)) {
 1244     for (MachineInstr &MI : reverse(MBB)) {
 1302       MachineInstr &MI = *I;
lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp
   63 static unsigned getNonPseudoCallIndirectOpcode(const MachineInstr &MI) {
   97 static bool isPseudoCallIndirect(const MachineInstr &MI) {
  111     for (MachineInstr &MI : MBB) {
lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp
   21     MachineInstr *Instr) {
   25 void WebAssemblyDebugValueManager::move(MachineInstr *Insert) {
   27   for (MachineInstr *DBI : reverse(DbgValues))
   32   for (auto *DBI : DbgValues)
   36 void WebAssemblyDebugValueManager::clone(MachineInstr *Insert,
   40   for (MachineInstr *DBI : reverse(DbgValues)) {
   41     MachineInstr *Clone = MF->CloneMachineInstr(DBI);
lib/Target/WebAssembly/WebAssemblyDebugValueManager.h
   25   SmallVector<MachineInstr *, 2> DbgValues;
   28   WebAssemblyDebugValueManager(MachineInstr *Instr);
   30   void move(MachineInstr *Insert);
   32   void clone(MachineInstr *Insert, unsigned NewReg);
lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
  168 static MachineInstr *findStartOfTree(MachineOperand &MO,
  173   MachineInstr *Def = MRI.getVRegDef(Reg);
  207     MachineInstr &MI = *I++;
  229       MachineInstr &MI = *I++;
  285             MachineInstr *Drop =
  308       MachineInstr *InsertPt = &MI;
  385     for (const MachineInstr &MI : MBB) {
lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
  453     for (MachineInstr &Term : Pred->terminators())
lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
  331 static MachineBasicBlock *LowerFPToInt(MachineInstr &MI, DebugLoc DL,
  425     MachineInstr &MI, MachineBasicBlock *BB) const {
lib/Target/WebAssembly/WebAssemblyISelLowering.h
   51   EmitInstrWithCustomInserter(MachineInstr &MI,
lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp
   41     const MachineInstr &MI, AAResults *AA) const {
   87 MachineInstr *WebAssemblyInstrInfo::commuteInstructionImpl(
   88     MachineInstr &MI, bool NewMI, unsigned OpIdx1, unsigned OpIdx2) const {
  114   for (MachineInstr &MI : MBB.terminators()) {
lib/Target/WebAssembly/WebAssemblyInstrInfo.h
   45   bool isReallyTriviallyReMaterializable(const MachineInstr &MI,
   51   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
   51   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
   60 static MachineBasicBlock *getMatchingEHPad(MachineInstr *MI) {
  151     MachineInstr *TI = &*Pos;
  171       MachineInstr *Catch = &*CatchPos;
  188     for (auto &MI : MBB) {
  239   SmallVector<MachineInstr *, 16> ExtractInstrs;
  240   SmallVector<MachineInstr *, 8> ToDelete;
  242     for (auto &MI : MBB) {
  252   for (auto *MI : ToDelete)
  260     for (auto &MI : MBB) {
  270   for (auto *Extract : ExtractInstrs) {
  276     MachineInstr *Catch = &*CatchPos;
lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp
   67       MachineInstr *MI = &*MII++;
   77         MachineInstr *Def = MRI.getVRegDef(Cond);
lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
   45 static void removeRegisterOperands(const MachineInstr *MI, MCInst &OutMI);
  196 static void getFunctionReturns(const MachineInstr *MI,
  206 void WebAssemblyMCInstLower::lower(const MachineInstr *MI,
  311 static void removeRegisterOperands(const MachineInstr *MI, MCInst &OutMI) {
lib/Target/WebAssembly/WebAssemblyMCInstLower.h
   43   void lower(const MachineInstr *MI, MCInst &OutMI) const;
lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
   84 static bool replaceDominatedUses(MachineBasicBlock &MBB, MachineInstr &MI,
  102     MachineInstr *Where = O.getParent();
  149 static bool optimizeCall(MachineBasicBlock &MBB, MachineInstr &MI,
  200     for (auto &MI : MBB)
lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp
   97     MachineInstr *MI = &*MII++;
lib/Target/WebAssembly/WebAssemblyPeephole.cpp
   74 static bool maybeRewriteToFallthrough(MachineInstr &MI, MachineBasicBlock &MBB,
  148     for (auto &MI : MBB)
lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp
   66   for (const auto &Def : MRI.def_instructions(Reg))
  116     MachineInstr &MI = *MII++;
lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp
   74   for (MachineInstr &MI : EntryMBB) {
lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
   82 static void imposeStackOrdering(MachineInstr *MI) {
   98 static void convertImplicitDefToConstZero(MachineInstr *MI,
  126     MachineInstr *Const = BuildMI(*MI->getParent(), MI, MI->getDebugLoc(),
  138 static void queryCallee(const MachineInstr &MI, unsigned CalleeOpNo, bool &Read,
  170 static void query(const MachineInstr &MI, AliasAnalysis &AA, bool &Read,
  261 static bool shouldRematerialize(const MachineInstr &Def, AliasAnalysis &AA,
  269 static MachineInstr *getVRegDef(unsigned Reg, const MachineInstr *Insert,
  269 static MachineInstr *getVRegDef(unsigned Reg, const MachineInstr *Insert,
  273   if (MachineInstr *Def = MRI.getUniqueVRegDef(Reg))
  287 static bool hasOneUse(unsigned Reg, MachineInstr *Def, MachineRegisterInfo &MRI,
  316 static bool isSafeToMove(const MachineInstr *Def, const MachineInstr *Insert,
  316 static bool isSafeToMove(const MachineInstr *Def, const MachineInstr *Insert,
  408   const MachineInstr *OneUseInst = OneUse.getParent();
  415     const MachineInstr *UseInst = Use.getParent();
  445         const MachineInstr *NewUseInst = NewUse.getParent();
  483 static MachineInstr *moveForSingleUse(unsigned Reg, MachineOperand &Op,
  484                                       MachineInstr *Def, MachineBasicBlock &MBB,
  485                                       MachineInstr *Insert, LiveIntervals &LIS,
  528 static MachineInstr *rematerializeCheapDef(
  529     unsigned Reg, MachineOperand &Op, MachineInstr &Def, MachineBasicBlock &MBB,
  541   MachineInstr *Clone = &*std::prev(Insert);
  596 static MachineInstr *moveAndTeeForMultiUse(
  597     unsigned Reg, MachineOperand &Op, MachineInstr *Def, MachineBasicBlock &MBB,
  598     MachineInstr *Insert, LiveIntervals &LIS, WebAssemblyFunctionInfo &MFI,
  613   MachineInstr *Tee = BuildMI(MBB, Insert, Insert->getDebugLoc(),
  652   using mop_iterator = MachineInstr::mop_iterator;
  658   explicit TreeWalkerState(MachineInstr *Insert) {
  679   void pushOperands(MachineInstr *Instr) {
  687   void resetTopOperands(MachineInstr *Instr) {
  696   bool hasRemainingOperands(const MachineInstr *Instr) const {
  737   void maybeCommute(MachineInstr *Insert, TreeWalkerState &TreeWalker,
  789       MachineInstr *Insert = &*MII;
  818         MachineInstr *Def = getVRegDef(Reg, Insert, MRI, LIS);
  912     for (MachineInstr &MI : MBB) {
lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp
   57   MachineInstr &MI = *II;
   96         MachineInstr *Def = MF.getRegInfo().getUniqueVRegDef(OtherMOReg);
lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp
   57 static void rewriteP2Align(MachineInstr &MI, unsigned OperandNo) {
   86     for (auto &MI : MBB) {
lib/Target/WebAssembly/WebAssemblyUtilities.cpp
   28 bool WebAssembly::isChild(const MachineInstr &MI,
   39 bool WebAssembly::mayThrow(const MachineInstr &MI) {
lib/Target/WebAssembly/WebAssemblyUtilities.h
   26 bool isChild(const MachineInstr &MI, const WebAssemblyFunctionInfo &MFI);
   27 bool mayThrow(const MachineInstr &MI);
lib/Target/X86/X86AsmPrinter.cpp
  202 void X86AsmPrinter::PrintOperand(const MachineInstr *MI, unsigned OpNo,
  238 void X86AsmPrinter::PrintModifiedOperand(const MachineInstr *MI, unsigned OpNo,
  258 void X86AsmPrinter::PrintPCRelImm(const MachineInstr *MI, unsigned OpNo,
  276 void X86AsmPrinter::PrintLeaMemReference(const MachineInstr *MI, unsigned OpNo,
  328 void X86AsmPrinter::PrintMemReference(const MachineInstr *MI, unsigned OpNo,
  339 void X86AsmPrinter::PrintIntelMemReference(const MachineInstr *MI,
  433 bool X86AsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  524 bool X86AsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
lib/Target/X86/X86AsmPrinter.h
   83   void LowerSTACKMAP(const MachineInstr &MI);
   84   void LowerPATCHPOINT(const MachineInstr &MI, X86MCInstLower &MCIL);
   85   void LowerSTATEPOINT(const MachineInstr &MI, X86MCInstLower &MCIL);
   86   void LowerFAULTING_OP(const MachineInstr &MI, X86MCInstLower &MCIL);
   87   void LowerPATCHABLE_OP(const MachineInstr &MI, X86MCInstLower &MCIL);
   89   void LowerTlsAddr(X86MCInstLower &MCInstLowering, const MachineInstr &MI);
   92   void LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI,
   94   void LowerPATCHABLE_RET(const MachineInstr &MI, X86MCInstLower &MCIL);
   95   void LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI, X86MCInstLower &MCIL);
   96   void LowerPATCHABLE_EVENT_CALL(const MachineInstr &MI, X86MCInstLower &MCIL);
   97   void LowerPATCHABLE_TYPED_EVENT_CALL(const MachineInstr &MI,
  100   void LowerFENTRY_CALL(const MachineInstr &MI, X86MCInstLower &MCIL);
  103   void EmitSEHInstruction(const MachineInstr *MI);
  106   void PrintOperand(const MachineInstr *MI, unsigned OpNo, raw_ostream &O);
  107   void PrintModifiedOperand(const MachineInstr *MI, unsigned OpNo,
  109   void PrintPCRelImm(const MachineInstr *MI, unsigned OpNo, raw_ostream &O);
  110   void PrintLeaMemReference(const MachineInstr *MI, unsigned OpNo,
  112   void PrintMemReference(const MachineInstr *MI, unsigned OpNo, raw_ostream &O,
  114   void PrintIntelMemReference(const MachineInstr *MI, unsigned OpNo,
  130   void EmitInstruction(const MachineInstr *MI) override;
  137   bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  139   bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
   89   SmallVector<std::pair<MachineInstr *, MachineInstr *>, 2>
   89   SmallVector<std::pair<MachineInstr *, MachineInstr *>, 2>
   91   SmallVector<MachineInstr *, 2> ForRemoval;
  100   void breakBlockedCopies(MachineInstr *LoadInst, MachineInstr *StoreInst,
  100   void breakBlockedCopies(MachineInstr *LoadInst, MachineInstr *StoreInst,
  103   void buildCopies(int Size, MachineInstr *LoadInst, int64_t LdDispImm,
  104                    MachineInstr *StoreInst, int64_t StDispImm,
  107   void buildCopy(MachineInstr *LoadInst, unsigned NLoadOpcode, int64_t LoadDisp,
  108                  MachineInstr *StoreInst, unsigned NStoreOpcode,
  114   unsigned getRegSizeInBytes(MachineInstr *Inst);
  289 static int getAddrOffset(MachineInstr *MI) {
  297 static MachineOperand &getBaseOperand(MachineInstr *MI) {
  302 static MachineOperand &getDispOperand(MachineInstr *MI) {
  310 static bool isRelevantAddressingMode(MachineInstr *MI) {
  336 static SmallVector<MachineInstr *, 2>
  338   SmallVector<MachineInstr *, 2> PotentialBlockers;
  349     MachineInstr &MI = *PBInst;
  383 void X86AvoidSFBPass::buildCopy(MachineInstr *LoadInst, unsigned NLoadOpcode,
  384                                 int64_t LoadDisp, MachineInstr *StoreInst,
  396   MachineInstr *NewLoad =
  411   MachineInstr *StInst = StoreInst;
  417   MachineInstr *NewStore =
  435 void X86AvoidSFBPass::buildCopies(int Size, MachineInstr *LoadInst,
  436                                   int64_t LdDispImm, MachineInstr *StoreInst,
  497 static void updateKillStatus(MachineInstr *LoadInst, MachineInstr *StoreInst) {
  497 static void updateKillStatus(MachineInstr *LoadInst, MachineInstr *StoreInst) {
  504     MachineInstr *LastLoad = LoadInst->getPrevNode();
  514     MachineInstr *StInst = StoreInst;
  538     for (auto &MI : MBB) {
  547         MachineInstr &StoreMI = *StoreMO.getParent();
  564 unsigned X86AvoidSFBPass::getRegSizeInBytes(MachineInstr *LoadInst) {
  571     MachineInstr *LoadInst, MachineInstr *StoreInst,
  571     MachineInstr *LoadInst, MachineInstr *StoreInst,
  616 static bool hasSameBaseOpValue(MachineInstr *LoadInst,
  617                                MachineInstr *StoreInst) {
  687     MachineInstr *LoadInst = LoadStoreInstPair.first;
  691     SmallVector<MachineInstr *, 2> PotentialBlockers =
  718     MachineInstr *StoreInst = LoadStoreInstPair.second;
lib/Target/X86/X86AvoidTrailingCall.cpp
   51 static bool isRealInstruction(MachineInstr &MI) {
   56 static bool isCallInstruction(const MachineInstr &MI) {
lib/Target/X86/X86CallFrameOptimization.cpp
   77     MachineInstr *Call = nullptr;
   80     MachineInstr *SPCopy = nullptr;
   86     SmallVector<MachineInstr *, 4> ArgStoreVector;
  106   MachineInstr *canFoldIntoRegPush(MachineBasicBlock::iterator FrameSetup,
  170     for (MachineInstr &MI : BB) {
  258     for (auto &MI : MBB)
  557       MachineInstr *DefMov = nullptr;
  599 MachineInstr *X86CallFrameOptimization::canFoldIntoRegPush(
  618   MachineInstr &DefMI = *MRI->getVRegDef(Reg);
lib/Target/X86/X86CmovConversion.cpp
  120   using CmovGroup = SmallVector<MachineInstr *, 2>;
  145   void convertCmovInstsToBranches(SmallVectorImpl<MachineInstr *> &Group) const;
  288     for (auto &I : *MBB) {
  384   DenseMap<MachineInstr *, DepthInfo> DepthMap;
  388   DenseMap<unsigned, MachineInstr *> RegDefMaps[RegTypeNum];
  391   DenseMap<MachineOperand *, MachineInstr *> OperandToDefMap;
  396   SmallPtrSet<MachineInstr *, 4> CmovInstructions;
  428       for (MachineInstr &MI : *MBB) {
  441           if (MachineInstr *DefMI = RDM.lookup(Reg)) {
  533     for (auto *MI : Group) {
  564 static bool checkEFLAGSLive(MachineInstr *MI) {
  594 static void packCmovGroup(MachineInstr *First, MachineInstr *Last) {
  594 static void packCmovGroup(MachineInstr *First, MachineInstr *Last) {
  598   SmallVector<MachineInstr *, 2> DBGInstructions;
  606   for (auto *MI : DBGInstructions)
  611     SmallVectorImpl<MachineInstr *> &Group) const {
  649   MachineInstr &MI = *Group.front();
  650   MachineInstr *LastCMOV = Group.back();
  709     auto &MI = *MIIt++;
  758     SmallVector<MachineInstr *, 4> NewMIs;
  767     auto *NewCMOV = NewMIs.pop_back_val();
  777     for (auto *NewMI : NewMIs) {
lib/Target/X86/X86CondBrFolding.cpp
   91   MachineInstr *BrInstr;
   92   MachineInstr *CmpInstr;
  124   static bool analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  223   MachineInstr *BrMI;
  251   MachineInstr *BrMI = MBBInfo->BrInstr;
  340     MachineInstr *NewCmp = MBBInfo->CmpInstr;
  437 bool X86CondBrFolding::analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  484   MachineInstr *BrInstr;
  485   MachineInstr *CmpInstr;
lib/Target/X86/X86DiscriminateMemOps.cpp
   55 void updateDebugInfo(MachineInstr *MI, const DILocation *Loc) {
  109     for (auto &MI : MBB) {
  128     for (auto &MI : MBB) {
lib/Target/X86/X86DomainReassignment.cpp
   92   virtual bool isLegal(const MachineInstr *MI,
  102   virtual bool convertInstr(MachineInstr *MI, const TargetInstrInfo *TII,
  106   virtual double getExtraCost(const MachineInstr *MI,
  117   bool convertInstr(MachineInstr *MI, const TargetInstrInfo *TII,
  123   double getExtraCost(const MachineInstr *MI,
  138   bool isLegal(const MachineInstr *MI,
  151   bool convertInstr(MachineInstr *MI, const TargetInstrInfo *TII,
  163   double getExtraCost(const MachineInstr *MI,
  179   bool convertInstr(MachineInstr *MI, const TargetInstrInfo *TII,
  199   double getExtraCost(const MachineInstr *MI,
  215   bool isLegal(const MachineInstr *MI,
  236   double getExtraCost(const MachineInstr *MI,
  267   bool convertInstr(MachineInstr *MI, const TargetInstrInfo *TII,
  276   double getExtraCost(const MachineInstr *MI,
  306   SmallVector<MachineInstr *, 8> Instrs;
  344   void addInstruction(MachineInstr *I) {
  348   ArrayRef<MachineInstr *> instructions() const {
  362     for (MachineInstr *MI : Instrs) {
  384   DenseMap<MachineInstr *, unsigned> EnclosedInstrs;
  420   void encloseInstr(Closure &C, MachineInstr *MI);
  456 void X86DomainReassignment::encloseInstr(Closure &C, MachineInstr *MI) {
  486   for (auto *MI : C.instructions())
  502   SmallVector<MachineInstr *, 8> ToErase;
  503   for (auto *MI : C.instructions())
  526 static bool usedAsAddr(const MachineInstr &MI, unsigned Reg,
  559     MachineInstr *DefMI = MRI->getVRegDef(CurReg);
  583     for (auto &UseMI : MRI->use_nodbg_instructions(CurReg)) {
lib/Target/X86/X86EvexToVex.cpp
   66   bool CompressEvexToVexImpl(MachineInstr &MI) const;
  108     for (MachineInstr &MI : MBB)
  115 static bool usesExtendedRegister(const MachineInstr &MI) {
  147 static bool performCustomAdjustments(MachineInstr &MI, unsigned NewOpc) {
  210 bool EvexToVexInstPass::CompressEvexToVexImpl(MachineInstr &MI) const {
lib/Target/X86/X86ExpandPseudo.cpp
   78   MachineInstr *JTInst = &*MBBI;
  181   MachineInstr &MI = *MBBI;
  276     MachineInstr &NewMI = *std::prev(MBBI);
  362     MachineInstr *NewInstr = BuildMI(MBB, MBBI, DL, TII->get(ActualOpc));
lib/Target/X86/X86FastISel.cpp
   74   bool tryToFoldLoadIntoMI(MachineInstr *MI, unsigned OpNo,
 3924 bool X86FastISel::tryToFoldLoadIntoMI(MachineInstr *MI, unsigned OpNo,
 3942   MachineInstr *Result = XII.foldMemoryOperandImpl(
 3954   for (MachineInstr::mop_iterator I = Result->operands_begin(),
lib/Target/X86/X86FixupBWInsts.cpp
   82   bool getSuperRegDestIfDead(MachineInstr *OrigMI,
   88   MachineInstr *tryReplaceLoad(unsigned New32BitOpcode, MachineInstr *MI) const;
   88   MachineInstr *tryReplaceLoad(unsigned New32BitOpcode, MachineInstr *MI) const;
   93   MachineInstr *tryReplaceCopy(MachineInstr *MI) const;
   93   MachineInstr *tryReplaceCopy(MachineInstr *MI) const;
   98   MachineInstr *tryReplaceExtend(unsigned New32BitOpcode,
   99                                  MachineInstr *MI) const;
  104   MachineInstr *tryReplaceInstr(MachineInstr *MI, MachineBasicBlock &MBB) const;
  104   MachineInstr *tryReplaceInstr(MachineInstr *MI, MachineBasicBlock &MBB) const;
  177 bool FixupBWInstPass::getSuperRegDestIfDead(MachineInstr *OrigMI,
  275 MachineInstr *FixupBWInstPass::tryReplaceLoad(unsigned New32BitOpcode,
  276                                               MachineInstr *MI) const {
  299 MachineInstr *FixupBWInstPass::tryReplaceCopy(MachineInstr *MI) const {
  299 MachineInstr *FixupBWInstPass::tryReplaceCopy(MachineInstr *MI) const {
  335 MachineInstr *FixupBWInstPass::tryReplaceExtend(unsigned New32BitOpcode,
  336                                                 MachineInstr *MI) const {
  362 MachineInstr *FixupBWInstPass::tryReplaceInstr(MachineInstr *MI,
  362 MachineInstr *FixupBWInstPass::tryReplaceInstr(MachineInstr *MI,
  421   SmallVector<std::pair<MachineInstr *, MachineInstr *>, 8> MIReplacements;
  421   SmallVector<std::pair<MachineInstr *, MachineInstr *>, 8> MIReplacements;
  430     MachineInstr *MI = &*I;
  432     if (MachineInstr *NewMI = tryReplaceInstr(MI, MBB))
  440     MachineInstr *MI = MIReplacements.back().first;
  441     MachineInstr *NewMI = MIReplacements.back().second;
lib/Target/X86/X86FixupLEAs.cpp
   93   MachineInstr *postRAConvertToLEA(MachineBasicBlock &MBB,
  125 MachineInstr *
  128   MachineInstr &MI = *MBBI;
  134     MachineInstr *NewMI =
  241   MachineInstr &MI = *I;
  355   MachineInstr &MI = *I;
  383   MachineInstr *NewMI = nullptr;
  445   MachineInstr &MI = *I;
  466     MachineInstr *NewMI = postRAConvertToLEA(MBB, MBI);
  482   MachineInstr &MI = *I;
  504   MachineInstr *NewMI = nullptr;
  532   MachineInstr &MI = *I;
  570   MachineInstr *NewMI = nullptr;
lib/Target/X86/X86FixupSetCC.cpp
   47   MachineInstr *findFlagsImpDef(MachineBasicBlock *MBB,
   51   bool impUsesFlags(MachineInstr *MI);
   74 MachineInstr *
   87 bool X86FixupSetCCPass::impUsesFlags(MachineInstr *MI) {
  100   SmallVector<MachineInstr*, 4> ToErase;
  103     for (auto &MI : MBB) {
  110       MachineInstr *ZExt = nullptr;
  111       for (auto &Use : MRI->use_instructions(MI.getOperand(0).getReg()))
  119       MachineInstr *FlagsDefMI = findFlagsImpDef(
lib/Target/X86/X86FlagsCopyLowering.cpp
  121   void rewriteCopy(MachineInstr &MI, MachineOperand &FlagUse,
  122                    MachineInstr &CopyDefI);
  238                                      MachineInstr &SplitI,
  250   MachineInstr &PrevI = *std::prev(SplitI.getIterator());
  305     for (MachineInstr &MI : *Succ) {
  356   SmallVector<MachineInstr *, 4> Copies;
  359     for (MachineInstr &MI : *MBB)
  364   for (MachineInstr *CopyI : Copies) {
  370     MachineInstr &CopyDefI = *MRI->getVRegDef(VOp.getReg());
  504     SmallVector<MachineInstr *, 4> JmpIs;
  540         MachineInstr &MI = *MII++;
  684     for (MachineInstr *JmpI : JmpIs) {
  701     for (MachineInstr &MI : MBB)
  721   for (MachineInstr &MI :
  877 void X86FlagsCopyLoweringPass::rewriteCopy(MachineInstr &MI,
  879                                            MachineInstr &CopyDefI) {
lib/Target/X86/X86FloatingPoint.cpp
  290     static bool isFPCopy(MachineInstr &MI) {
  418     MachineInstr &MI = *I;
  438     MachineInstr *PrevMI = nullptr;
  834   MachineInstr &MI = *I;
 1011   MachineInstr &MI = *I;
 1098   MachineInstr &MI = *I;
 1114   MachineInstr &MI = *I;
 1174   MachineInstr &MI = *I;
 1285   MachineInstr &MI = *I;
 1381   MachineInstr &MI = *I;
 1409   MachineInstr &MI = *I;
 1438   MachineInstr &MI = *Inst;
 1696     MachineInstr &MI = *I;
lib/Target/X86/X86FrameLowering.cpp
  214   for (const MachineInstr &MI : MBB.terminators()) {
  255   MachineInstr::MIFlag Flag =
  256       isSub ? MachineInstr::FrameSetup : MachineInstr::FrameDestroy;
  256       isSub ? MachineInstr::FrameSetup : MachineInstr::FrameDestroy;
  278       MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(AddSubRROpc), StackPtr)
  304       MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(X86::ADD64rr), Rax)
  503   MachineInstr *ChkStkStub = nullptr;
  505   for (MachineInstr &MI : PrologMBB) {
  746       BeforeMBBI->setFlag(MachineInstr::FrameSetup);
  748     for (MachineInstr &MI : *RoundMBB) {
  749       MI.setFlag(MachineInstr::FrameSetup);
  751     for (MachineInstr &MI : *LoopMBB) {
  752       MI.setFlag(MachineInstr::FrameSetup);
  756       CMBBI->setFlag(MachineInstr::FrameSetup);
  820       ExpansionMBBI->setFlag(MachineInstr::FrameSetup);
  866   MachineInstr *MI = BuildMI(MBB, MBBI, DL, TII.get(AndOp), Reg)
  869                          .setMIFlag(MachineInstr::FrameSetup);
 1056         .setMIFlag(MachineInstr::FrameSetup);
 1090         .setMIFlag(MachineInstr::FrameSetup);
 1112       .setMIFlag(MachineInstr::FrameSetup);
 1131           .setMIFlag(MachineInstr::FrameSetup);
 1140           .setMIFlag(MachineInstr::FrameSetup);
 1156             .setMIFlag(MachineInstr::FrameSetup);
 1184          MBBI->getFlag(MachineInstr::FrameSetup) &&
 1204           .setMIFlag(MachineInstr::FrameSetup);
 1219           .setMIFlag(MachineInstr::FrameSetup);
 1253           .setMIFlag(MachineInstr::FrameSetup);
 1258           .setMIFlag(MachineInstr::FrameSetup);
 1269             .setMIFlag(MachineInstr::FrameSetup);
 1273             .setMIFlag(MachineInstr::FrameSetup);
 1277             .setMIFlag(MachineInstr::FrameSetup);
 1284           .setMIFlag(MachineInstr::FrameSetup);
 1292       MachineInstr *MI;
 1299       MI->setFlag(MachineInstr::FrameSetup);
 1310         .setMIFlag(MachineInstr::FrameSetup);
 1363           .setMIFlag(MachineInstr::FrameSetup);
 1384   while (MBBI != MBB.end() && MBBI->getFlag(MachineInstr::FrameSetup)) {
 1385     const MachineInstr &FrameInstr = *MBBI;
 1405               .setMIFlag(MachineInstr::FrameSetup);
 1413         .setMIFlag(MachineInstr::FrameSetup);
 1451       .setMIFlag(MachineInstr::FrameSetup);
 1459         .setMIFlag(MachineInstr::FrameSetup);
 1474           .setMIFlag(MachineInstr::FrameSetup);
 1501         .setMIFlag(MachineInstr::FrameSetup);
 1518 static bool isFuncletReturnInstr(MachineInstr &MI) {
 1643         .setMIFlag(MachineInstr::FrameDestroy);
 1660       if ((Opc != X86::POP32r || !PI->getFlag(MachineInstr::FrameDestroy)) &&
 1661           (Opc != X86::POP64r || !PI->getFlag(MachineInstr::FrameDestroy)))
 2107       .setMIFlag(MachineInstr::FrameSetup);
 2129     MI->setFlag(MachineInstr::FrameSetup);
 2216         .setMIFlag(MachineInstr::FrameDestroy);
 2619       for (auto &MI : MBB) {
 2968         .setMIFlag(MachineInstr::FrameSetup);
 2982         .setMIFlag(MachineInstr::FrameSetup)
 2991         .setMIFlag(MachineInstr::FrameSetup);
 2999         .setMIFlag(MachineInstr::FrameSetup);
 3218   while (MBBI != MBB.end() && MBBI->getFlag(MachineInstr::FrameSetup))
lib/Target/X86/X86ISelLowering.cpp
 4237     MachineInstr *Def = MRI->getVRegDef(VR);
29175 static MachineBasicBlock *emitXBegin(MachineInstr &MI, MachineBasicBlock *MBB,
29253 X86TargetLowering::EmitVAARG64WithCustomInserter(MachineInstr &MI,
29513     MachineInstr &MI, MachineBasicBlock *MBB) const {
29598     const MachineInstr& mi = *miI;
29626 static bool isCMOVPseudo(MachineInstr &MI) {
29715 X86TargetLowering::EmitLoweredCascadedSelect(MachineInstr &FirstCMOV,
29716                                              MachineInstr &SecondCascadedCMOV,
29871 X86TargetLowering::EmitLoweredSelect(MachineInstr &MI,
29925   MachineInstr *LastCMOV = &MI;
30013 X86TargetLowering::EmitLoweredSegAlloca(MachineInstr &MI,
30147 X86TargetLowering::EmitLoweredCatchRet(MachineInstr &MI,
30179 X86TargetLowering::EmitLoweredCatchPad(MachineInstr &MI,
30195 X86TargetLowering::EmitLoweredTLSAddr(MachineInstr &MI,
30224 X86TargetLowering::EmitLoweredTLSCall(MachineInstr &MI,
30358 X86TargetLowering::EmitLoweredRetpoline(MachineInstr &MI,
30422 void X86TargetLowering::emitSetJmpShadowStackFix(MachineInstr &MI,
30465 X86TargetLowering::emitEHSjLjSetJmp(MachineInstr &MI,
30609       .setMIFlag(MachineInstr::FrameSetup);
30625 X86TargetLowering::emitLongJmpShadowStackFix(MachineInstr &MI,
30801 X86TargetLowering::emitEHSjLjLongJmp(MachineInstr &MI,
30883 void X86TargetLowering::SetupEntryBlockForSjLj(MachineInstr &MI,
30934 X86TargetLowering::EmitSjLjDispatchBlock(MachineInstr &MI,
30951     for (const auto &MI : MBB) {
31131     for (auto &II : reverse(*MBB)) {
31162 X86TargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
31218     MachineInstr *Push = BuildMI(*BB, MI, DL, TII->get(PushF));
lib/Target/X86/X86ISelLowering.h
  817     EmitInstrWithCustomInserter(MachineInstr &MI,
 1421     void SetupEntryBlockForSjLj(MachineInstr &MI, MachineBasicBlock *MBB,
 1426     EmitVAARG64WithCustomInserter(MachineInstr &MI,
 1431     EmitVAStartSaveXMMRegsWithCustomInserter(MachineInstr &BInstr,
 1434     MachineBasicBlock *EmitLoweredCascadedSelect(MachineInstr &MI1,
 1435                                                  MachineInstr &MI2,
 1438     MachineBasicBlock *EmitLoweredSelect(MachineInstr &I,
 1441     MachineBasicBlock *EmitLoweredAtomicFP(MachineInstr &I,
 1444     MachineBasicBlock *EmitLoweredCatchRet(MachineInstr &MI,
 1447     MachineBasicBlock *EmitLoweredCatchPad(MachineInstr &MI,
 1450     MachineBasicBlock *EmitLoweredSegAlloca(MachineInstr &MI,
 1453     MachineBasicBlock *EmitLoweredTLSAddr(MachineInstr &MI,
 1456     MachineBasicBlock *EmitLoweredTLSCall(MachineInstr &MI,
 1459     MachineBasicBlock *EmitLoweredRetpoline(MachineInstr &MI,
 1462     MachineBasicBlock *emitEHSjLjSetJmp(MachineInstr &MI,
 1465     void emitSetJmpShadowStackFix(MachineInstr &MI,
 1468     MachineBasicBlock *emitEHSjLjLongJmp(MachineInstr &MI,
 1471     MachineBasicBlock *emitLongJmpShadowStackFix(MachineInstr &MI,
 1474     MachineBasicBlock *emitFMA3Instr(MachineInstr &MI,
 1477     MachineBasicBlock *EmitSjLjDispatchBlock(MachineInstr &MI,
lib/Target/X86/X86InsertPrefetch.cpp
   51   bool findPrefetchInfo(const FunctionSamples *Samples, const MachineInstr &MI,
   71                                         const MachineInstr &MI) {
   81 bool IsMemOpCompatibleWithPrefetch(const MachineInstr &MI, int Op) {
  107                                          const MachineInstr &MI,
  213         MachineInstr *PFetch =
lib/Target/X86/X86InstrBuilder.h
   92 static inline X86AddressMode getAddressFromInstr(const MachineInstr *MI,
  132 static inline void setDirectAddressInInstr(MachineInstr *MI, unsigned Operand,
  199   MachineInstr *MI = MIB;
lib/Target/X86/X86InstrInfo.cpp
   90 X86InstrInfo::isCoalescableExtInstr(const MachineInstr &MI,
  138 int X86InstrInfo::getSPAdjust(const MachineInstr &MI) const {
  193 bool X86InstrInfo::isFrameOperand(const MachineInstr &MI, unsigned int Op,
  396 unsigned X86InstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
  402 unsigned X86InstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
  411 unsigned X86InstrInfo::isLoadFromStackSlotPostFE(const MachineInstr &MI,
  430 unsigned X86InstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  436 unsigned X86InstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  446 unsigned X86InstrInfo::isStoreToStackSlotPostFE(const MachineInstr &MI,
  473     MachineInstr *DefMI = &*I;
  482 bool X86InstrInfo::isReallyTriviallyReMaterializable(const MachineInstr &MI,
  663     MachineInstr *MI = MBB.getParent()->CloneMachineInstr(&Orig);
  667   MachineInstr &NewMI = *std::prev(I);
  672 bool X86InstrInfo::hasLiveCondCodeDef(MachineInstr &MI) const {
  684 inline static unsigned getTruncatedShiftCount(const MachineInstr &MI,
  703 bool X86InstrInfo::classifyLEAReg(MachineInstr &MI, const MachineOperand &Src,
  744     MachineInstr *Copy =
  760 MachineInstr *X86InstrInfo::convertToThreeAddressWithLEA(
  798   MachineInstr *InsMI =
  838     MachineInstr *InsMI2 = nullptr;
  862   MachineInstr *NewMI = MIB;
  863   MachineInstr *ExtMI =
  891 MachineInstr *
  915   MachineInstr *NewMI = nullptr;
 1358     const MachineInstr &MI, unsigned SrcOpIdx1, unsigned SrcOpIdx2,
 1415 static void commuteVPTERNLOG(MachineInstr &MI, unsigned SrcOpIdx1,
 1527 MachineInstr *X86InstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI,
 1527 MachineInstr *X86InstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI,
 1555     auto &WorkingMI = cloneIfNew(MI);
 1567     auto &WorkingMI = cloneIfNew(MI);
 1587         auto &WorkingMI = cloneIfNew(MI);
 1622     auto &WorkingMI = cloneIfNew(MI);
 1642       auto &WorkingMI = cloneIfNew(MI);
 1664       auto &WorkingMI = cloneIfNew(MI);
 1675     auto &WorkingMI = cloneIfNew(MI);
 1684     auto &WorkingMI = cloneIfNew(MI);
 1701     auto &WorkingMI = cloneIfNew(MI);
 1733     auto &WorkingMI = cloneIfNew(MI);
 1745     auto &WorkingMI = cloneIfNew(MI);
 1766     auto &WorkingMI = cloneIfNew(MI);
 1777     auto &WorkingMI = cloneIfNew(MI);
 1800     auto &WorkingMI = cloneIfNew(MI);
 1806     auto &WorkingMI = cloneIfNew(MI);
 1843     auto &WorkingMI = cloneIfNew(MI);
 1851       auto &WorkingMI = cloneIfNew(MI);
 1862       auto &WorkingMI = cloneIfNew(MI);
 1874 X86InstrInfo::findThreeSrcCommutedOpIndices(const MachineInstr &MI,
 1977 bool X86InstrInfo::findCommutedOpIndices(const MachineInstr &MI,
 2184 X86::CondCode X86::getCondFromBranch(const MachineInstr &MI) {
 2194 X86::CondCode X86::getCondFromSETCC(const MachineInstr &MI) {
 2204 X86::CondCode X86::getCondFromCMov(const MachineInstr &MI) {
 2381 bool X86InstrInfo::isUnpredicatedTerminator(const MachineInstr &MI) const {
 2392 bool X86InstrInfo::isUnconditionalTailCall(const MachineInstr &MI) const {
 2408     const MachineInstr &TailCall) const {
 2439     const MachineInstr &TailCall) const {
 2505     SmallVectorImpl<MachineInstr *> &CondBranches, bool AllowModify) const {
 2673   SmallVector<MachineInstr *, 4> CondBranches;
 2683   SmallVector<MachineInstr *, 4> CondBranches;
 2698   MachineInstr *ConditionDef = nullptr;
 3049 bool X86InstrInfo::isCopyInstrImpl(const MachineInstr &MI,
 3196     const MachineInstr &MemOp, const MachineOperand *&BaseOp, int64_t &Offset,
 3275 bool X86InstrInfo::analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
 3362 inline static bool isRedundantFlagInstr(const MachineInstr &FlagI,
 3365                                         const MachineInstr &OI) {
 3396 inline static bool isDefConvertible(const MachineInstr &MI, bool &NoSignFlag) {
 3510 static X86::CondCode isUseDefConvertible(const MachineInstr &MI) {
 3552 bool X86InstrInfo::optimizeCompareInstr(MachineInstr &CmpInstr, unsigned SrcReg,
 3606   MachineInstr *MI = MRI->getUniqueVRegDef(SrcReg);
 3648   MachineInstr *Sub = nullptr;
 3661   MachineInstr *Movr0Inst = nullptr;
 3663     MachineInstr &Instr = *RI;
 3702   SmallVector<std::pair<MachineInstr*, X86::CondCode>, 4> OpsToUpdate;
 3705     const MachineInstr &Instr = *I;
 3801       MachineInstr *Instr = &*InsertI;
 3833 MachineInstr *X86InstrInfo::optimizeLoadInstr(MachineInstr &MI,
 3833 MachineInstr *X86InstrInfo::optimizeLoadInstr(MachineInstr &MI,
 3836                                               MachineInstr *&DefMI) const {
 3862   if (MachineInstr *FoldMI = foldMemoryOperand(MI, SrcOperandIds, *DefMI)) {
 4077 bool X86InstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
 4341     const MachineInstr &MI, unsigned OpNum,
 4555 X86InstrInfo::getUndefRegClearance(const MachineInstr &MI, unsigned &OpNum,
 4568     MachineInstr &MI, unsigned OpNum, const TargetRegisterInfo *TRI) const {
 4633                                         MachineInstr &NewMI,
 4658 static MachineInstr *FuseTwoAddrInst(MachineFunction &MF, unsigned Opcode,
 4665   MachineInstr *NewMI =
 4689 static MachineInstr *FuseInst(MachineFunction &MF, unsigned Opcode,
 4695   MachineInstr *NewMI =
 4717 static MachineInstr *MakeM0Inst(const TargetInstrInfo &TII, unsigned Opcode,
 4727 MachineInstr *X86InstrInfo::foldMemoryOperandCustom(
 4728     MachineFunction &MF, MachineInstr &MI, unsigned OpNum,
 4753         MachineInstr *NewMI =
 4775         MachineInstr *NewMI =
 4790         MachineInstr *NewMI =
 4802                                                MachineInstr &MI) {
 4817   MachineInstr *VRegDef = RegInfo.getUniqueVRegDef(MI.getOperand(1).getReg());
 4822 MachineInstr *X86InstrInfo::foldMemoryOperandImpl(
 4823     MachineFunction &MF, MachineInstr &MI, unsigned OpNum,
 4862   MachineInstr *NewMI = nullptr;
 4865   if (MachineInstr *CustomMI =
 4957       MachineInstr *CommutedMI =
 4976       MachineInstr *UncommutedMI =
 4999 MachineInstr *
 5000 X86InstrInfo::foldMemoryOperandImpl(MachineFunction &MF, MachineInstr &MI,
 5070 static bool isNonFoldablePartialRegisterLoad(const MachineInstr &LoadMI,
 5071                                              const MachineInstr &UserMI,
 5191 MachineInstr *X86InstrInfo::foldMemoryOperandImpl(
 5192     MachineFunction &MF, MachineInstr &MI, ArrayRef<unsigned> Ops,
 5452     MachineFunction &MF, MachineInstr &MI, unsigned Reg, bool UnfoldLoad,
 5453     bool UnfoldStore, SmallVectorImpl<MachineInstr *> &NewMIs) const {
 5527   MachineInstr *DataMI = MF.CreateMachineInstr(MCID, MI.getDebugLoc(), true);
 6589 uint16_t X86InstrInfo::getExecutionDomainCustom(const MachineInstr &MI) const {
 6687 bool X86InstrInfo::setExecutionDomainCustom(MachineInstr &MI,
 6820 X86InstrInfo::getExecutionDomain(const MachineInstr &MI) const {
 6860 void X86InstrInfo::setExecutionDomain(MachineInstr &MI, unsigned Domain) const {
 7227                                          const MachineInstr &DefMI,
 7229                                          const MachineInstr &UseMI,
 7234 bool X86InstrInfo::hasReassociableOperands(const MachineInstr &Inst,
 7260 bool X86InstrInfo::isAssociativeAndCommutative(const MachineInstr &Inst) const {
 7562 X86InstrInfo::describeLoadedValue(const MachineInstr &MI) const {
 7658 void X86InstrInfo::setSpecialOperandAttr(MachineInstr &OldMI1,
 7659                                          MachineInstr &OldMI2,
 7660                                          MachineInstr &NewMI1,
 7661                                          MachineInstr &NewMI2) const {
 7898     MachineInstr *ReplaceTLSBaseAddrCall(MachineInstr &I,
 7898     MachineInstr *ReplaceTLSBaseAddrCall(MachineInstr &I,
 7906       MachineInstr *Copy =
 7919     MachineInstr *SetRegister(MachineInstr &I, unsigned *TLSBaseAddrReg) {
 7919     MachineInstr *SetRegister(MachineInstr &I, unsigned *TLSBaseAddrReg) {
 7932       MachineInstr *Next = I.getNextNode();
 7933       MachineInstr *Copy =
 8046   MachineInstr &MI = *MIT;
 8114   MachineInstr *retq = BuildMI(MF, DebugLoc(), get(X86::RETQ));
lib/Target/X86/X86InstrInfo.h
   35   AC_EVEX_2_VEX = MachineInstr::TAsmComments
   49 CondCode getCondFromBranch(const MachineInstr &MI);
   52 CondCode getCondFromSETCC(const MachineInstr &MI);
   55 CondCode getCondFromCMov(const MachineInstr &MI);
  112 inline static bool isLeaMem(const MachineInstr &MI, unsigned Op) {
  125 inline static bool isMem(const MachineInstr &MI, unsigned Op) {
  141                          SmallVectorImpl<MachineInstr *> &CondBranches,
  155   int64_t getFrameAdjustment(const MachineInstr &I) const {
  164   void setFrameAdjustment(MachineInstr &I, int64_t V) const {
  175   int getSPAdjust(const MachineInstr &MI) const override;
  183   bool isCoalescableExtInstr(const MachineInstr &MI, unsigned &SrcReg,
  186   unsigned isLoadFromStackSlot(const MachineInstr &MI,
  188   unsigned isLoadFromStackSlot(const MachineInstr &MI,
  194   unsigned isLoadFromStackSlotPostFE(const MachineInstr &MI,
  197   unsigned isStoreToStackSlot(const MachineInstr &MI,
  199   unsigned isStoreToStackSlot(const MachineInstr &MI,
  205   unsigned isStoreToStackSlotPostFE(const MachineInstr &MI,
  208   bool isReallyTriviallyReMaterializable(const MachineInstr &MI,
  223   bool classifyLEAReg(MachineInstr &MI, const MachineOperand &Src,
  238   MachineInstr *convertToThreeAddress(MachineFunction::iterator &MFI,
  257   bool findCommutedOpIndices(const MachineInstr &MI, unsigned &SrcOpIdx1,
  276   getFMA3OpcodeToCommuteOperands(const MachineInstr &MI, unsigned SrcOpIdx1,
  281   bool isUnpredicatedTerminator(const MachineInstr &MI) const override;
  282   bool isUnconditionalTailCall(const MachineInstr &MI) const override;
  284                                   const MachineInstr &TailCall) const override;
  287                                  const MachineInstr &TailCall) const override;
  294   bool getMemOperandWithOffset(const MachineInstr &LdSt,
  328   bool expandPostRAPseudo(MachineInstr &MI) const override;
  340   MachineInstr *
  341   foldMemoryOperandImpl(MachineFunction &MF, MachineInstr &MI,
  350   MachineInstr *foldMemoryOperandImpl(
  351       MachineFunction &MF, MachineInstr &MI, ArrayRef<unsigned> Ops,
  359   unfoldMemoryOperand(MachineFunction &MF, MachineInstr &MI, unsigned Reg,
  361                       SmallVectorImpl<MachineInstr *> &NewMIs) const override;
  417   bool hasLiveCondCodeDef(MachineInstr &MI) const;
  426   getExecutionDomain(const MachineInstr &MI) const override;
  428   uint16_t getExecutionDomainCustom(const MachineInstr &MI) const;
  430   void setExecutionDomain(MachineInstr &MI, unsigned Domain) const override;
  432   bool setExecutionDomainCustom(MachineInstr &MI, unsigned Domain) const;
  435   getPartialRegUpdateClearance(const MachineInstr &MI, unsigned OpNum,
  437   unsigned getUndefRegClearance(const MachineInstr &MI, unsigned &OpNum,
  439   void breakPartialRegDependency(MachineInstr &MI, unsigned OpNum,
  442   MachineInstr *foldMemoryOperandImpl(MachineFunction &MF, MachineInstr &MI,
  442   MachineInstr *foldMemoryOperandImpl(MachineFunction &MF, MachineInstr &MI,
  453                              const MachineInstr &DefMI, unsigned DefIdx,
  454                              const MachineInstr &UseMI,
  459   bool isAssociativeAndCommutative(const MachineInstr &Inst) const override;
  461   bool hasReassociableOperands(const MachineInstr &Inst,
  464   void setSpecialOperandAttr(MachineInstr &OldMI1, MachineInstr &OldMI2,
  464   void setSpecialOperandAttr(MachineInstr &OldMI1, MachineInstr &OldMI2,
  465                              MachineInstr &NewMI1,
  466                              MachineInstr &NewMI2) const override;
  472   bool analyzeCompare(const MachineInstr &MI, unsigned &SrcReg,
  479   bool optimizeCompareInstr(MachineInstr &CmpInstr, unsigned SrcReg,
  490   MachineInstr *optimizeLoadInstr(MachineInstr &MI,
  490   MachineInstr *optimizeLoadInstr(MachineInstr &MI,
  493                                   MachineInstr *&DefMI) const override;
  521   static bool hasLockPrefix(const MachineInstr &MI) {
  526   describeLoadedValue(const MachineInstr &MI) const override;
  540   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  540   MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
  547   bool isCopyInstrImpl(const MachineInstr &MI, const MachineOperand *&Source,
  554   MachineInstr *convertToThreeAddressWithLEA(unsigned MIOpc,
  562   MachineInstr *foldMemoryOperandCustom(MachineFunction &MF, MachineInstr &MI,
  562   MachineInstr *foldMemoryOperandCustom(MachineFunction &MF, MachineInstr &MI,
  570   bool isFrameOperand(const MachineInstr &MI, unsigned int Op,
  590   bool findThreeSrcCommutedOpIndices(const MachineInstr &MI,
lib/Target/X86/X86InstructionSelector.cpp
   63   bool select(MachineInstr &I) override;
   69   bool selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const;
   75   bool selectLoadStoreOp(MachineInstr &I, MachineRegisterInfo &MRI,
   77   bool selectFrameIndexOrGep(MachineInstr &I, MachineRegisterInfo &MRI,
   79   bool selectGlobalValue(MachineInstr &I, MachineRegisterInfo &MRI,
   81   bool selectConstant(MachineInstr &I, MachineRegisterInfo &MRI,
   83   bool selectTruncOrPtrToInt(MachineInstr &I, MachineRegisterInfo &MRI,
   85   bool selectZext(MachineInstr &I, MachineRegisterInfo &MRI,
   87   bool selectAnyext(MachineInstr &I, MachineRegisterInfo &MRI,
   89   bool selectCmp(MachineInstr &I, MachineRegisterInfo &MRI,
   91   bool selectFCmp(MachineInstr &I, MachineRegisterInfo &MRI,
   93   bool selectUadde(MachineInstr &I, MachineRegisterInfo &MRI,
   95   bool selectCopy(MachineInstr &I, MachineRegisterInfo &MRI) const;
   96   bool selectUnmergeValues(MachineInstr &I, MachineRegisterInfo &MRI,
   98   bool selectMergeValues(MachineInstr &I, MachineRegisterInfo &MRI,
  100   bool selectInsert(MachineInstr &I, MachineRegisterInfo &MRI,
  102   bool selectExtract(MachineInstr &I, MachineRegisterInfo &MRI,
  104   bool selectCondBranch(MachineInstr &I, MachineRegisterInfo &MRI,
  106   bool selectTurnIntoCOPY(MachineInstr &I, MachineRegisterInfo &MRI,
  111   bool materializeFP(MachineInstr &I, MachineRegisterInfo &MRI,
  113   bool selectImplicitDefOrPHI(MachineInstr &I, MachineRegisterInfo &MRI) const;
  114   bool selectDivRem(MachineInstr &I, MachineRegisterInfo &MRI,
  116   bool selectIntrinsicWSideEffects(MachineInstr &I, MachineRegisterInfo &MRI,
  120   bool emitInsertSubreg(unsigned DstReg, unsigned SrcReg, MachineInstr &I,
  123   bool emitExtractSubreg(unsigned DstReg, unsigned SrcReg, MachineInstr &I,
  230 bool X86InstructionSelector::selectCopy(MachineInstr &I,
  307 bool X86InstructionSelector::select(MachineInstr &I) {
  472 static void X86SelectAddress(const MachineInstr &I,
  498 bool X86InstructionSelector::selectLoadStoreOp(MachineInstr &I,
  558 bool X86InstructionSelector::selectFrameIndexOrGep(MachineInstr &I,
  586 bool X86InstructionSelector::selectGlobalValue(MachineInstr &I,
  632 bool X86InstructionSelector::selectConstant(MachineInstr &I,
  690     MachineInstr &I, MachineRegisterInfo &MRI, const unsigned DstReg,
  704 bool X86InstructionSelector::selectTruncOrPtrToInt(MachineInstr &I,
  770 bool X86InstructionSelector::selectZext(MachineInstr &I,
  870   MachineInstr &AndInst =
  881 bool X86InstructionSelector::selectAnyext(MachineInstr &I,
  936 bool X86InstructionSelector::selectCmp(MachineInstr &I,
  972   MachineInstr &CmpInst =
  977   MachineInstr &SetInst = *BuildMI(*I.getParent(), I, I.getDebugLoc(),
  987 bool X86InstructionSelector::selectFCmp(MachineInstr &I,
 1032     MachineInstr &CmpInst =
 1039     MachineInstr &Set1 = *BuildMI(*I.getParent(), I, I.getDebugLoc(),
 1041     MachineInstr &Set2 = *BuildMI(*I.getParent(), I, I.getDebugLoc(),
 1043     MachineInstr &Set3 = *BuildMI(*I.getParent(), I, I.getDebugLoc(),
 1065   MachineInstr &CmpInst =
 1070   MachineInstr &Set =
 1078 bool X86InstructionSelector::selectUadde(MachineInstr &I,
 1095   MachineInstr *Def = MRI.getVRegDef(CarryInReg);
 1121   MachineInstr &AddInst =
 1137 bool X86InstructionSelector::selectExtract(MachineInstr &I,
 1195                                                MachineInstr &I,
 1233                                               MachineInstr &I,
 1270 bool X86InstructionSelector::selectInsert(MachineInstr &I,
 1329     MachineInstr &I, MachineRegisterInfo &MRI, MachineFunction &MF) {
 1339     MachineInstr &ExtrInst =
 1354     MachineInstr &I, MachineRegisterInfo &MRI, MachineFunction &MF) {
 1379     MachineInstr &InsertInst = *BuildMI(*I.getParent(), I, I.getDebugLoc(),
 1391   MachineInstr &CopyInst = *BuildMI(*I.getParent(), I, I.getDebugLoc(),
 1402 bool X86InstructionSelector::selectCondBranch(MachineInstr &I,
 1410   MachineInstr &TestInst =
 1423 bool X86InstructionSelector::materializeFP(MachineInstr &I,
 1445   MachineInstr *LoadInst = nullptr;
 1490     MachineInstr &I, MachineRegisterInfo &MRI) const {
 1516 bool X86InstructionSelector::selectDivRem(MachineInstr &I,
 1718     MachineInstr &I, MachineRegisterInfo &MRI, MachineFunction &MF) const {
lib/Target/X86/X86LegalizerInfo.cpp
   88 bool X86LegalizerInfo::legalizeIntrinsic(MachineInstr &MI,
lib/Target/X86/X86LegalizerInfo.h
   35   bool legalizeIntrinsic(MachineInstr &MI, MachineRegisterInfo &MRI,
lib/Target/X86/X86MCInstLower.cpp
   62   Optional<MCOperand> LowerMachineOperand(const MachineInstr *MI,
   64   void Lower(const MachineInstr *MI, MCInst &OutMI) const;
  398 X86MCInstLower::LowerMachineOperand(const MachineInstr *MI,
  465 void X86MCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
  883                                  const MachineInstr &MI) {
 1097 void X86AsmPrinter::LowerSTATEPOINT(const MachineInstr &MI,
 1154 void X86AsmPrinter::LowerFAULTING_OP(const MachineInstr &FaultingMI,
 1185 void X86AsmPrinter::LowerFENTRY_CALL(const MachineInstr &MI,
 1198 void X86AsmPrinter::LowerPATCHABLE_OP(const MachineInstr &MI,
 1237 void X86AsmPrinter::LowerSTACKMAP(const MachineInstr &MI) {
 1246 void X86AsmPrinter::LowerPATCHPOINT(const MachineInstr &MI,
 1304 void X86AsmPrinter::LowerPATCHABLE_EVENT_CALL(const MachineInstr &MI,
 1398 void X86AsmPrinter::LowerPATCHABLE_TYPED_EVENT_CALL(const MachineInstr &MI,
 1497 void X86AsmPrinter::LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI,
 1524 void X86AsmPrinter::LowerPATCHABLE_RET(const MachineInstr &MI,
 1554 void X86AsmPrinter::LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI,
 1604 static const Constant *getConstantFromPool(const MachineInstr &MI,
 1624 static std::string getShuffleComment(const MachineInstr *MI, unsigned SrcOp1Idx,
 1743 void X86AsmPrinter::EmitSEHInstruction(const MachineInstr *MI) {
 1830 void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/X86/X86MacroFusion.cpp
   40 static FirstInstrKind classifyFirst(const MachineInstr &MI) {
  147 static JumpKind classifySecond(const MachineInstr &MI) {
  182                                    const MachineInstr *FirstMI,
  183                                    const MachineInstr &SecondMI) {
lib/Target/X86/X86OptimizeLEAs.cpp
   73 static inline bool isLEA(const MachineInstr &MI);
  188 static inline MemOpKey getMemOpKey(const MachineInstr &MI, unsigned N) {
  229 static inline bool isLEA(const MachineInstr &MI) {
  251   using MemOpMap = DenseMap<MemOpKey, SmallVector<MachineInstr *, 16>>;
  255   int calcInstrDist(const MachineInstr &First, const MachineInstr &Last);
  255   int calcInstrDist(const MachineInstr &First, const MachineInstr &Last);
  261   bool chooseBestLEA(const SmallVectorImpl<MachineInstr *> &List,
  262                      const MachineInstr &MI, MachineInstr *&BestLEA,
  262                      const MachineInstr &MI, MachineInstr *&BestLEA,
  268   int64_t getAddrDispShift(const MachineInstr &MI1, unsigned N1,
  269                            const MachineInstr &MI2, unsigned N2) const;
  275   bool isReplaceable(const MachineInstr &First, const MachineInstr &Last,
  275   bool isReplaceable(const MachineInstr &First, const MachineInstr &Last,
  289   MachineInstr *replaceDebugValue(MachineInstr &MI, unsigned VReg,
  289   MachineInstr *replaceDebugValue(MachineInstr &MI, unsigned VReg,
  295   DenseMap<const MachineInstr *, unsigned> InstrPos;
  310 int X86OptimizeLEAPass::calcInstrDist(const MachineInstr &First,
  311                                       const MachineInstr &Last) {
  333     const SmallVectorImpl<MachineInstr *> &List, const MachineInstr &MI,
  333     const SmallVectorImpl<MachineInstr *> &List, const MachineInstr &MI,
  334     MachineInstr *&BestLEA, int64_t &AddrDispShift, int &Dist) {
  390 int64_t X86OptimizeLEAPass::getAddrDispShift(const MachineInstr &MI1,
  392                                              const MachineInstr &MI2,
  415 bool X86OptimizeLEAPass::isReplaceable(const MachineInstr &First,
  416                                        const MachineInstr &Last,
  436     MachineInstr &MI = *MO.getParent();
  498     MachineInstr &MI = *I++;
  520     MachineInstr *DefMI;
  569 MachineInstr *X86OptimizeLEAPass::replaceDebugValue(MachineInstr &MI,
  569 MachineInstr *X86OptimizeLEAPass::replaceDebugValue(MachineInstr &MI,
  598       MachineInstr &First = **I1;
  601         MachineInstr &Last = **I2;
  623           MachineInstr &MI = *MO.getParent();
lib/Target/X86/X86PadShortFunction.cpp
  181   for (MachineInstr &MI : *MBB) {
lib/Target/X86/X86RegisterBankInfo.cpp
  111     const MachineInstr &MI, const MachineRegisterInfo &MRI, const bool isFP,
  125     const MachineInstr &MI,
  144 X86RegisterBankInfo::getSameOperandsMapping(const MachineInstr &MI,
  161 X86RegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
lib/Target/X86/X86RegisterBankInfo.h
   48   const InstructionMapping &getSameOperandsMapping(const MachineInstr &MI,
   53   getInstrPartialMappingIdxs(const MachineInstr &MI,
   60   getInstrValueMapping(const MachineInstr &MI,
   71   getInstrAlternativeMappings(const MachineInstr &MI) const override;
   77   getInstrMapping(const MachineInstr &MI) const override;
lib/Target/X86/X86RegisterInfo.cpp
  679   MachineInstr &MI = *II;
  703 static bool isFuncletReturnInstr(MachineInstr &MI) {
  718   MachineInstr &MI = *II;
lib/Target/X86/X86SpeculativeLoadHardening.cpp
  144     SmallVector<MachineInstr *, 2> CondBrs;
  146     MachineInstr *UncondBr;
  172   SmallVector<MachineInstr *, 16>
  177   SmallVector<MachineInstr *, 16>
  196   hardenLoadAddr(MachineInstr &MI, MachineOperand &BaseMO,
  199   MachineInstr *
  200   sinkPostLoadHardenedInst(MachineInstr &MI,
  201                            SmallPtrSetImpl<MachineInstr *> &HardenedInstrs);
  206   unsigned hardenPostLoad(MachineInstr &MI);
  207   void hardenReturnInstr(MachineInstr &MI);
  208   void tracePredStateThroughCall(MachineInstr &MI);
  210       MachineInstr &MI,
  225                                     MachineInstr *Br, MachineInstr *&UncondBr,
  225                                     MachineInstr *Br, MachineInstr *&UncondBr,
  286   for (MachineInstr &MI : Succ) {
  331     for (auto &MI : MBB) {
  373     for (MachineInstr &MI : MBB) {
  546   for (MachineInstr *CMovI : CMovs)
  632     for (MachineInstr &MI : llvm::reverse(MBB)) {
  689 SmallVector<MachineInstr *, 16>
  694   SmallVector<MachineInstr *, 16> CMovs;
  700     const SmallVectorImpl<MachineInstr *> &CondBrs = Info.CondBrs;
  701     MachineInstr *UncondBr = Info.UncondBr;
  719     for (auto *CondBr : CondBrs)
  785     for (auto *CondBr : CondBrs) {
  855       MachineInstr &MI = *MII++;
  911         SmallVector<MachineInstr *, 2> NewMIs;
  921         for (auto *NewMI : NewMIs)
  955 SmallVector<MachineInstr *, 16>
  982     MachineInstr &TI = *MII;
 1047   SmallVector<MachineInstr *, 16> CMovs;
 1206 static bool isDataInvariant(MachineInstr &MI) {
 1405 static bool isDataInvariantLoad(MachineInstr &MI) {
 1592   for (MachineInstr &MI : llvm::reverse(llvm::make_range(MBB.begin(), I))) {
 1641   SmallPtrSet<MachineInstr *, 16> HardenPostLoad;
 1642   SmallPtrSet<MachineInstr *, 16> HardenLoadAddr;
 1670       for (MachineInstr &MI : MBB) {
 1771     for (MachineInstr &MI : MBB) {
 1803             MachineInstr *SunkMI = sinkPostLoadHardenedInst(MI, HardenPostLoad);
 1947     MachineInstr &MI, MachineOperand &BaseMO, MachineOperand &IndexMO,
 2148 MachineInstr *X86SpeculativeLoadHardeningPass::sinkPostLoadHardenedInst(
 2149     MachineInstr &InitialMI, SmallPtrSetImpl<MachineInstr *> &HardenedInstrs) {
 2149     MachineInstr &InitialMI, SmallPtrSetImpl<MachineInstr *> &HardenedInstrs) {
 2161     MachineInstr *SingleUseMI = nullptr;
 2162     for (MachineInstr &UseMI : MRI->use_instructions(DefReg)) {
 2226   MachineInstr *MI = &InitialMI;
 2227   while (Optional<MachineInstr *> SingleUse = SinkCheckToSingleUse(*MI)) {
 2330 unsigned X86SpeculativeLoadHardeningPass::hardenPostLoad(MachineInstr &MI) {
 2381 void X86SpeculativeLoadHardeningPass::hardenReturnInstr(MachineInstr &MI) {
 2428     MachineInstr &MI) {
 2588     MachineInstr &MI,
lib/Target/X86/X86VZeroUpper.cpp
  153 static bool hasYmmOrZmmReg(MachineInstr &MI) {
  168 static bool callHasRegMask(MachineInstr &MI) {
  202   for (MachineInstr &MI : MBB) {
lib/Target/X86/X86WinAllocaExpander.cpp
   46   typedef MapVector<MachineInstr*, Lowering> LoweringMap;
   55   void lower(MachineInstr* MI, Lowering L);
   79 static int64_t getWinAllocaAmount(MachineInstr *MI, MachineRegisterInfo *MRI) {
   85   MachineInstr *Def = MRI->getUniqueVRegDef(AmountReg);
  110 static bool isPushPop(const MachineInstr &MI) {
  154     for (MachineInstr &MI : *MBB) {
  197 void X86WinAllocaExpander::lower(MachineInstr* MI, Lowering L) {
  269     if (MachineInstr *AmountDef = MRI->getUniqueVRegDef(AmountReg))
lib/Target/XCore/XCoreAsmPrinter.cpp
   63     void printInlineJT(const MachineInstr *MI, int opNum, raw_ostream &O,
   65     void printInlineJT32(const MachineInstr *MI, int opNum, raw_ostream &O) {
   68     void printOperand(const MachineInstr *MI, int opNum, raw_ostream &O);
   69     bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
   71     bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNum,
   78     void EmitInstruction(const MachineInstr *MI) override;
  186 printInlineJT(const MachineInstr *MI, int opNum, raw_ostream &O,
  202 void XCoreAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
  233 bool XCoreAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
  245 bool XCoreAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
  259 void XCoreAsmPrinter::EmitInstruction(const MachineInstr *MI) {
lib/Target/XCore/XCoreFrameLowering.cpp
  493     MachineInstr &Old = *I;
  515       MachineInstr *New;
lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp
   57         MachineInstr &OldInst = *MBBI;
lib/Target/XCore/XCoreISelLowering.cpp
 1523 XCoreTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
lib/Target/XCore/XCoreISelLowering.h
  121     EmitInstrWithCustomInserter(MachineInstr &MI,
lib/Target/XCore/XCoreInstrInfo.cpp
   62 unsigned XCoreInstrInfo::isLoadFromStackSlot(const MachineInstr &MI,
   82 unsigned XCoreInstrInfo::isStoreToStackSlot(const MachineInstr &MI,
  203   MachineInstr *LastInst = &*I;
  226   MachineInstr *SecondLastInst = &*I;
lib/Target/XCore/XCoreInstrInfo.h
   41   unsigned isLoadFromStackSlot(const MachineInstr &MI,
   49   unsigned isStoreToStackSlot(const MachineInstr &MI,
lib/Target/XCore/XCoreMCInstLower.cpp
  103 void XCoreMCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
lib/Target/XCore/XCoreMCInstLower.h
   31   void Lower(const MachineInstr *MI, MCInst &OutMI) const;
lib/Target/XCore/XCoreRegisterInfo.cpp
   64   MachineInstr &MI = *II;
   97   MachineInstr &MI = *II;
  131   MachineInstr &MI = *II;
  165   MachineInstr &MI = *II;
  263   MachineInstr &MI = *II;
unittests/CodeGen/GlobalISel/GISelMITest.h
  130     for (MachineInstr &MI : MBB) {
unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
   20   MachineInstr *FinalCopy = MRI->getVRegDef(CopyReg);
   40   MachineInstr *FinalCopy = MRI->getVRegDef(CopyReg);
   68   MachineInstr *FinalCopy = MRI->getVRegDef(CopyReg);
   84   MachineInstr *FinalCopy = MRI->getVRegDef(CopyReg);
  111   MachineInstr *FinalCopy = MRI->getVRegDef(CopyReg);
unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
   20   void changingInstr(MachineInstr &MI) override {}
   21   void changedInstr(MachineInstr &MI) override {}
   22   void createdInstr(MachineInstr &MI) override {}
   23   void erasingInstr(MachineInstr &MI) override {}
  764                  MachineInstr::MIFlag::FmNsz);
  769                  {MachineInstr::MIFlag::FmArcp});
  774                  MachineInstr::MIFlag::FmNoInfs);
unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp
  137   B.buildFMAD(S64, Copies[0], Copies[1], Copies[2], MachineInstr::FmNoNans);
unittests/CodeGen/MachineInstrTest.cpp
  224 void checkHashAndIsEqualMatch(MachineInstr *MI1, MachineInstr *MI2) {
  224 void checkHashAndIsEqualMatch(MachineInstr *MI1, MachineInstr *MI2) {
  330   MachineInstr *MI = MF->CreateMachineInstr(MCID, DL);
unittests/MI/LiveIntervalTest.cpp
  103 static MachineInstr &getMI(MachineFunction &MF, unsigned At,
  108   for (MachineInstr &MI : MBB) {
  122   MachineInstr &FromInstr = getMI(MF, From, BlockNum);
  123   MachineInstr &ToInstr = getMI(MF, To, BlockNum);
  375     MachineInstr &MI = getMI(MF, 3, /*BlockNum=*/1);
  437      MachineInstr &UndefSubregDef = getMI(MF, 2, 1);
  458      MachineInstr &UndefSubregDef = getMI(MF, 2, 1);
unittests/tools/llvm-exegesis/X86/SnippetRepetitorTest.cpp
   62   return Property(&MachineInstr::getOpcode, Eq(Opcode));
usr/include/c++/7.4.0/bits/functional_hash.h
  106     struct hash<_Tp*> : public __hash_base<size_t, _Tp*>
  109       operator()(_Tp* __p) const noexcept
usr/include/c++/7.4.0/bits/move.h
   46     inline _GLIBCXX_CONSTEXPR _Tp*
   47     __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
   72     constexpr _Tp&&
   83     constexpr _Tp&&
usr/include/c++/7.4.0/bits/std_function.h
  299       _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
  628       using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  123       typedef _Tp        value_type;
usr/include/c++/7.4.0/type_traits
 1633     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1983     { typedef _Up     type; };
utils/unittest/googlemock/include/gmock/gmock-matchers.h
 2261   bool MatchAndExplain(const T&value, MatchResultListener* listener) const {
 2272   bool MatchAndExplainImpl(false_type /* is_not_pointer */, const Class& obj,
 2288   bool MatchAndExplainImpl(true_type /* is_pointer */, const Class* p,
 3931   internal::PropertyMatcher<Class, PropertyType> > Property(
utils/unittest/googletest/include/gtest/gtest-printers.h
  407                     T* p, ::std::ostream* os) {
  416     if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {
utils/unittest/googletest/include/gtest/internal/gtest-internal.h
  795 struct RemoveConst { typedef T type; };  // NOLINT