LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::SystemZInstrInfo Class Reference

#include <SystemZInstrInfo.h>

Inheritance diagram for llvm::SystemZInstrInfo:
Inheritance graph
[legend]
Collaboration diagram for llvm::SystemZInstrInfo:
Collaboration graph
[legend]

Public Member Functions

 SystemZInstrInfo (SystemZTargetMachine &TM)
 
virtual unsigned isLoadFromStackSlot (const MachineInstr *MI, int &FrameIndex) const LLVM_OVERRIDE
 
virtual unsigned isStoreToStackSlot (const MachineInstr *MI, int &FrameIndex) const LLVM_OVERRIDE
 
virtual bool isStackSlotCopy (const MachineInstr *MI, int &DestFrameIndex, int &SrcFrameIndex) const LLVM_OVERRIDE
 
virtual bool AnalyzeBranch (MachineBasicBlock &MBB, MachineBasicBlock *&TBB, MachineBasicBlock *&FBB, SmallVectorImpl< MachineOperand > &Cond, bool AllowModify) const LLVM_OVERRIDE
 
virtual unsigned RemoveBranch (MachineBasicBlock &MBB) const LLVM_OVERRIDE
 
virtual unsigned InsertBranch (MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB, const SmallVectorImpl< MachineOperand > &Cond, DebugLoc DL) const LLVM_OVERRIDE
 
bool analyzeCompare (const MachineInstr *MI, unsigned &SrcReg, unsigned &SrcReg2, int &Mask, int &Value) const LLVM_OVERRIDE
 
bool optimizeCompareInstr (MachineInstr *CmpInstr, unsigned SrcReg, unsigned SrcReg2, int Mask, int Value, const MachineRegisterInfo *MRI) const LLVM_OVERRIDE
 
virtual bool isPredicable (MachineInstr *MI) const LLVM_OVERRIDE
 
virtual bool isProfitableToIfCvt (MachineBasicBlock &MBB, unsigned NumCycles, unsigned ExtraPredCycles, const BranchProbability &Probability) const LLVM_OVERRIDE
 
virtual bool isProfitableToIfCvt (MachineBasicBlock &TMBB, unsigned NumCyclesT, unsigned ExtraPredCyclesT, MachineBasicBlock &FMBB, unsigned NumCyclesF, unsigned ExtraPredCyclesF, const BranchProbability &Probability) const LLVM_OVERRIDE
 
virtual bool PredicateInstruction (MachineInstr *MI, const SmallVectorImpl< MachineOperand > &Pred) const LLVM_OVERRIDE
 
virtual void copyPhysReg (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, DebugLoc DL, unsigned DestReg, unsigned SrcReg, bool KillSrc) const LLVM_OVERRIDE
 
virtual void storeRegToStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, unsigned SrcReg, bool isKill, int FrameIndex, const TargetRegisterClass *RC, const TargetRegisterInfo *TRI) const LLVM_OVERRIDE
 
virtual void loadRegFromStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, unsigned DestReg, int FrameIdx, const TargetRegisterClass *RC, const TargetRegisterInfo *TRI) const LLVM_OVERRIDE
 
virtual MachineInstrconvertToThreeAddress (MachineFunction::iterator &MFI, MachineBasicBlock::iterator &MBBI, LiveVariables *LV) const
 
virtual MachineInstrfoldMemoryOperandImpl (MachineFunction &MF, MachineInstr *MI, const SmallVectorImpl< unsigned > &Ops, int FrameIndex) const
 
virtual MachineInstrfoldMemoryOperandImpl (MachineFunction &MF, MachineInstr *MI, const SmallVectorImpl< unsigned > &Ops, MachineInstr *LoadMI) const
 
virtual bool expandPostRAPseudo (MachineBasicBlock::iterator MBBI) const LLVM_OVERRIDE
 
virtual bool ReverseBranchCondition (SmallVectorImpl< MachineOperand > &Cond) const LLVM_OVERRIDE
 
const SystemZRegisterInfogetRegisterInfo () const
 
uint64_t getInstSizeInBytes (const MachineInstr *MI) const
 
SystemZII::Branch getBranchInfo (const MachineInstr *MI) const
 
void getLoadStoreOpcodes (const TargetRegisterClass *RC, unsigned &LoadOpcode, unsigned &StoreOpcode) const
 
unsigned getOpcodeForOffset (unsigned Opcode, int64_t Offset) const
 
unsigned getLoadAndTest (unsigned Opcode) const
 
bool isRxSBGMask (uint64_t Mask, unsigned BitSize, unsigned &Start, unsigned &End) const
 
unsigned getCompareAndBranch (unsigned Opcode, const MachineInstr *MI=0) const
 
void loadImmediate (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, unsigned Reg, uint64_t Value) const
 

Detailed Description

Definition at line 113 of file SystemZInstrInfo.h.

Constructor & Destructor Documentation

SystemZInstrInfo::SystemZInstrInfo ( SystemZTargetMachine TM)
explicit

Definition at line 43 of file SystemZInstrInfo.cpp.

Member Function Documentation

