LLVM: llvm::AVRInstrInfo Class Reference (original) (raw)

Utilities related to the AVR instruction set. More...

#include "[Target/AVR/AVRInstrInfo.h](AVRInstrInfo%5F8h%5Fsource.html)"

Public Member Functions
AVRInstrInfo (const AVRSubtarget &STI)
const AVRRegisterInfo & getRegisterInfo () const
const MCInstrDesc & getBrCond (AVRCC::CondCodes CC) const
AVRCC::CondCodes getCondFromBranchOpc (unsigned Opc) const
AVRCC::CondCodes getOppositeCondition (AVRCC::CondCodes CC) const
unsigned getInstSizeInBytes (const MachineInstr &MI) const override
void copyPhysReg (MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, const DebugLoc &DL, Register DestReg, Register SrcReg, bool KillSrc, bool RenamableDest=false, bool RenamableSrc=false) const override
void storeRegToStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, Register SrcReg, bool isKill, int FrameIndex, const TargetRegisterClass *RC, Register VReg, MachineInstr::MIFlag Flags=MachineInstr::NoFlags) const override
void loadRegFromStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, Register DestReg, int FrameIndex, const TargetRegisterClass *RC, Register VReg, MachineInstr::MIFlag Flags=MachineInstr::NoFlags) const override
Register isLoadFromStackSlot (const MachineInstr &MI, int &FrameIndex) const override
Register isStoreToStackSlot (const MachineInstr &MI, int &FrameIndex) const override
bool analyzeBranch (MachineBasicBlock &MBB, MachineBasicBlock *&TBB, MachineBasicBlock *&FBB, SmallVectorImpl< MachineOperand > &Cond, bool AllowModify=false) const override
unsigned insertBranch (MachineBasicBlock &MBB, MachineBasicBlock *TBB, MachineBasicBlock *FBB, ArrayRef< MachineOperand > Cond, const DebugLoc &DL, int *BytesAdded=nullptr) const override
unsigned removeBranch (MachineBasicBlock &MBB, int *BytesRemoved=nullptr) const override
bool reverseBranchCondition (SmallVectorImpl< MachineOperand > &Cond) const override
MachineBasicBlock * getBranchDestBlock (const MachineInstr &MI) const override
bool isBranchOffsetInRange (unsigned BranchOpc, int64_t BrOffset) const override
void insertIndirectBranch (MachineBasicBlock &MBB, MachineBasicBlock &NewDestBB, MachineBasicBlock &RestoreBB, const DebugLoc &DL, int64_t BrOffset, RegScavenger *RS) const override

Utilities related to the AVR instruction set.

Definition at line 66 of file AVRInstrInfo.h.

analyzeBranch()

Definition at line 259 of file AVRInstrInfo.cpp.

References llvm::MachineInstrBuilder::addMBB(), assert(), llvm::BuildMI(), Cond, llvm::AVRCC::COND_INVALID, llvm::MachineOperand::CreateImm(), llvm::get(), getBrCond(), getCondFromBranchOpc(), llvm::getImm(), llvm::MCInstrDesc::getOpcode(), getOppositeCondition(), I, MBB, and TBB.

copyPhysReg()

Definition at line 36 of file AVRInstrInfo.cpp.

References llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), contains(), DL, llvm::get(), llvm::getKillRegState(), llvm_unreachable, MBB, MI, Opc, STI, TRI, and llvm::RegState::Undef.

getBranchDestBlock()

getBrCond()

Definition at line 190 of file AVRInstrInfo.cpp.

References llvm::AVRCC::COND_EQ, llvm::AVRCC::COND_GE, llvm::AVRCC::COND_LO, llvm::AVRCC::COND_LT, llvm::AVRCC::COND_MI, llvm::AVRCC::COND_NE, llvm::AVRCC::COND_PL, llvm::AVRCC::COND_SH, llvm::get(), and llvm_unreachable.

Referenced by analyzeBranch(), and insertBranch().

getCondFromBranchOpc()

Definition at line 213 of file AVRInstrInfo.cpp.

References llvm::AVRCC::COND_EQ, llvm::AVRCC::COND_GE, llvm::AVRCC::COND_INVALID, llvm::AVRCC::COND_LO, llvm::AVRCC::COND_LT, llvm::AVRCC::COND_MI, llvm::AVRCC::COND_NE, llvm::AVRCC::COND_PL, llvm::AVRCC::COND_SH, and Opc.

Referenced by analyzeBranch(), and removeBranch().

getInstSizeInBytes()

getOppositeCondition()

getRegisterInfo()

insertBranch()

Definition at line 392 of file AVRInstrInfo.cpp.

References llvm::MachineInstrBuilder::addMBB(), assert(), llvm::BuildMI(), Cond, llvm::Count, DL, llvm::get(), getBrCond(), llvm::getImm(), getInstSizeInBytes(), MBB, MI, and TBB.

insertIndirectBranch()

isBranchOffsetInRange()

bool llvm::AVRInstrInfo::isBranchOffsetInRange ( unsigned BranchOpc, int64_t BrOffset ) const override

isLoadFromStackSlot()

isStoreToStackSlot()

loadRegFromStackSlot()

Definition at line 159 of file AVRInstrInfo.cpp.

References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::BuildMI(), llvm::dwarf_linker::DebugLoc, llvm::get(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), llvm_unreachable, MBB, MI, llvm::MachineMemOperand::MOLoad, and TRI.

removeBranch()

reverseBranchCondition()

storeRegToStackSlot()

Definition at line 127 of file AVRInstrInfo.cpp.

References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::dwarf_linker::DebugLoc, llvm::get(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::getKillRegState(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectSize(), llvm_unreachable, MBB, MI, llvm::MachineMemOperand::MOStore, and llvm::AVRMachineFunctionInfo::setHasSpills().

STI


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