LLVM API Documentation

Public Member Functions
llvm::SparcInstrInfo Class Reference

#include <SparcInstrInfo.h>

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

List of all members.

Public Member Functions

 SparcInstrInfo (SparcSubtarget &ST)
virtual const SparcRegisterInfogetRegisterInfo () const
virtual unsigned isLoadFromStackSlot (const MachineInstr *MI, int &FrameIndex) const
virtual unsigned isStoreToStackSlot (const MachineInstr *MI, int &FrameIndex) const
virtual MachineInstremitFrameIndexDebugValue (MachineFunction &MF, int FrameIx, uint64_t Offset, const MDNode *MDPtr, DebugLoc dl) const
virtual bool AnalyzeBranch (MachineBasicBlock &MBB, MachineBasicBlock *&TBB, MachineBasicBlock *&FBB, SmallVectorImpl< MachineOperand > &Cond, bool AllowModify=false) const
virtual unsigned RemoveBranch (MachineBasicBlock &MBB) const
virtual unsigned InsertBranch (MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB, const SmallVectorImpl< MachineOperand > &Cond, DebugLoc DL) 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
unsigned getGlobalBaseReg (MachineFunction *MF) const

Detailed Description

Definition at line 37 of file SparcInstrInfo.h.


Constructor & Destructor Documentation

SparcInstrInfo::SparcInstrInfo ( SparcSubtarget ST) [explicit]

Definition at line 30 of file SparcInstrInfo.cpp.


Member Function Documentation

bool SparcInstrInfo::AnalyzeBranch ( MachineBasicBlock MBB,
MachineBasicBlock *&  TBB,
MachineBasicBlock *&  FBB,
SmallVectorImpl< MachineOperand > &  Cond,
bool  AllowModify = false 
) const [virtual]
void SparcInstrInfo::copyPhysReg ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  I,
DebugLoc  DL,
unsigned  DestReg,
unsigned  SrcReg,
bool  KillSrc 
) const [virtual]
MachineInstr * SparcInstrInfo::emitFrameIndexDebugValue ( MachineFunction MF,
int  FrameIx,
uint64_t  Offset,
const MDNode MDPtr,
DebugLoc  dl 
) const [virtual]

emitFrameIndexDebugValue - Emit a target-dependent form of DBG_VALUE encoding the address of a frame index.

Definition at line 118 of file SparcInstrInfo.cpp.

References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMetadata(), llvm::BuildMI(), and llvm::TargetOpcode::DBG_VALUE.

unsigned SparcInstrInfo::getGlobalBaseReg ( MachineFunction MF) const
virtual const SparcRegisterInfo& llvm::SparcInstrInfo::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 47 of file SparcInstrInfo.h.

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

unsigned SparcInstrInfo::InsertBranch ( MachineBasicBlock MBB,
MachineBasicBlock TBB,
MachineBasicBlock FBB,
const SmallVectorImpl< MachineOperand > &  Cond,
DebugLoc  DL 
) const [virtual]
unsigned SparcInstrInfo::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 40 of file SparcInstrInfo.cpp.

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

unsigned SparcInstrInfo::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 60 of file SparcInstrInfo.cpp.

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

void SparcInstrInfo::loadRegFromStackSlot ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MBBI,
unsigned  DestReg,
int  FrameIndex,
const TargetRegisterClass RC,
const TargetRegisterInfo TRI 
) const [virtual]
unsigned SparcInstrInfo::RemoveBranch ( MachineBasicBlock MBB) const [virtual]
void SparcInstrInfo::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: