|
LLVM 24.0.0git
|
#include "llvm/CodeGen/GlobalISel/InstructionSelector.h"
Public Member Functions | |
| ~InstructionSelector () override | |
| virtual bool | select (MachineInstr &I)=0 |
Select the (possibly generic) instruction I to only use target-specific opcodes. | |
| Public Member Functions inherited from llvm::GIMatchTableExecutor | |
| virtual | ~GIMatchTableExecutor ()=default |
| virtual void | setupGeneratedPerFunctionState (MachineFunction &MF)=0 |
| virtual void | setupMF (MachineFunction &mf, GISelValueTracking *vt, CodeGenCoverage *covinfo=nullptr, ProfileSummaryInfo *psi=nullptr, BlockFrequencyInfo *bfi=nullptr) |
| Setup per-MF executor state. | |
Public Attributes | |
| 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 |
Additional Inherited Members | |
| Static Public Member Functions inherited from llvm::GIMatchTableExecutor | |
| static LLVM_ATTRIBUTE_ALWAYS_INLINE uint64_t | fastDecodeULEB128 (const uint8_t *LLVM_ATTRIBUTE_RESTRICT MatchTable, uint64_t &CurrentIdx) |
| Protected Types inherited from llvm::GIMatchTableExecutor | |
| using | ComplexRendererFns |
| using | RecordedMIVector = SmallVector<MachineInstr *, 4> |
| using | NewMIVector = SmallVector<MachineInstrBuilder, 4> |
| Static Protected Member Functions inherited from llvm::GIMatchTableExecutor | |
| template<typename Ty> | |
| static Ty | readBytesAs (const uint8_t *MatchTable) |
| static ArrayRef< MachineOperand > | getRemainingOperands (const MachineInstr &MI, unsigned FirstVarOp) |
Definition at line 24 of file InstructionSelector.h.
|
overridedefault |
|
protected |
Definition at line 17 of file InstructionSelector.cpp.
References llvm::MachineInstrBuilder::add(), assert(), MI, and OpIdx.
|
pure virtual |
Select the (possibly generic) instruction I to only use target-specific opcodes.
It is OK to insert multiple instructions, but they cannot be generic pre-isel instructions.
Implemented in llvm::AMDGPUInstructionSelector.
References I.
| GISelObserverWrapper* llvm::InstructionSelector::AllObservers = nullptr |
Note: InstructionSelect does not track changed instructions.
changingInstr() and changedInstr() will never be called on these observers.
Definition at line 45 of file InstructionSelector.h.
| MachineOptimizationRemarkEmitter* llvm::InstructionSelector::MORE = nullptr |
Definition at line 40 of file InstructionSelector.h.