LLVM  4.0.0
Public Member Functions | List of all members
llvm::LanaiInstrInfo Class Reference

#include <LanaiInstrInfo.h>

Inheritance diagram for llvm::LanaiInstrInfo:
[legend]
Collaboration diagram for llvm::LanaiInstrInfo:
[legend]

Public Member Functions

 LanaiInstrInfo ()
 
virtual const LanaiRegisterInfogetRegisterInfo () const
 
bool areMemAccessesTriviallyDisjoint (MachineInstr &MIa, MachineInstr &MIb, AliasAnalysis *AA) const override
 
unsigned isLoadFromStackSlot (const MachineInstr &MI, int &FrameIndex) const override
 
unsigned isLoadFromStackSlotPostFE (const MachineInstr &MI, int &FrameIndex) const override
 
unsigned isStoreToStackSlot (const MachineInstr &MI, int &FrameIndex) const override
 
void copyPhysReg (MachineBasicBlock &MBB, MachineBasicBlock::iterator Position, const DebugLoc &DL, unsigned DestinationRegister, unsigned SourceRegister, bool KillSource) const override
 
void storeRegToStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator Position, unsigned SourceRegister, bool IsKill, int FrameIndex, const TargetRegisterClass *RegisterClass, const TargetRegisterInfo *RegisterInfo) const override
 
void loadRegFromStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator Position, unsigned DestinationRegister, int FrameIndex, const TargetRegisterClass *RegisterClass, const TargetRegisterInfo *RegisterInfo) const override
 
bool expandPostRAPseudo (MachineInstr &MI) const override
 
bool getMemOpBaseRegImmOfs (MachineInstr &LdSt, unsigned &BaseReg, int64_t &Offset, const TargetRegisterInfo *TRI) const override
 
bool getMemOpBaseRegImmOfsWidth (MachineInstr &LdSt, unsigned &BaseReg, int64_t &Offset, unsigned &Width, const TargetRegisterInfo *TRI) const
 
std::pair< unsigned, unsigneddecomposeMachineOperandsTargetFlags (unsigned TF) const override
 
ArrayRef< std::pair< unsigned,
const char * > > 
getSerializableDirectMachineOperandTargetFlags () const override
 
bool analyzeBranch (MachineBasicBlock &MBB, MachineBasicBlock *&TrueBlock, MachineBasicBlock *&FalseBlock, SmallVectorImpl< MachineOperand > &Condition, bool AllowModify) const override
 
unsigned removeBranch (MachineBasicBlock &MBB, int *BytesRemoved=nullptr) const override
 
bool analyzeCompare (const MachineInstr &MI, unsigned &SrcReg, unsigned &SrcReg2, int &CmpMask, int &CmpValue) const override
 
bool optimizeCompareInstr (MachineInstr &CmpInstr, unsigned SrcReg, unsigned SrcReg2, int CmpMask, int CmpValue, const MachineRegisterInfo *MRI) const override
 
bool analyzeSelect (const MachineInstr &MI, SmallVectorImpl< MachineOperand > &Cond, unsigned &TrueOp, unsigned &FalseOp, bool &Optimizable) const override
 
MachineInstroptimizeSelect (MachineInstr &MI, SmallPtrSetImpl< MachineInstr * > &SeenMIs, bool PreferFalse) const override
 
bool reverseBranchCondition (SmallVectorImpl< MachineOperand > &Condition) const override
 
unsigned insertBranch (MachineBasicBlock &MBB, MachineBasicBlock *TrueBlock, MachineBasicBlock *FalseBlock, ArrayRef< MachineOperand > Condition, const DebugLoc &DL, int *BytesAdded=nullptr) const override
 

Detailed Description

Definition at line 25 of file LanaiInstrInfo.h.

Constructor & Destructor Documentation

LanaiInstrInfo::LanaiInstrInfo ( )

Definition at line 31 of file LanaiInstrInfo.cpp.

Member Function Documentation

