Lines Matching refs:MachineInstr
201 SmallVectorImpl<MachineInstr *> &NewMIs) const;
205 SmallVectorImpl<MachineInstr *> &NewMIs) const;
209 bool simplifyToLI(MachineInstr &MI, MachineInstr &DefMI,
210 unsigned OpNoForForwarding, MachineInstr **KilledDef) const;
213 bool transformToNewImmFormFedByAdd(MachineInstr &MI, MachineInstr &DefMI,
217 bool transformToImmFormFedByLI(MachineInstr &MI, const ImmInstrInfo &III,
219 MachineInstr &DefMI) const;
222 bool transformToImmFormFedByAdd(MachineInstr &MI, const ImmInstrInfo &III,
223 unsigned ConstantOpNo, MachineInstr &DefMI,
230 MachineInstr *getForwardingDefMI(MachineInstr &MI,
236 bool isUseMIElgibleForForwarding(MachineInstr &MI, const ImmInstrInfo &III,
238 bool isDefMIElgibleForForwarding(MachineInstr &DefMI,
243 const MachineInstr &DefMI,
248 const MachineInstr &DefMI,
249 const MachineInstr &MI, bool KillDefMI,
256 void reassociateFMA(MachineInstr &Root, MachineCombinerPattern Pattern,
257 SmallVectorImpl<MachineInstr *> &InsInstrs,
258 SmallVectorImpl<MachineInstr *> &DelInstrs,
260 bool isLoadFromConstantPool(MachineInstr *I) const;
262 generateLoadForNewConst(unsigned Idx, MachineInstr *MI, Type *Ty,
263 SmallVectorImpl<MachineInstr *> &InsInstrs) const;
264 const Constant *getConstantFromConstantPool(MachineInstr *I) const;
278 MachineInstr *commuteInstructionImpl(MachineInstr &MI, bool NewMI,
410 const MachineInstr &MI,
414 const MachineInstr &DefMI, unsigned DefIdx,
415 const MachineInstr &UseMI,
425 const MachineInstr &DefMI, in hasLowDefLatency()
440 MachineInstr &Root, MachineCombinerPattern Pattern,
441 SmallVectorImpl<MachineInstr *> &InsInstrs,
442 SmallVectorImpl<MachineInstr *> &DelInstrs,
448 bool getFMAPatterns(MachineInstr &Root,
455 bool getMachineCombinerPatterns(MachineInstr &Root,
470 finalizeInsInstrs(MachineInstr &Root, MachineCombinerPattern &P,
471 SmallVectorImpl<MachineInstr *> &InsInstrs) const override;
473 bool isAssociativeAndCommutative(const MachineInstr &Inst) const override;
485 void setSpecialOperandAttr(MachineInstr &OldMI1, MachineInstr &OldMI2,
486 MachineInstr &NewMI1,
487 MachineInstr &NewMI2) const override;
491 void setSpecialOperandAttr(MachineInstr &MI, uint16_t Flags) const;
493 bool isCoalescableExtInstr(const MachineInstr &MI,
496 unsigned isLoadFromStackSlot(const MachineInstr &MI,
498 bool isReallyTriviallyReMaterializable(const MachineInstr &MI) const override;
499 unsigned isStoreToStackSlot(const MachineInstr &MI,
502 bool findCommutedOpIndices(const MachineInstr &MI, unsigned &SrcOpIdx1,
571 bool FoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, Register Reg,
574 bool onlyFoldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
603 bool isPredicated(const MachineInstr &MI) const override;
605 bool isSchedulingBoundary(const MachineInstr &MI,
609 bool PredicateInstruction(MachineInstr &MI,
615 bool ClobbersPredicate(MachineInstr &MI, std::vector<MachineOperand> &Pred,
620 bool analyzeCompare(const MachineInstr &MI, Register &SrcReg,
624 bool optimizeCompareInstr(MachineInstr &CmpInstr, Register SrcReg,
632 bool getMemOperandWithOffsetWidth(const MachineInstr &LdSt,
640 const MachineInstr &LdSt,
654 areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
655 const MachineInstr &MIb) const override;
660 unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
674 bool expandVSXMemPseudo(MachineInstr &MI) const;
677 bool expandPostRAPseudo(MachineInstr &MI) const override;
688 bool isTOCSaveMI(const MachineInstr &MI) const;
690 bool isSignOrZeroExtended(const MachineInstr &MI, bool SignExt,
695 bool isSignExtended(const MachineInstr &MI, const unsigned depth = 0) const {
701 bool isZeroExtended(const MachineInstr &MI, const unsigned depth = 0) const {
705 bool convertToImmediateForm(MachineInstr &MI,
706 MachineInstr **KilledDef = nullptr) const;
707 bool foldFrameOffset(MachineInstr &MI) const;
708 bool combineRLWINM(MachineInstr &MI, MachineInstr **ToErase = nullptr) const;
709 bool isADDIInstrEligibleForFolding(MachineInstr &ADDIMI, int64_t &Imm) const;
710 bool isADDInstrEligibleForFolding(MachineInstr &ADDMI) const;
711 bool isImmInstrEligibleForFolding(MachineInstr &MI, unsigned &BaseReg,
715 bool isValidToBeChangedReg(MachineInstr *ADDMI, unsigned Index,
716 MachineInstr *&ADDIMI, int64_t &OffsetAddi,
734 void fixupIsDeadOrKill(MachineInstr *StartMI, MachineInstr *EndMI,
736 void replaceInstrWithLI(MachineInstr &MI, const LoadImmediateInfo &LII) const;
737 void replaceInstrOperandWithImm(MachineInstr &MI, unsigned OpNo,
745 MachineInstr *getDefMIPostRA(unsigned Reg, MachineInstr &MI,
793 MachineInstr *