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

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

Inheritance diagram for llvm::AMDGPUInstructionSelector:

Public Member Functions
AMDGPUInstructionSelector (const GCNSubtarget &STI, const AMDGPURegisterBankInfo &RBI, const AMDGPUTargetMachine &TM)
bool select (MachineInstr &I) override
Select the (possibly generic) instruction I to only use target-specific opcodes.
void setupMF (MachineFunction &MF, GISelValueTracking *VT, CodeGenCoverage *CoverageInfo, ProfileSummaryInfo *PSI, BlockFrequencyInfo *BFI) override
Setup per-MF executor state.
Public Member Functions inherited from llvm::InstructionSelector
~InstructionSelector () override
Public Member Functions inherited from llvm::GIMatchTableExecutor
virtual ~GIMatchTableExecutor ()=default
virtual void setupGeneratedPerFunctionState (MachineFunction &MF)=0
Additional Inherited Members
Public Attributes inherited from llvm::InstructionSelector
MachineOptimizationRemarkEmitter * MORE = nullptr
GISelObserverWrapper * AllObservers = nullptr
Note: InstructionSelect does not track changed instructions.
Public Attributes inherited from llvm::GIMatchTableExecutor
CodeGenCoverage * CoverageInfo = nullptr
GISelValueTracking * VT = nullptr
MachineFunction * MF = nullptr
ProfileSummaryInfo * PSI = nullptr
BlockFrequencyInfo * BFI = nullptr
MachineBasicBlock * CurMBB = nullptr
Protected Types inherited from llvm::GIMatchTableExecutor
using ComplexRendererFns
using RecordedMIVector = SmallVector<MachineInstr *, 4>
using NewMIVector = SmallVector<MachineInstrBuilder, 4>
Protected Member Functions inherited from llvm::GIMatchTableExecutor
bool shouldOptForSize (const MachineFunction *MF) const
LLVM_ABI GIMatchTableExecutor ()
template<class TgtExecutor, class PredicateBitset, class ComplexMatcherMemFn, class CustomRendererFn>
bool executeMatchTable (TgtExecutor &Exec, MatcherState &State, const ExecInfoTy< PredicateBitset, ComplexMatcherMemFn, CustomRendererFn > &ExecInfo, MachineIRBuilder &Builder, const uint8_t *MatchTable, const TargetInstrInfo &TII, MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI, const RegisterBankInfo &RBI, const PredicateBitset &AvailableFeatures, CodeGenCoverage *CoverageInfo) const
Execute a given matcher table and return true if the match was successful and false otherwise.
virtual const uint8_t * getMatchTable () const
virtual bool testImmPredicate_I64 (unsigned, int64_t) const
virtual bool testImmPredicate_APInt (unsigned, const APInt &) const
virtual bool testImmPredicate_APFloat (unsigned, const APFloat &) const
virtual bool testMIPredicate_MI (unsigned, const MachineInstr &, const MatcherState &State) const
virtual bool testMOPredicate_MO (unsigned, const MachineOperand &, const MatcherState &State) const
virtual bool testSimplePredicate (unsigned) const
virtual bool runCustomAction (unsigned, const MatcherState &State, NewMIVector &OutMIs) const
LLVM_ABI bool isOperandImmEqual (const MachineOperand &MO, int64_t Value, const MachineRegisterInfo &MRI, bool Splat=false) const
LLVM_ABI bool isBaseWithConstantOffset (const MachineOperand &Root, const MachineRegisterInfo &MRI) const
Return true if the specified operand is a G_PTR_ADD with a G_CONSTANT on the right-hand side.
LLVM_ABI bool isObviouslySafeToFold (MachineInstr &MI, MachineInstr &IntoMI) const
Return true if MI can obviously be folded into IntoMI.
Static Protected Member Functions inherited from llvm::GIMatchTableExecutor
template
static Ty readBytesAs (const uint8_t *MatchTable)
static ArrayRef< MachineOperand > getRemainingOperands (const MachineInstr &MI, unsigned FirstVarOp)

Detailed Description

Definition at line 48 of file AMDGPUInstructionSelector.h.

Constructor & Destructor Documentation

Member Function Documentation

getName()

const char * llvm::AMDGPUInstructionSelector::getName ( ) static

select()

setupMF()


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