bool LanaiInstrInfo::analyzeBranch ( MachineBasicBlock MBB,
MachineBasicBlock *&  TrueBlock,
MachineBasicBlock *&  FalseBlock,
SmallVectorImpl< MachineOperand > &  Condition,
bool  AllowModify 
) const
override
bool LanaiInstrInfo::analyzeCompare ( const MachineInstr MI,
unsigned SrcReg,
unsigned SrcReg2,
int &  CmpMask,
int &  CmpValue 
) const
override
bool LanaiInstrInfo::analyzeSelect ( const MachineInstr MI,
SmallVectorImpl< MachineOperand > &  Cond,
unsigned TrueOp,
unsigned FalseOp,
bool Optimizable 
) const
override
bool LanaiInstrInfo::areMemAccessesTriviallyDisjoint ( MachineInstr MIa,
MachineInstr MIb,
AliasAnalysis AA 
) const
override
void LanaiInstrInfo::copyPhysReg ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  Position,
const DebugLoc DL,
unsigned  DestinationRegister,
unsigned  SourceRegister,
bool  KillSource 
) const
override
std::pair< unsigned, unsigned > LanaiInstrInfo::decomposeMachineOperandsTargetFlags ( unsigned  TF) const
override

Definition at line 164 of file LanaiInstrInfo.cpp.

bool LanaiInstrInfo::expandPostRAPseudo ( MachineInstr MI) const
override

Definition at line 120 of file LanaiInstrInfo.cpp.

bool LanaiInstrInfo::getMemOpBaseRegImmOfs ( MachineInstr LdSt,
unsigned BaseReg,
int64_t &  Offset,
const TargetRegisterInfo TRI 
) const
override
bool LanaiInstrInfo::getMemOpBaseRegImmOfsWidth ( MachineInstr LdSt,
unsigned BaseReg,
int64_t &  Offset,
unsigned Width,
const TargetRegisterInfo TRI 
) const
virtual const LanaiRegisterInfo& llvm::LanaiInstrInfo::getRegisterInfo ( ) const
inlinevirtual
ArrayRef< std::pair< unsigned, const char * > > LanaiInstrInfo::getSerializableDirectMachineOperandTargetFlags ( ) const
override
unsigned LanaiInstrInfo::insertBranch ( MachineBasicBlock MBB,
MachineBasicBlock TrueBlock,
MachineBasicBlock FalseBlock,
ArrayRef< MachineOperand Condition,
const DebugLoc DL,
int *  BytesAdded = nullptr 
) const
override
unsigned LanaiInstrInfo::isLoadFromStackSlot ( const MachineInstr MI,
int &  FrameIndex 
) const
override
unsigned LanaiInstrInfo::isLoadFromStackSlotPostFE ( const MachineInstr MI,
int &  FrameIndex 
) const
override
unsigned LanaiInstrInfo::isStoreToStackSlot ( const MachineInstr MI,
int &  FrameIndex 
) const
override
void LanaiInstrInfo::loadRegFromStackSlot ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  Position,
unsigned  DestinationRegister,
int  FrameIndex,
const TargetRegisterClass RegisterClass,
const TargetRegisterInfo RegisterInfo 
) const
override
bool LanaiInstrInfo::optimizeCompareInstr ( MachineInstr CmpInstr,
unsigned  SrcReg,
unsigned  SrcReg2,
int  CmpMask,
int  CmpValue,
const MachineRegisterInfo MRI 
) const
override
MachineInstr * LanaiInstrInfo::optimizeSelect ( MachineInstr MI,
SmallPtrSetImpl< MachineInstr * > &  SeenMIs,
bool  PreferFalse 
) const
override
unsigned LanaiInstrInfo::removeBranch ( MachineBasicBlock MBB,
int *  BytesRemoved = nullptr 
) const
override
bool LanaiInstrInfo::reverseBranchCondition ( SmallVectorImpl< MachineOperand > &  Condition) const
override
void LanaiInstrInfo::storeRegToStackSlot ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  Position,
unsigned  SourceRegister,
bool  IsKill,
int  FrameIndex,
const TargetRegisterClass RegisterClass,
const TargetRegisterInfo RegisterInfo 
) const
override

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