bool SystemZInstrInfo::AnalyzeBranch ( MachineBasicBlock MBB,
MachineBasicBlock *&  TBB,
MachineBasicBlock *&  FBB,
SmallVectorImpl< MachineOperand > &  Cond,
bool  AllowModify 
) const
virtual
bool SystemZInstrInfo::analyzeCompare ( const MachineInstr MI,
unsigned SrcReg,
unsigned SrcReg2,
int &  Mask,
int &  Value 
) const
MachineInstr * SystemZInstrInfo::convertToThreeAddress ( MachineFunction::iterator MFI,
MachineBasicBlock::iterator MBBI,
LiveVariables LV 
) const
virtual
void SystemZInstrInfo::copyPhysReg ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MBBI,
DebugLoc  DL,
unsigned  DestReg,
unsigned  SrcReg,
bool  KillSrc 
) const
virtual
bool SystemZInstrInfo::expandPostRAPseudo ( MachineBasicBlock::iterator  MBBI) const
virtual
MachineInstr * SystemZInstrInfo::foldMemoryOperandImpl ( MachineFunction MF,
MachineInstr MI,
const SmallVectorImpl< unsigned > &  Ops,
int  FrameIndex 
) const
virtual
MachineInstr * SystemZInstrInfo::foldMemoryOperandImpl ( MachineFunction MF,
MachineInstr MI,
const SmallVectorImpl< unsigned > &  Ops,
MachineInstr LoadMI 
) const
virtual

Definition at line 865 of file SystemZInstrInfo.cpp.

SystemZII::Branch SystemZInstrInfo::getBranchInfo ( const MachineInstr MI) const
unsigned SystemZInstrInfo::getCompareAndBranch ( unsigned  Opcode,
const MachineInstr MI = 0 
) const
uint64_t SystemZInstrInfo::getInstSizeInBytes ( const MachineInstr MI) const
unsigned SystemZInstrInfo::getLoadAndTest ( unsigned  Opcode) const

Definition at line 1148 of file SystemZInstrInfo.cpp.

References llvm::MipsISD::LDR, and llvm::A64CC::LT.

void SystemZInstrInfo::getLoadStoreOpcodes ( const TargetRegisterClass RC,
unsigned LoadOpcode,
unsigned StoreOpcode 
) const
unsigned SystemZInstrInfo::getOpcodeForOffset ( unsigned  Opcode,
int64_t  Offset 
) const
const SystemZRegisterInfo& llvm::SystemZInstrInfo::getRegisterInfo ( ) const
inline

Definition at line 210 of file SystemZInstrInfo.h.

Referenced by llvm::SystemZTargetMachine::getRegisterInfo().

unsigned SystemZInstrInfo::InsertBranch ( MachineBasicBlock MBB,
MachineBasicBlock TBB,
MachineBasicBlock FBB,
const SmallVectorImpl< MachineOperand > &  Cond,
DebugLoc  DL 
) const
virtual
unsigned SystemZInstrInfo::isLoadFromStackSlot ( const MachineInstr MI,
int &  FrameIndex 
) const
virtual

Definition at line 206 of file SystemZInstrInfo.cpp.

References isSimpleMove(), and llvm::SystemZII::SimpleBDXLoad.

bool SystemZInstrInfo::isPredicable ( MachineInstr MI) const
virtual
bool SystemZInstrInfo::isProfitableToIfCvt ( MachineBasicBlock MBB,
unsigned  NumCycles,
unsigned  ExtraPredCycles,
const BranchProbability Probability 
) const
virtual

Definition at line 515 of file SystemZInstrInfo.cpp.

bool SystemZInstrInfo::isProfitableToIfCvt ( MachineBasicBlock TMBB,
unsigned  NumCyclesT,
unsigned  ExtraPredCyclesT,
MachineBasicBlock FMBB,
unsigned  NumCyclesF,
unsigned  ExtraPredCyclesF,
const BranchProbability Probability 
) const
virtual

Definition at line 523 of file SystemZInstrInfo.cpp.

bool SystemZInstrInfo::isRxSBGMask ( uint64_t  Mask,
unsigned  BitSize,
unsigned Start,
unsigned End 
) const

Definition at line 1178 of file SystemZInstrInfo.cpp.

References allOnes(), and isStringOfOnes().

Referenced by convertToThreeAddress().

bool SystemZInstrInfo::isStackSlotCopy ( const MachineInstr MI,
int &  DestFrameIndex,
int &  SrcFrameIndex 
) const
virtual
unsigned SystemZInstrInfo::isStoreToStackSlot ( const MachineInstr MI,
int &  FrameIndex 
) const
virtual

Definition at line 211 of file SystemZInstrInfo.cpp.

References isSimpleMove(), and llvm::SystemZII::SimpleBDXStore.

void SystemZInstrInfo::loadImmediate ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MBBI,
unsigned  Reg,
uint64_t  Value 
) const
void SystemZInstrInfo::loadRegFromStackSlot ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MBBI,
unsigned  DestReg,
int  FrameIdx,
const TargetRegisterClass RC,
const TargetRegisterInfo TRI 
) const
virtual
bool SystemZInstrInfo::optimizeCompareInstr ( MachineInstr CmpInstr,
unsigned  SrcReg,
unsigned  SrcReg2,
int  Mask,
int  Value,
const MachineRegisterInfo MRI 
) const
bool SystemZInstrInfo::PredicateInstruction ( MachineInstr MI,
const SmallVectorImpl< MachineOperand > &  Pred 
) const
virtual
unsigned SystemZInstrInfo::RemoveBranch ( MachineBasicBlock MBB) const
virtual
bool SystemZInstrInfo::ReverseBranchCondition ( SmallVectorImpl< MachineOperand > &  Cond) const
virtual
void SystemZInstrInfo::storeRegToStackSlot ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MBBI,
unsigned  SrcReg,
bool  isKill,
int  FrameIndex,
const TargetRegisterClass RC,
const TargetRegisterInfo TRI 
) const
virtual

The documentation for this class was generated from the following files: