LLVM API Documentation

Public Member Functions
llvm::MBlazeInstrInfo Class Reference

#include <MBlazeInstrInfo.h>

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

List of all members.

Public Member Functions

 MBlazeInstrInfo (MBlazeTargetMachine &TM)
virtual const MBlazeRegisterInfogetRegisterInfo () const
virtual unsigned isLoadFromStackSlot (const MachineInstr *MI, int &FrameIndex) const
virtual unsigned isStoreToStackSlot (const MachineInstr *MI, int &FrameIndex) const
virtual bool AnalyzeBranch (MachineBasicBlock &MBB, MachineBasicBlock *&TBB, MachineBasicBlock *&FBB, SmallVectorImpl< MachineOperand > &Cond, bool AllowModify) const
 Branch Analysis.
virtual unsigned InsertBranch (MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB, const SmallVectorImpl< MachineOperand > &Cond, DebugLoc DL) const
virtual unsigned RemoveBranch (MachineBasicBlock &MBB) const
virtual bool ReverseBranchCondition (SmallVectorImpl< MachineOperand > &Cond) const
virtual void copyPhysReg (MachineBasicBlock &MBB, MachineBasicBlock::iterator I, DebugLoc DL, unsigned DestReg, unsigned SrcReg, bool KillSrc) const
virtual void storeRegToStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, unsigned SrcReg, bool isKill, int FrameIndex, const TargetRegisterClass *RC, const TargetRegisterInfo *TRI) const
virtual void loadRegFromStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, unsigned DestReg, int FrameIndex, const TargetRegisterClass *RC, const TargetRegisterInfo *TRI) const
virtual void insertNoop (MachineBasicBlock &MBB, MachineBasicBlock::iterator MI) const
 Insert nop instruction when hazard condition is found.
unsigned getGlobalBaseReg (MachineFunction *MF) const

Detailed Description

Definition at line 169 of file MBlazeInstrInfo.h.


Constructor & Destructor Documentation

MBlazeInstrInfo::MBlazeInstrInfo ( MBlazeTargetMachine TM) [explicit]

Definition at line 30 of file MBlazeInstrInfo.cpp.


Member Function Documentation

bool MBlazeInstrInfo::AnalyzeBranch ( MachineBasicBlock MBB,
MachineBasicBlock *&  TBB,
MachineBasicBlock *&  FBB,
SmallVectorImpl< MachineOperand > &  Cond,
bool  AllowModify 
) const [virtual]
void MBlazeInstrInfo::copyPhysReg ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  I,
DebugLoc  DL,
unsigned  DestReg,
unsigned  SrcReg,
bool  KillSrc 
) const [virtual]
unsigned MBlazeInstrInfo::getGlobalBaseReg ( MachineFunction MF) const
virtual const MBlazeRegisterInfo& llvm::MBlazeInstrInfo::getRegisterInfo ( ) const [inline, virtual]

getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As such, whenever a client has an instance of instruction info, it should always be able to get register info as well (through this method).

Definition at line 179 of file MBlazeInstrInfo.h.

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

unsigned MBlazeInstrInfo::InsertBranch ( MachineBasicBlock MBB,
MachineBasicBlock TBB,
MachineBasicBlock FBB,
const SmallVectorImpl< MachineOperand > &  Cond,
DebugLoc  DL 
) const [virtual]
void MBlazeInstrInfo::insertNoop ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MI 
) const [virtual]

Insert nop instruction when hazard condition is found.

insertNoop - If data hazard condition is found insert the target nop instruction.

Definition at line 78 of file MBlazeInstrInfo.cpp.

References llvm::BuildMI().

unsigned MBlazeInstrInfo::isLoadFromStackSlot ( const MachineInstr MI,
int &  FrameIndex 
) const [virtual]

isLoadFromStackSlot - If the specified machine instruction is a direct load from a stack slot, return the virtual or physical register number of the destination along with the FrameIndex of the loaded stack slot. If not, return 0. This predicate must return 0 if the instruction has any side effects other than loading from the stack slot.

Definition at line 44 of file MBlazeInstrInfo.cpp.

References llvm::MachineOperand::getIndex(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isFI(), llvm::MachineOperand::isImm(), and isZeroImm().

unsigned MBlazeInstrInfo::isStoreToStackSlot ( const MachineInstr MI,
int &  FrameIndex 
) const [virtual]

isStoreToStackSlot - If the specified machine instruction is a direct store to a stack slot, return the virtual or physical register number of the source reg along with the FrameIndex of the loaded stack slot. If not, return 0. This predicate must return 0 if the instruction has any side effects other than storing to the stack slot.

Definition at line 63 of file MBlazeInstrInfo.cpp.

References llvm::MachineOperand::getIndex(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isFI(), llvm::MachineOperand::isImm(), and isZeroImm().

void MBlazeInstrInfo::loadRegFromStackSlot ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MBBI,
unsigned  DestReg,
int  FrameIndex,
const TargetRegisterClass RC,
const TargetRegisterInfo TRI 
) const [virtual]
unsigned MBlazeInstrInfo::RemoveBranch ( MachineBasicBlock MBB) const [virtual]
bool MBlazeInstrInfo::ReverseBranchCondition ( SmallVectorImpl< MachineOperand > &  Cond) const [virtual]

Definition at line 242 of file MBlazeInstrInfo.cpp.

References llvm::SmallVectorTemplateCommon< T >::size().

void MBlazeInstrInfo::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: