Lines Matching refs:MachineInstr
123 inline static bool isLeaMem(const MachineInstr *MI, unsigned Op) { in isLeaMem()
135 inline static bool isMem(const MachineInstr *MI, unsigned Op) { in isMem()
173 SmallVectorImpl<MachineInstr *> &CondBranches,
188 int getSPAdjust(const MachineInstr *MI) const override;
196 bool isCoalescableExtInstr(const MachineInstr &MI,
200 unsigned isLoadFromStackSlot(const MachineInstr *MI,
205 unsigned isLoadFromStackSlotPostFE(const MachineInstr *MI,
208 unsigned isStoreToStackSlot(const MachineInstr *MI,
213 unsigned isStoreToStackSlotPostFE(const MachineInstr *MI,
216 bool isReallyTriviallyReMaterializable(const MachineInstr *MI,
220 const MachineInstr *Orig,
231 bool classifyLEAReg(MachineInstr *MI, const MachineOperand &Src,
246 MachineInstr *convertToThreeAddress(MachineFunction::iterator &MFI,
265 bool findCommutedOpIndices(MachineInstr *MI, unsigned &SrcOpIdx1,
290 bool findFMA3CommutedOpIndices(MachineInstr *MI,
304 unsigned getFMA3OpcodeToCommuteOperands(MachineInstr *MI,
309 bool isUnpredicatedTerminator(const MachineInstr* MI) const override;
315 bool getMemOpBaseRegImmOfs(MachineInstr *LdSt, unsigned &BaseReg,
345 MachineInstr::mmo_iterator MMOBegin,
346 MachineInstr::mmo_iterator MMOEnd,
347 SmallVectorImpl<MachineInstr*> &NewMIs) const;
358 MachineInstr::mmo_iterator MMOBegin,
359 MachineInstr::mmo_iterator MMOEnd,
360 SmallVectorImpl<MachineInstr*> &NewMIs) const;
370 MachineInstr *foldMemoryOperandImpl(MachineFunction &MF, MachineInstr *MI,
378 MachineInstr *foldMemoryOperandImpl(MachineFunction &MF, MachineInstr *MI,
381 MachineInstr *LoadMI) const override;
386 bool unfoldMemoryOperand(MachineFunction &MF, MachineInstr *MI,
388 SmallVectorImpl<MachineInstr*> &NewMIs) const override;
423 bool shouldScheduleAdjacent(MachineInstr* First,
424 MachineInstr *Second) const override;
444 bool hasLiveCondCodeDef(MachineInstr *MI) const;
453 getExecutionDomain(const MachineInstr *MI) const override;
455 void setExecutionDomain(MachineInstr *MI, unsigned Domain) const override;
458 getPartialRegUpdateClearance(const MachineInstr *MI, unsigned OpNum,
460 unsigned getUndefRegClearance(const MachineInstr *MI, unsigned &OpNum,
465 MachineInstr *foldMemoryOperandImpl(MachineFunction &MF, MachineInstr *MI,
484 const MachineInstr *DefMI, unsigned DefIdx,
485 const MachineInstr *UseMI,
492 bool isAssociativeAndCommutative(const MachineInstr &Inst) const override;
494 bool hasReassociableOperands(const MachineInstr &Inst,
497 void setSpecialOperandAttr(MachineInstr &OldMI1, MachineInstr &OldMI2,
498 MachineInstr &NewMI1,
499 MachineInstr &NewMI2) const override;
505 bool analyzeCompare(const MachineInstr *MI, unsigned &SrcReg,
512 bool optimizeCompareInstr(MachineInstr *CmpInstr, unsigned SrcReg,
523 MachineInstr* optimizeLoadInstr(MachineInstr *MI,
526 MachineInstr *&DefMI) const override;
546 MachineInstr *commuteInstructionImpl(MachineInstr *MI, bool NewMI,
551 MachineInstr * convertToThreeAddressWithLEA(unsigned MIOpc,
558 MachineInstr *foldMemoryOperandCustom(MachineFunction &MF, MachineInstr *MI,
566 bool isFrameOperand(const MachineInstr *MI, unsigned int Op,