|
LLVM
3.7.0
|
#include <MipsInstrInfo.h>
Public Types | |
| enum | BranchType { BT_None, BT_NoBranch, BT_Uncond, BT_Cond, BT_CondUncond, BT_Indirect } |
Static Public Member Functions | |
| static const MipsInstrInfo * | create (MipsSubtarget &STI) |
Protected Member Functions | |
| bool | isZeroImm (const MachineOperand &op) const |
| MachineMemOperand * | GetMemOperand (MachineBasicBlock &MBB, int FI, unsigned Flag) const |
Protected Attributes | |
| const MipsSubtarget & | Subtarget |
| unsigned | UncondBrOpc |
Definition at line 33 of file MipsInstrInfo.h.
| Enumerator | |
|---|---|
| BT_None | |
| BT_NoBranch | |
| BT_Uncond | |
| BT_Cond | |
| BT_CondUncond | |
| BT_Indirect | |
Definition at line 40 of file MipsInstrInfo.h.
|
explicit |
Definition at line 33 of file MipsInstrInfo.cpp.
|
pure virtual |
Implemented in llvm::Mips16InstrInfo, and llvm::MipsSEInstrInfo.
Referenced by llvm::MipsFrameLowering::eliminateCallFramePseudoInstr().
|
override |
Branch Analysis.
Definition at line 86 of file MipsInstrInfo.cpp.
References BT_Indirect, and BT_None.
| MipsInstrInfo::BranchType MipsInstrInfo::AnalyzeBranch | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock *& | TBB, | ||
| MachineBasicBlock *& | FBB, | ||
| SmallVectorImpl< MachineOperand > & | Cond, | ||
| bool | AllowModify, | ||
| SmallVectorImpl< MachineInstr * > & | BranchInstrs | ||
| ) | const |
Definition at line 177 of file MipsInstrInfo.cpp.
References llvm::SmallVectorTemplateCommon< T >::begin(), BT_Cond, BT_CondUncond, BT_Indirect, BT_NoBranch, BT_None, BT_Uncond, llvm::MachineInstr::eraseFromParent(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), I, llvm::SmallVectorImpl< T >::insert(), llvm::MachineInstr::isIndirectBranch(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::pop_back(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::MachineBasicBlock::rbegin(), llvm::MachineBasicBlock::rend(), and UncondBrOpc.
|
static |
Definition at line 37 of file MipsInstrInfo.cpp.
References llvm::createMips16InstrInfo(), llvm::createMipsSEInstrInfo(), and llvm::MipsSubtarget::inMips16Mode().
| MachineInstrBuilder MipsInstrInfo::genInstrWithNewOpc | ( | unsigned | NewOpc, |
| MachineBasicBlock::iterator | I | ||
| ) | const |
Create an instruction which has the same operands and memory operands as MI but has a new opcode.
Definition at line 278 of file MipsInstrInfo.cpp.
References llvm::MachineInstrBuilder::addOperand(), llvm::BuildMI(), I, and llvm::MachineInstrBuilder::setMemRefs().
| unsigned MipsInstrInfo::GetInstSizeInBytes | ( | const MachineInstr * | MI | ) | const |
Return the number of bytes of code the specified instruction may be.
Definition at line 261 of file MipsInstrInfo.cpp.
References llvm::MachineInstr::getDesc(), llvm::MachineOperand::getImm(), llvm::TargetMachine::getMCAsmInfo(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MCInstrDesc::getSize(), llvm::MachineOperand::getSymbolName(), llvm::MachineFunction::getTarget(), and llvm::TargetOpcode::INLINEASM.
|
protected |
Definition at line 57 of file MipsInstrInfo.cpp.
References Align(), llvm::MachinePointerInfo::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectSize(), and llvm::MachineBasicBlock::getParent().
Referenced by llvm::Mips16InstrInfo::loadRegFromStack(), llvm::MipsSEInstrInfo::loadRegFromStack(), llvm::MipsSEInstrInfo::storeRegToStack(), and llvm::Mips16InstrInfo::storeRegToStack().
Implemented in llvm::Mips16InstrInfo, and llvm::MipsSEInstrInfo.
Referenced by ReverseBranchCondition().
|
pure 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).
Implemented in llvm::Mips16InstrInfo, and llvm::MipsSEInstrInfo.
|
override |
Definition at line 115 of file MipsInstrInfo.cpp.
References llvm::MachineInstrBuilder::addMBB(), llvm::BuildMI(), llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::size(), and UncondBrOpc.
|
override |
Insert nop instruction when hazard condition is found.
insertNoop - If data hazard condition is found insert the target nop instruction.
Definition at line 51 of file MipsInstrInfo.cpp.
References llvm::BuildMI(), and llvm::DL.
|
protected |
Definition at line 44 of file MipsInstrInfo.cpp.
References llvm::MachineOperand::getImm(), and llvm::MachineOperand::isImm().
Referenced by llvm::MipsSEInstrInfo::isLoadFromStackSlot(), and llvm::MipsSEInstrInfo::isStoreToStackSlot().
|
pure virtual |
Implemented in llvm::Mips16InstrInfo, and llvm::MipsSEInstrInfo.
Referenced by loadRegFromStackSlot().
|
inlineoverride |
Definition at line 97 of file MipsInstrInfo.h.
References loadRegFromStack().
|
override |
Definition at line 145 of file MipsInstrInfo.cpp.
References llvm::MachineBasicBlock::erase(), I, llvm::MachineBasicBlock::rbegin(), and llvm::MachineBasicBlock::rend().
|
override |
ReverseBranchCondition - Return the inverse opcode of the specified Branch instruction.
Definition at line 169 of file MipsInstrInfo.cpp.
References getOppositeBranchOpc(), and llvm::SmallVectorTemplateCommon< T >::size().
|
pure virtual |
Implemented in llvm::Mips16InstrInfo, and llvm::MipsSEInstrInfo.
Referenced by storeRegToStackSlot().
|
inlineoverride |
Definition at line 89 of file MipsInstrInfo.h.
References storeRegToStack().
|
protected |
Definition at line 36 of file MipsInstrInfo.h.
Referenced by llvm::MipsSEInstrInfo::adjustStackPtr(), llvm::MipsSEInstrInfo::copyPhysReg(), llvm::MipsSEInstrInfo::expandPostRAPseudo(), and llvm::MipsSEInstrInfo::loadImmediate().
|
protected |
Definition at line 37 of file MipsInstrInfo.h.
Referenced by AnalyzeBranch(), and InsertBranch().
1.8.6