Lines Matching refs:MachineInstr

188   unsigned getInstSizeInBytes(const MachineInstr &MI) const override;
190 bool isAsCheapAsAMove(const MachineInstr &MI) const override;
192 bool isCoalescableExtInstr(const MachineInstr &MI, Register &SrcReg,
196 areMemAccessesTriviallyDisjoint(const MachineInstr &MIa,
197 const MachineInstr &MIb) const override;
199 Register isLoadFromStackSlot(const MachineInstr &MI,
201 Register isStoreToStackSlot(const MachineInstr &MI,
205 static bool isGPRZero(const MachineInstr &MI);
208 static bool isGPRCopy(const MachineInstr &MI);
211 static bool isFPRCopy(const MachineInstr &MI);
215 static bool isLdStPairSuppressed(const MachineInstr &MI);
218 static bool isStridedAccess(const MachineInstr &MI);
222 static bool hasUnscaledLdStOffset(MachineInstr &MI) { in hasUnscaledLdStOffset()
232 static int getMemScale(const MachineInstr &MI) { in getMemScale()
237 static bool isPreLd(const MachineInstr &MI);
240 static bool isPreSt(const MachineInstr &MI);
243 static bool isPreLdSt(const MachineInstr &MI);
246 static bool isPairedLdSt(const MachineInstr &MI);
249 static const MachineOperand &getLdStBaseOp(const MachineInstr &MI);
252 static const MachineOperand &getLdStOffsetOp(const MachineInstr &MI);
258 static bool isFpOrNEON(const MachineInstr &MI);
261 static bool isHForm(const MachineInstr &MI);
264 static bool isQForm(const MachineInstr &MI);
267 static bool hasBTISemantics(const MachineInstr &MI);
273 static bool isPairableLdStInst(const MachineInstr &MI);
276 static bool isTailCallReturnInst(const MachineInstr &MI);
283 bool isCandidateToMergeOrPair(const MachineInstr &MI) const;
286 static void suppressLdStPair(MachineInstr &MI);
289 getAddrModeFromMemoryOp(const MachineInstr &MemI,
292 bool canFoldIntoAddrMode(const MachineInstr &MemI, Register Reg,
293 const MachineInstr &AddrI,
296 MachineInstr *emitLdStWithAddr(MachineInstr &MemI,
300 const MachineInstr &MI, SmallVectorImpl<const MachineOperand *> &BaseOps,
308 bool getMemOperandWithOffsetWidth(const MachineInstr &MI,
315 MachineOperand &getMemOpBaseRegImmOfsOffsetOperand(MachineInstr &LdSt) const;
361 MachineInstr *
362 foldMemoryOperandImpl(MachineFunction &MF, MachineInstr &MI,
373 MachineBasicBlock *getBranchDestBlock(const MachineInstr &MI) const override;
412 bool isSchedulingBoundary(const MachineInstr &MI,
419 bool analyzeCompare(const MachineInstr &MI, Register &SrcReg,
424 bool optimizeCompareInstr(MachineInstr &CmpInstr, Register SrcReg,
427 bool optimizeCondBranch(MachineInstr &MI) const override;
437 bool getMachineCombinerPatterns(MachineInstr &Root,
443 bool isAssociativeAndCommutative(const MachineInstr &Inst,
448 MachineInstr &Root, unsigned Pattern,
449 SmallVectorImpl<MachineInstr *> &InsInstrs,
450 SmallVectorImpl<MachineInstr *> &DelInstrs,
455 bool expandPostRAPseudo(MachineInstr &MI) const override;
499 static bool isFalkorShiftExtFast(const MachineInstr &MI);
502 static bool isSEHInstruction(const MachineInstr &MI);
504 std::optional<RegImmPair> isAddImmediate(const MachineInstr &MI,
512 describeLoadedValue(const MachineInstr &MI, Register Reg) const override;
516 bool isExtendLikelyToBeFolded(MachineInstr &ExtMI,
548 isCopyInstrImpl(const MachineInstr &MI) const override;
550 isCopyLikeInstrImpl(const MachineInstr &MI) const override;
553 unsigned getInstBundleLength(const MachineInstr &MI) const;
564 bool substituteCmpToZero(MachineInstr &CmpInstr, unsigned SrcReg,
566 bool removeCmpToZeroOrOne(MachineInstr &CmpInstr, unsigned SrcReg,
575 bool optimizePTestInstr(MachineInstr *PTest, unsigned MaskReg,
579 canRemovePTestInstr(MachineInstr *PTest, MachineInstr *Mask,
580 MachineInstr *Pred, const MachineRegisterInfo *MRI) const;
606 examineCFlagsUse(MachineInstr &MI, MachineInstr &CmpInstr,
608 SmallVectorImpl<MachineInstr *> *CCUseInstrs = nullptr);
612 bool isNZCVTouchedInInstructionRange(const MachineInstr &DefMI,
613 const MachineInstr &UseMI,
629 MachineInstr::MIFlag = MachineInstr::NoFlags,
638 bool rewriteAArch64FrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
663 int isAArch64FrameOffsetLegal(const MachineInstr &MI, StackOffset &Offset,