LLVM
8.0.1
|
#include "Target/AMDGPU/R600InstrInfo.h"
Public Types | |
enum | BankSwizzle { ALU_VEC_012_SCL_210 = 0, ALU_VEC_021_SCL_122, ALU_VEC_120_SCL_212, ALU_VEC_102_SCL_221, ALU_VEC_201, ALU_VEC_210 } |
Definition at line 40 of file R600InstrInfo.h.
Enumerator | |
---|---|
ALU_VEC_012_SCL_210 | |
ALU_VEC_021_SCL_122 | |
ALU_VEC_120_SCL_212 | |
ALU_VEC_102_SCL_221 | |
ALU_VEC_201 | |
ALU_VEC_210 |
Definition at line 61 of file R600InstrInfo.h.
|
explicit |
Definition at line 55 of file R600InstrInfo.cpp.
void R600InstrInfo::addFlag | ( | MachineInstr & | MI, |
unsigned | Operand, | ||
unsigned | Flag | ||
) | const |
Add one of the MO_FLAG* flags to the specified Operand
.
Definition at line 1467 of file R600InstrInfo.cpp.
References clearFlag(), getFlagOp(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), HAS_NATIVE_OPERANDS, MO_FLAG_LAST, MO_FLAG_MASK, MO_FLAG_NOT_LAST, NUM_MO_FLAGS, and llvm::MachineOperand::setImm().
Referenced by llvm::R600TargetLowering::EmitInstrWithCustomInserter(), and insertBranch().
|
override |
Definition at line 675 of file R600InstrInfo.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineOperand::CreateReg(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::getLastNonDebugInstr(), llvm::MachineOperand::getMBB(), getOpcode(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), I, isBranch(), isJump(), isPredicateSetter(), and llvm::SmallVectorTemplateBase< T >::push_back().
MachineInstrBuilder R600InstrInfo::buildDefaultInstruction | ( | MachineBasicBlock & | MBB, |
MachineBasicBlock::iterator | I, | ||
unsigned | Opcode, | ||
unsigned | DstReg, | ||
unsigned | Src0Reg, | ||
unsigned | Src1Reg = 0 |
||
) | const |
buildDefaultInstruction - This function returns a MachineInstr with all the instruction modifiers initialized to their default values.
You can use this function to avoid manually specifying each instruction modifier operand when building a new instruction.
Definition at line 1239 of file R600InstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), and llvm::MachineBasicBlock::findDebugLoc().
Referenced by buildIndirectRead(), buildIndirectWrite(), buildMovImm(), buildMovInstr(), buildSlotOfVectorInstruction(), copyPhysReg(), and llvm::R600TargetLowering::EmitInstrWithCustomInserter().
MachineInstrBuilder R600InstrInfo::buildIndirectRead | ( | MachineBasicBlock * | MBB, |
MachineBasicBlock::iterator | I, | ||
unsigned | ValueReg, | ||
unsigned | Address, | ||
unsigned | OffsetReg | ||
) | const |
Build instruction(s) for an indirect register read.
Definition at line 1146 of file R600InstrInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), buildDefaultInstruction(), llvm::RegState::Implicit, llvm::RegState::Kill, llvm_unreachable, setImmOperand(), and write().
MachineInstrBuilder R600InstrInfo::buildIndirectWrite | ( | MachineBasicBlock * | MBB, |
MachineBasicBlock::iterator | I, | ||
unsigned | ValueReg, | ||
unsigned | Address, | ||
unsigned | OffsetReg | ||
) | const |
Build instruction(s) for an indirect register write.
Definition at line 1114 of file R600InstrInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::Address, buildDefaultInstruction(), I, llvm::RegState::Implicit, llvm::RegState::Kill, llvm_unreachable, setImmOperand(), and write().
MachineInstr * R600InstrInfo::buildMovImm | ( | MachineBasicBlock & | BB, |
MachineBasicBlock::iterator | I, | ||
unsigned | DstReg, | ||
uint64_t | Imm | ||
) | const |
Definition at line 1366 of file R600InstrInfo.cpp.
References buildDefaultInstruction(), and setImmOperand().
Referenced by llvm::R600TargetLowering::EmitInstrWithCustomInserter().
MachineInstr * R600InstrInfo::buildMovInstr | ( | MachineBasicBlock * | MBB, |
MachineBasicBlock::iterator | I, | ||
unsigned | DstReg, | ||
unsigned | SrcReg | ||
) | const |
Definition at line 1376 of file R600InstrInfo.cpp.
References buildDefaultInstruction().
Referenced by expandPostRAPseudo().
MachineInstr * R600InstrInfo::buildSlotOfVectorInstruction | ( | MachineBasicBlock & | MBB, |
MachineInstr * | MI, | ||
unsigned | Slot, | ||
unsigned | DstReg | ||
) | const |
Definition at line 1318 of file R600InstrInfo.cpp.
References assert(), buildDefaultInstruction(), llvm::R600Subtarget::getGeneration(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getOperandIdx(), llvm::MachineOperand::getReg(), getSlotedOps(), llvm::MachineOperand::isImm(), MI, llvm::AMDGPUSubtarget::R700, llvm::MachineOperand::setImm(), setImmOperand(), llvm::MachineOperand::setReg(), and write().
Calculate the "Indirect Address" for the given RegIndex
and Channel
.
We model indirect addressing using a virtual address space that can be accesed with loads and stores. The "Indirect Address" is the memory address in this virtual address space that maps to the given RegIndex
and Channel
.
Definition at line 1018 of file R600InstrInfo.cpp.
References assert().
Referenced by expandPostRAPseudo().
bool R600InstrInfo::canBeConsideredALU | ( | const MachineInstr & | MI | ) | const |
Opcode
represents an ALU instruction or an instruction that will be lowered in ExpandSpecialInstrs Pass. Definition at line 160 of file R600InstrInfo.cpp.
References llvm::MachineInstr::getOpcode(), isALUInstr(), isCubeOp(), and isVector().
void R600InstrInfo::clearFlag | ( | MachineInstr & | MI, |
unsigned | Operand, | ||
unsigned | Flag | ||
) | const |
Clear the specified flag on the instruction.
Definition at line 1488 of file R600InstrInfo.cpp.
References getFlagOp(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), HAS_NATIVE_OPERANDS, NUM_MO_FLAGS, and llvm::MachineOperand::setImm().
Referenced by addFlag(), and removeBranch().
|
override |
Definition at line 62 of file R600InstrInfo.cpp.
References buildDefaultInstruction(), contains(), llvm::RegState::Define, llvm::MachineInstr::getOperand(), getOperandIdx(), llvm::AMDGPURegisterInfo::getSubRegFromChannel(), I, llvm::RegState::Implicit, and llvm::MachineOperand::setIsKill().
|
override |
Definition at line 637 of file R600InstrInfo.cpp.
References llvm::TargetSubtargetInfo::getInstrItineraryData().
bool R600InstrInfo::definesAddressRegister | ( | MachineInstr & | MI | ) | const |
Definition at line 235 of file R600InstrInfo.cpp.
References llvm::MachineInstr::findRegisterDefOperandIdx().
|
override |
Definition at line 967 of file R600InstrInfo.cpp.
References llvm::MachineInstr::getOpcode(), and isPredicateSetter().
|
override |
Definition at line 1024 of file R600InstrInfo.cpp.
References llvm::Address, buildMovInstr(), calculateIndirectAddress(), llvm::MachineBasicBlock::erase(), llvm::MachineInstr::eraseFromParent(), llvm::R600RegisterInfo::getHWRegChan(), llvm::R600RegisterInfo::getHWRegIndex(), llvm::MachineOperand::getImm(), getIndirectAddrRegClass(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::TargetRegisterClass::getRegister(), isRegisterLoad(), isRegisterStore(), and MI.
bool R600InstrInfo::FindSwizzleForVectorSlot | ( | const std::vector< std::vector< std::pair< int, unsigned > > > & | IGSrcs, |
std::vector< R600InstrInfo::BankSwizzle > & | SwzCandidate, | ||
const std::vector< std::pair< int, unsigned > > & | TransSrcs, | ||
R600InstrInfo::BankSwizzle | TransSwz | ||
) | const |
Enumerate all possible Swizzle sequence to find one that can meet all read port requirements.
Definition at line 499 of file R600InstrInfo.cpp.
References isLegalUpTo(), and NextPossibleSolution().
Referenced by fitsReadPortLimitations().
bool R600InstrInfo::fitsConstReadLimitations | ( | const std::vector< MachineInstr *> & | MIs | ) | const |
An instruction group can only access 2 channel pair (either [XY] or [ZW]) from KCache bank on R700+.
This function check if MI set in input meet this limitations
Definition at line 609 of file R600InstrInfo.cpp.
References contains(), llvm::R600RegisterInfo::getHWRegChan(), llvm::MachineInstr::getOpcode(), getSrcs(), llvm::SmallSet< T, N, C >::insert(), isALUInstr(), and llvm::SmallSet< T, N, C >::size().
Referenced by llvm::R600TargetLowering::PerformDAGCombine(), and llvm::R600SchedStrategy::releaseBottomNode().
Same but using const index set instead of MI set.
Definition at line 584 of file R600InstrInfo.cpp.
References assert().
bool R600InstrInfo::fitsReadPortLimitations | ( | const std::vector< MachineInstr *> & | MIs, |
const DenseMap< unsigned, unsigned > & | PV, | ||
std::vector< BankSwizzle > & | BS, | ||
bool | isLastAluTrans | ||
) | const |
Given the order VEC_012 < VEC_021 < VEC_120 < VEC_102 < VEC_201 < VEC_210 returns true and the first (in lexical order) BankSwizzle affectation starting from the one already provided in the Instruction Group MIs that fits Read Port limitations in BS if available.
Otherwise returns false and undefined content in BS. isLastAluTrans should be set if the last Alu of MIs will be executed on Trans ALU. In this case, ValidTSwizzle returns the BankSwizzle value to apply to the last instruction. PV holds GPR to PV registers in the Instruction Group MIs.
Definition at line 536 of file R600InstrInfo.cpp.
References ALU_VEC_012_SCL_210, ALU_VEC_021_SCL_122, ALU_VEC_102_SCL_221, ALU_VEC_120_SCL_212, FindSwizzleForVectorSlot(), getOpcode(), getOperandIdx(), and isConstCompatible().
Definition at line 1502 of file R600InstrInfo.cpp.
References AMDGPUAS::CONSTANT_ADDRESS, llvm::PseudoSourceValue::ConstantPool, llvm::PseudoSourceValue::ExternalSymbolCallEntry, llvm::PseudoSourceValue::FixedStack, llvm::PseudoSourceValue::GlobalValueCallEntry, llvm::PseudoSourceValue::GOT, llvm::PseudoSourceValue::JumpTable, llvm_unreachable, AMDGPUAS::PRIVATE_ADDRESS, llvm::PseudoSourceValue::Stack, and llvm::PseudoSourceValue::TargetCustom.
MachineOperand & R600InstrInfo::getFlagOp | ( | MachineInstr & | MI, |
unsigned | SrcIdx = 0 , |
||
unsigned | Flag = 0 |
||
) | const |
SrcIdx | The register source to set the flag on (e.g src0, src1, src2) |
Flag | The flag being set. |
Definition at line 1402 of file R600InstrInfo.cpp.
References assert(), GET_FLAG_OPERAND_IDX, llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getOperandIdx(), HAS_NATIVE_OPERANDS, llvm::MachineOperand::isImm(), MO_FLAG_ABS, MO_FLAG_CLAMP, MO_FLAG_LAST, MO_FLAG_MASK, MO_FLAG_NEG, MO_FLAG_NOT_LAST, R600_InstFlag::OP3, and write().
Referenced by addFlag(), and clearFlag().
const TargetRegisterClass * R600InstrInfo::getIndirectAddrRegClass | ( | ) | const |
Definition at line 1110 of file R600InstrInfo.cpp.
Referenced by expandPostRAPseudo(), and getIndirectIndexBegin().
int R600InstrInfo::getIndirectIndexBegin | ( | const MachineFunction & | MF | ) | const |
Definition at line 1180 of file R600InstrInfo.cpp.
References llvm::TargetRegisterClass::contains(), llvm::MachineFunction::getFrameInfo(), getIndirectAddrRegClass(), llvm::MachineFrameInfo::getNumObjects(), llvm::TargetRegisterClass::getNumRegs(), llvm::MachineFunction::getRegInfo(), llvm::TargetRegisterClass::getRegister(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm::MachineRegisterInfo::livein_empty(), llvm::MachineRegisterInfo::liveins(), llvm::max(), MRI, and Reg.
Referenced by getIndirectIndexEnd().
int R600InstrInfo::getIndirectIndexEnd | ( | const MachineFunction & | MF | ) | const |
Definition at line 1213 of file R600InstrInfo.cpp.
References llvm::R600FrameLowering::getFrameIndexReference(), llvm::MachineFunction::getFrameInfo(), llvm::R600Subtarget::getFrameLowering(), getIndirectIndexBegin(), llvm::MachineFrameInfo::getNumObjects(), llvm::MachineFunction::getSubtarget(), and llvm::MachineFrameInfo::hasVarSizedObjects().
|
override |
Definition at line 1010 of file R600InstrInfo.cpp.
unsigned R600InstrInfo::getMaxAlusPerClause | ( | ) | const |
Definition at line 1235 of file R600InstrInfo.cpp.
int R600InstrInfo::getOperandIdx | ( | const MachineInstr & | MI, |
unsigned | Op | ||
) | const |
Get the index of Op in the MachineInstr.
Op
. Definition at line 1382 of file R600InstrInfo.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by buildSlotOfVectorInstruction(), copyPhysReg(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), fitsReadPortLimitations(), getFlagOp(), getSelIdx(), getSrcs(), isLDSRetInstr(), llvm::R600TargetLowering::PerformDAGCombine(), PredicateInstruction(), llvm::R600SchedStrategy::releaseBottomNode(), and setImmOperand().
Get the index of Op
for the given Opcode.
Op
. Definition at line 1386 of file R600InstrInfo.cpp.
References llvm::AMDGPU::getNamedOperandIdx().
|
override |
Definition at line 1006 of file R600InstrInfo.cpp.
|
inline |
Definition at line 72 of file R600InstrInfo.h.
References llvm::HexagonMCInstrInfo::isPredicated(), llvm::HexagonMCInstrInfo::isVector(), and TRI.
Referenced by llvm::createR600ISelDag(), and llvm::R600Subtarget::getRegisterInfo().
Definition at line 256 of file R600InstrInfo.cpp.
References getOperandIdx().
Referenced by llvm::R600TargetLowering::PerformDAGCombine().
SmallVector< std::pair< MachineOperand *, int64_t >, 3 > R600InstrInfo::getSrcs | ( | MachineInstr & | MI | ) | const |
Definition at line 280 of file R600InstrInfo.cpp.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::R600RegisterInfo::getHWRegChan(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getOperandIdx(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isGlobal(), llvm::MachineOperand::isImm(), MI, llvm::SmallVectorTemplateBase< T >::push_back(), and Reg.
Referenced by fitsConstReadLimitations().
Definition at line 140 of file R600InstrInfo.cpp.
References R600_InstFlag::OP1, R600_InstFlag::OP2, and R600_InstFlag::OP3.
|
override |
Definition at line 757 of file R600InstrInfo.cpp.
References addFlag(), llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), assert(), llvm::BuildMI(), llvm::ArrayRef< T >::empty(), llvm::MachineBasicBlock::end(), findFirstPredicateSetterFrom(), FindLastAluClause(), llvm::MachineInstr::getOperand(), llvm::RegState::Kill, MO_FLAG_PUSH, and llvm::MachineOperand::setImm().
Opcode
represents an ALU instruction. Definition at line 134 of file R600InstrInfo.cpp.
References R600_InstFlag::ALU_INST.
Referenced by canBeConsideredALU(), fitsConstReadLimitations(), readsLDSSrcReg(), and llvm::R600SchedStrategy::releaseBottomNode().
Definition at line 123 of file R600InstrInfo.cpp.
Referenced by canBeConsideredALU(), and llvm::R600SchedStrategy::releaseBottomNode().
Definition at line 196 of file R600InstrInfo.cpp.
References R600_InstFlag::IS_EXPORT.
bool llvm::R600InstrInfo::isFlagSet | ( | const MachineInstr & | MI, |
unsigned | Operand, | ||
unsigned | Flag | ||
) | const |
Determine if the specified Flag
is set on this Operand
.
Definition at line 148 of file R600InstrInfo.cpp.
References R600_InstFlag::LDS_1A, R600_InstFlag::LDS_1A1D, and R600_InstFlag::LDS_1A2D.
Referenced by isLDSRetInstr(), and llvm::R600SchedStrategy::releaseBottomNode().
Definition at line 156 of file R600InstrInfo.cpp.
References getOperandIdx(), and isLDSInstr().
Referenced by llvm::R600TargetLowering::EmitInstrWithCustomInserter().
|
override |
MBBI
can be moved into a new basic. Definition at line 97 of file R600InstrInfo.cpp.
References E, I, llvm::R600RegisterInfo::isPhysRegLiveAcrossClauses(), and llvm::TargetRegisterInfo::isVirtualRegister().
unsigned R600InstrInfo::isLegalUpTo | ( | const std::vector< std::vector< std::pair< int, unsigned > > > & | IGSrcs, |
const std::vector< R600InstrInfo::BankSwizzle > & | Swz, | ||
const std::vector< std::pair< int, unsigned > > & | TransSrcs, | ||
R600InstrInfo::BankSwizzle | TransSwz | ||
) | const |
returns how many MIs (whose inputs are represented by IGSrcs) can be packed in the same Instruction Group while meeting read port limitations given a Swz swizzle sequence.
Definition at line 430 of file R600InstrInfo.cpp.
References ALU_VEC_012_SCL_210, ALU_VEC_021_SCL_122, GET_REG_INDEX, getTransSwizzle(), llvm::Intrinsic::memset, and Swizzle().
Referenced by FindSwizzleForVectorSlot().
Definition at line 108 of file R600InstrInfo.cpp.
|
override |
Definition at line 878 of file R600InstrInfo.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::TargetInstrInfo::isPredicable(), and isVector().
|
override |
Definition at line 863 of file R600InstrInfo.cpp.
References llvm::MachineInstr::findFirstPredOperandIdx(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and Reg.
|
override |
Definition at line 920 of file R600InstrInfo.cpp.
|
override |
Definition at line 901 of file R600InstrInfo.cpp.
|
override |
Definition at line 909 of file R600InstrInfo.cpp.
|
override |
Definition at line 928 of file R600InstrInfo.cpp.
Definition at line 119 of file R600InstrInfo.cpp.
Referenced by llvm::R600SchedStrategy::releaseBottomNode().
|
inline |
Definition at line 322 of file R600InstrInfo.h.
References llvm::MachineInstr::getOpcode(), Kind, and llvm::R600InstrFlags::REGISTER_LOAD.
Referenced by expandPostRAPseudo().
|
inline |
Definition at line 318 of file R600InstrInfo.h.
References llvm::MachineInstr::getOpcode(), and llvm::R600InstrFlags::REGISTER_STORE.
Referenced by expandPostRAPseudo().
Definition at line 178 of file R600InstrInfo.cpp.
References llvm::R600Subtarget::hasCaymanISA().
Referenced by isTransOnly(), and llvm::R600SchedStrategy::releaseBottomNode().
bool R600InstrInfo::isTransOnly | ( | const MachineInstr & | MI | ) | const |
Definition at line 184 of file R600InstrInfo.cpp.
References llvm::MachineInstr::getOpcode(), and isTransOnly().
bool R600InstrInfo::isVector | ( | const MachineInstr & | MI | ) | const |
Vector instructions are instructions that must fill all instruction slots within an instruction group.
Definition at line 58 of file R600InstrInfo.cpp.
References llvm::MachineInstr::getOpcode(), and R600_InstFlag::VECTOR.
Referenced by canBeConsideredALU(), isPredicable(), and llvm::R600SchedStrategy::releaseBottomNode().
Definition at line 188 of file R600InstrInfo.cpp.
Referenced by isVectorOnly(), and llvm::R600SchedStrategy::releaseBottomNode().
bool R600InstrInfo::isVectorOnly | ( | const MachineInstr & | MI | ) | const |
Definition at line 192 of file R600InstrInfo.cpp.
References llvm::MachineInstr::getOpcode(), and isVectorOnly().
Definition at line 221 of file R600InstrInfo.cpp.
|
override |
Definition at line 972 of file R600InstrInfo.cpp.
References llvm::MachineInstrBuilder::addReg(), llvm::MachineInstr::findFirstPredOperandIdx(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), getOperandIdx(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), getReg(), llvm::RegState::Implicit, MI, llvm::MachineOperand::setImm(), and llvm::MachineOperand::setReg().
bool R600InstrInfo::readsLDSSrcReg | ( | const MachineInstr & | MI | ) | const |
Definition at line 239 of file R600InstrInfo.cpp.
References contains(), E, llvm::MachineInstr::getOpcode(), I, isALUInstr(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm::MachineInstr::operands_begin(), and llvm::MachineInstr::operands_end().
Referenced by llvm::R600SchedStrategy::releaseBottomNode().
|
override |
Definition at line 804 of file R600InstrInfo.cpp.
References assert(), llvm::MachineBasicBlock::begin(), clearFlag(), llvm::MachineBasicBlock::end(), findFirstPredicateSetterFrom(), FindLastAluClause(), I, and MO_FLAG_PUSH.
void R600InstrInfo::reserveIndirectRegisters | ( | BitVector & | Reserved, |
const MachineFunction & | MF, | ||
const R600RegisterInfo & | TRI | ||
) | const |
Reserve the registers that may be accesed using indirect addressing.
Definition at line 1090 of file R600InstrInfo.cpp.
References llvm::R600Subtarget::getFrameLowering(), llvm::AMDGPUFrameLowering::getStackWidth(), and llvm::MachineFunction::getSubtarget().
|
override |
Definition at line 934 of file R600InstrInfo.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineOperand::getReg(), llvm::MachineOperand::setImm(), and llvm::MachineOperand::setReg().
void R600InstrInfo::setImmOperand | ( | MachineInstr & | MI, |
unsigned | Op, | ||
int64_t | Imm | ||
) | const |
Helper function for setting instruction flag values.
Definition at line 1390 of file R600InstrInfo.cpp.
References assert(), llvm::MachineInstr::getOperand(), getOperandIdx(), llvm::MachineOperand::isImm(), and llvm::MachineOperand::setImm().
Referenced by buildIndirectRead(), buildIndirectWrite(), buildMovImm(), buildSlotOfVectorInstruction(), and llvm::R600TargetLowering::EmitInstrWithCustomInserter().
bool R600InstrInfo::usesAddressRegister | ( | MachineInstr & | MI | ) | const |
Definition at line 231 of file R600InstrInfo.cpp.
References llvm::MachineInstr::findRegisterUseOperandIdx().
Definition at line 210 of file R600InstrInfo.cpp.
References llvm::R600Subtarget::hasVertexCache(), IS_TEX, and IS_VTX.
Referenced by llvm::R600SchedStrategy::releaseBottomNode(), and usesTextureCache().
bool R600InstrInfo::usesTextureCache | ( | const MachineInstr & | MI | ) | const |
Definition at line 214 of file R600InstrInfo.cpp.
References llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), llvm::MachineInstr::getOpcode(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::AMDGPU::isCompute(), usesTextureCache(), and usesVertexCache().
Definition at line 200 of file R600InstrInfo.cpp.
References llvm::R600Subtarget::hasVertexCache(), and IS_VTX.
Referenced by llvm::R600SchedStrategy::releaseBottomNode(), usesTextureCache(), and usesVertexCache().
bool R600InstrInfo::usesVertexCache | ( | const MachineInstr & | MI | ) | const |
Definition at line 204 of file R600InstrInfo.cpp.
References llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), llvm::MachineInstr::getOpcode(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::AMDGPU::isCompute(), and usesVertexCache().