#include "llvm/CodeGen/GlobalISel/InstructionSelector.h"
|
CodeGenCoverage * | CoverageInfo = nullptr |
|
GISelKnownBits * | KB = nullptr |
|
MachineFunction * | MF = nullptr |
|
ProfileSummaryInfo * | PSI = nullptr |
|
BlockFrequencyInfo * | BFI = nullptr |
|
MachineBasicBlock * | CurMBB = nullptr |
|
using | ComplexRendererFns = std::optional< SmallVector< std::function< void(MachineInstrBuilder &)>, 4 > > |
|
using | RecordedMIVector = SmallVector< MachineInstr *, 4 > |
|
using | NewMIVector = SmallVector< MachineInstrBuilder, 4 > |
|
bool | shouldOptForSize (const MachineFunction *MF) const |
|
| GIMatchTableExecutor () |
|
template<class TgtExecutor , class PredicateBitset , class ComplexMatcherMemFn , class CustomRendererFn > |
bool | executeMatchTable (TgtExecutor &Exec, NewMIVector &OutMIs, MatcherState &State, const ExecInfoTy< PredicateBitset, ComplexMatcherMemFn, CustomRendererFn > &ISelInfo, const int64_t *MatchTable, const TargetInstrInfo &TII, MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI, const RegisterBankInfo &RBI, const PredicateBitset &AvailableFeatures, CodeGenCoverage *CoverageInfo, GISelChangeObserver *Observer=nullptr) const |
| Execute a given matcher table and return true if the match was successful and false otherwise.
|
|
virtual const int64_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 | testSimplePredicate (unsigned) const |
|
virtual void | runCustomAction (unsigned, const MatcherState &State, NewMIVector &OutMIs) const |
|
bool | isOperandImmEqual (const MachineOperand &MO, int64_t Value, const MachineRegisterInfo &MRI, bool Splat=false) const |
|
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.
|
|
bool | isObviouslySafeToFold (MachineInstr &MI, MachineInstr &IntoMI) const |
| Return true if MI can obviously be folded into IntoMI.
|
|
Definition at line 19 of file InstructionSelector.h.
◆ ~InstructionSelector()
llvm::InstructionSelector::~InstructionSelector |
( |
| ) |
|
|
virtualdefault |
◆ select()
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.
- Returns
- whether selection succeeded.
- Precondition
- I.getParent() && I.getParent()->getParent()
- Postcondition
- if returns true: for I in all mutated/inserted instructions: !isPreISelGenericOpcode(I.getOpcode())
Implemented in llvm::AMDGPUInstructionSelector.
Referenced by llvm::InstructionSelect::runOnMachineFunction().
The documentation for this class was generated from the following files: