14 #ifndef POWERPC_INSTRUCTIONINFO_H
15 #define POWERPC_INSTRUCTIONINFO_H
21 #define GET_INSTRINFO_HEADER
22 #include "PPCGenInstrInfo.inc"
72 unsigned SrcReg,
bool isKill,
int FrameIdx,
75 bool &NonRI,
bool &SpillsVRS)
const;
77 unsigned DestReg,
int FrameIdx,
80 bool &NonRI,
bool &SpillsVRS)
const;
81 virtual void anchor();
99 unsigned &SrcReg,
unsigned &DstReg,
100 unsigned &SubIdx)
const;
118 bool AllowModify)
const;
128 unsigned,
unsigned,
int&,
int&,
int&)
const;
133 unsigned TrueReg,
unsigned FalseReg)
const;
137 unsigned DestReg,
unsigned SrcReg,
162 unsigned NumCycles,
unsigned ExtraPredCycles,
168 unsigned NumT,
unsigned ExtraT,
170 unsigned NumF,
unsigned ExtraF,
176 &Probability)
const {
199 std::vector<MachineOperand> &Pred)
const;
207 unsigned &SrcReg,
unsigned &SrcReg2,
208 int &Mask,
int &
Value)
const;
211 unsigned SrcReg,
unsigned SrcReg2,
unsigned isLoadFromStackSlot(const MachineInstr *MI, int &FrameIndex) const
virtual void storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, unsigned SrcReg, bool isKill, int FrameIndex, const TargetRegisterClass *RC, const TargetRegisterInfo *TRI) const
virtual unsigned RemoveBranch(MachineBasicBlock &MBB) const
virtual bool AnalyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB, MachineBasicBlock *&FBB, SmallVectorImpl< MachineOperand > &Cond, bool AllowModify) const
bool isPredicated(const MachineInstr *MI) const
virtual MachineInstr * commuteInstruction(MachineInstr *MI, bool NewMI) const
virtual void copyPhysReg(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, DebugLoc DL, unsigned DestReg, unsigned SrcReg, bool KillSrc) const
virtual bool optimizeCompareInstr(MachineInstr *CmpInstr, unsigned SrcReg, unsigned SrcReg2, int Mask, int Value, const MachineRegisterInfo *MRI) const
bool isCoalescableExtInstr(const MachineInstr &MI, unsigned &SrcReg, unsigned &DstReg, unsigned &SubIdx) const
virtual bool isProfitableToIfCvt(MachineBasicBlock &MBB, unsigned NumCycles, unsigned ExtraPredCycles, const BranchProbability &Probability) const
virtual void insertNoop(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI) const
virtual bool isPredicable(MachineInstr *MI) const
virtual bool ReverseBranchCondition(SmallVectorImpl< MachineOperand > &Cond) const
virtual bool analyzeCompare(const MachineInstr *MI, unsigned &SrcReg, unsigned &SrcReg2, int &Mask, int &Value) const
virtual bool isProfitableToUnpredicate(MachineBasicBlock &TMBB, MachineBasicBlock &FMBB) const
virtual bool isProfitableToDupForIfCvt(MachineBasicBlock &MBB, unsigned NumCycles, const BranchProbability &Probability) const
virtual bool SubsumesPredicate(const SmallVectorImpl< MachineOperand > &Pred1, const SmallVectorImpl< MachineOperand > &Pred2) const
virtual bool canInsertSelect(const MachineBasicBlock &, const SmallVectorImpl< MachineOperand > &Cond, unsigned, unsigned, int &, int &, int &) const
virtual bool DefinesPredicate(MachineInstr *MI, std::vector< MachineOperand > &Pred) const
virtual const PPCRegisterInfo & getRegisterInfo() const
virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB, const SmallVectorImpl< MachineOperand > &Cond, DebugLoc DL) const
virtual void insertSelect(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, DebugLoc DL, unsigned DstReg, const SmallVectorImpl< MachineOperand > &Cond, unsigned TrueReg, unsigned FalseReg) const
virtual void loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, unsigned DestReg, int FrameIndex, const TargetRegisterClass *RC, const TargetRegisterInfo *TRI) const
unsigned isStoreToStackSlot(const MachineInstr *MI, int &FrameIndex) const
virtual bool isUnpredicatedTerminator(const MachineInstr *MI) const
PPCInstrInfo(PPCTargetMachine &TM)
virtual bool PredicateInstruction(MachineInstr *MI, const SmallVectorImpl< MachineOperand > &Pred) const
ScheduleHazardRecognizer * CreateTargetPostRAHazardRecognizer(const InstrItineraryData *II, const ScheduleDAG *DAG) const
virtual unsigned GetInstSizeInBytes(const MachineInstr *MI) const
LLVM Value Representation.
const MCRegisterInfo & MRI
ScheduleHazardRecognizer * CreateTargetHazardRecognizer(const TargetMachine *TM, const ScheduleDAG *DAG) const
virtual bool FoldImmediate(MachineInstr *UseMI, MachineInstr *DefMI, unsigned Reg, MachineRegisterInfo *MRI) const