LLVM: llvm::GIMatchTableExecutor Class Reference (original) (raw)
Provides the logic to execute GlobalISel match tables, which are used by the instruction selector and instruction combiners as their engine to match and apply MIR patterns. More...
#include "[llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h](GIMatchTableExecutor%5F8h%5Fsource.html)"
| Public Attributes | |
|---|---|
| CodeGenCoverage * | CoverageInfo = nullptr |
| GISelValueTracking * | VT = nullptr |
| MachineFunction * | MF = nullptr |
| ProfileSummaryInfo * | PSI = nullptr |
| BlockFrequencyInfo * | BFI = nullptr |
| MachineBasicBlock * | CurMBB = nullptr |
Provides the logic to execute GlobalISel match tables, which are used by the instruction selector and instruction combiners as their engine to match and apply MIR patterns.
Definition at line 593 of file GIMatchTableExecutor.h.
◆ ComplexRendererFns
Initial value:
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Definition at line 622 of file GIMatchTableExecutor.h.
◆ NewMIVector
◆ RecordedMIVector
| virtual llvm::GIMatchTableExecutor::~GIMatchTableExecutor ( ) | virtualdefault |
|---|
◆ GIMatchTableExecutor()
| GIMatchTableExecutor::GIMatchTableExecutor ( ) | protecteddefault |
|---|
◆ executeMatchTable()
template<class TgtExecutor, class PredicateBitset, class ComplexMatcherMemFn, class CustomRendererFn>
| bool llvm::GIMatchTableExecutor::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 | protected |
|---|
Execute a given matcher table and return true if the match was successful and false otherwise.
Definition at line 43 of file GIMatchTableExecutorImpl.h.
References AbstractManglingParser< Derived, Alloc >::NumOps, llvm::MachineInstrBuilder::add(), assert(), llvm::canReplaceReg(), llvm::GISelChangeObserver::changedInstr(), llvm::GISelChangeObserver::changingAllUsesOfReg(), llvm::GISelChangeObserver::changingInstr(), llvm::GIMatchTableExecutor::ExecInfoTy< PredicateBitset, ComplexMatcherMemFn, CustomRendererFn >::ComplexPredicates, llvm::constrainOperandRegClass(), llvm::constrainSelectedInstRegOperands(), CoverageInfo, llvm::GIMatchTableExecutor::ExecInfoTy< PredicateBitset, ComplexMatcherMemFn, CustomRendererFn >::CustomRenderers, llvm::dbgs(), DEBUG_WITH_TYPE, llvm::Default, llvm::drop_begin(), E(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::ConstantInt::equalsInt(), llvm::GISelChangeObserver::erasingInstr(), fastDecodeULEB128(), llvm::GIMatchTableExecutor::ExecInfoTy< PredicateBitset, ComplexMatcherMemFn, CustomRendererFn >::FeatureBitsets, llvm::GISelChangeObserver::finishedChangingAllUsesOfReg(), llvm::IntegerType::get(), llvm::MachineMemOperand::getAddrSpace(), llvm::MachineMemOperand::getAlign(), llvm::MachineOperand::getCImm(), llvm::getDefIgnoringCopies(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIntrinsicID(), llvm::MachineInstr::getMF(), llvm::MachineOperand::getPredicate(), llvm::MachineOperand::getReg(), llvm::RegisterBankInfo::getRegBank(), llvm::RegisterBankInfo::getRegBankFromRegClass(), llvm::LLT::getScalarSizeInBits(), llvm::MachineMemOperand::getSize(), llvm::MachineMemOperand::getSizeInBits(), llvm::getSrcRegIgnoringCopies(), llvm::LocationSize::getValue(), llvm::GICXXCustomAction_Invalid, llvm::GICXXPred_Invalid, llvm::GIM_CheckAPFloatImmPredicate, llvm::GIM_CheckAPIntImmPredicate, llvm::GIM_CheckAtomicOrdering, llvm::GIM_CheckAtomicOrderingOrStrongerThan, llvm::GIM_CheckAtomicOrderingWeakerThan, llvm::GIM_CheckCanReplaceReg, llvm::GIM_CheckCmpPredicate, llvm::GIM_CheckComplexPattern, llvm::GIM_CheckConstantInt, llvm::GIM_CheckConstantInt8, llvm::GIM_CheckCxxInsnPredicate, llvm::GIM_CheckFeatures, llvm::GIM_CheckHasNoUse, llvm::GIM_CheckHasOneUse, llvm::GIM_CheckI64ImmPredicate, llvm::GIM_CheckImmOperandPredicate, llvm::GIM_CheckIntrinsicID, llvm::GIM_CheckIsBuildVectorAllOnes, llvm::GIM_CheckIsBuildVectorAllZeros, llvm::GIM_CheckIsImm, llvm::GIM_CheckIsMBB, llvm::GIM_CheckIsSafeToFold, llvm::GIM_CheckIsSameOperand, llvm::GIM_CheckIsSameOperandIgnoreCopies, llvm::GIM_CheckLeafOperandPredicate, llvm::GIM_CheckLiteralInt, llvm::GIM_CheckMemoryAddressSpace, llvm::GIM_CheckMemoryAlignment, llvm::GIM_CheckMemorySizeEqualTo, llvm::GIM_CheckMemorySizeEqualToLLT, llvm::GIM_CheckMemorySizeGreaterThanLLT, llvm::GIM_CheckMemorySizeLessThanLLT, llvm::GIM_CheckNumOperands, llvm::GIM_CheckNumOperandsGE, llvm::GIM_CheckNumOperandsLE, llvm::GIM_CheckOpcode, llvm::GIM_CheckOpcodeIsEither, llvm::GIM_CheckPointerToAny, llvm::GIM_CheckRegBankForClass, llvm::GIM_CheckSimplePredicate, llvm::GIM_CheckType, llvm::GIM_MIFlags, llvm::GIM_MIFlagsNot, llvm::GIM_RecordInsn, llvm::GIM_RecordInsnIgnoreCopies, llvm::GIM_RecordNamedOperand, llvm::GIM_RecordRegType, llvm::GIM_Reject, llvm::GIM_RootCheckRegBankForClass, llvm::GIM_RootCheckType, llvm::GIM_SwitchOpcode, llvm::GIM_SwitchType, llvm::GIM_Try, llvm::GIR_AddCImm, llvm::GIR_AddImm, llvm::GIR_AddImm8, llvm::GIR_AddImplicitDef, llvm::GIR_AddImplicitUse, llvm::GIR_AddIntrinsicID, llvm::GIR_AddRegister, llvm::GIR_AddSimpleTempRegister, llvm::GIR_AddTempRegister, llvm::GIR_AddTempSubRegister, llvm::GIR_BuildConstant, llvm::GIR_BuildMI, llvm::GIR_BuildRootMI, llvm::GIR_ComplexRenderer, llvm::GIR_ComplexSubOperandRenderer, llvm::GIR_ComplexSubOperandSubRegRenderer, llvm::GIR_ConstrainOperandRC, llvm::GIR_ConstrainSelectedInstOperands, llvm::GIR_Copy, llvm::GIR_CopyConstantAsSImm, llvm::GIR_CopyFConstantAsFPImm, llvm::GIR_CopyMIFlags, llvm::GIR_CopyOrAddZeroReg, llvm::GIR_CopyRemaining, llvm::GIR_CopySubReg, llvm::GIR_Coverage, llvm::GIR_CustomOperandRenderer, llvm::GIR_CustomRenderer, llvm::GIR_Done, llvm::GIR_DoneWithCustomAction, llvm::GIR_EraseFromParent, llvm::GIR_EraseRootFromParent_Done, llvm::GIR_MakeTempReg, llvm::GIR_MergeMemOperands, llvm::GIR_MutateOpcode, llvm::GIR_ReplaceReg, llvm::GIR_ReplaceRegWithTempReg, llvm::GIR_RootConstrainSelectedInstOperands, llvm::GIR_RootToRootCopy, llvm::GIR_SetImplicitDefDead, llvm::GIR_SetMIFlags, llvm::GIR_UnsetMIFlags, I, llvm::RegState::Implicit, llvm::isAtLeastOrStrongerThan(), llvm::isBuildVectorAllOnes(), llvm::isBuildVectorAllZeros(), llvm::MachineOperand::isCImm(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isIntrinsicID(), llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >::isKnownGE(), llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >::isKnownLE(), isObviouslySafeToFold(), isOperandImmEqual(), llvm::Register::isPhysical(), llvm::MachineOperand::isPredicate(), llvm::MachineOperand::isReg(), llvm::isStrongerThan(), llvm_unreachable, MF, MI, llvm::MinAlign(), MRI, llvm::MachineInstr::NoFPExcept, llvm::MachineInstr::operands(), OpIdx, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), readBytesAs(), llvm::SmallVectorImpl< T >::resize(), runCustomAction(), llvm::SignExtend64(), Size, llvm::SmallVectorTemplateCommon< T, typename >::size(), SubReg, llvm::Success, testImmPredicate_APFloat(), testImmPredicate_APInt(), testImmPredicate_I64(), testMIPredicate_MI(), testMOPredicate_MO(), testSimplePredicate(), TII, TRI, llvm::GIMatchTableExecutor::ExecInfoTy< PredicateBitset, ComplexMatcherMemFn, CustomRendererFn >::TypeIDMap, and llvm::GIMatchTableExecutor::ExecInfoTy< PredicateBitset, ComplexMatcherMemFn, CustomRendererFn >::TypeObjects.
◆ fastDecodeULEB128()
◆ getMatchTable()
| virtual const uint8_t * llvm::GIMatchTableExecutor::getMatchTable ( ) const | inlineprotectedvirtual |
|---|
◆ getRemainingOperands()
◆ isBaseWithConstantOffset()
◆ isObviouslySafeToFold()
◆ isOperandImmEqual()
◆ readBytesAs()
template
| Ty llvm::GIMatchTableExecutor::readBytesAs ( const uint8_t * MatchTable) | inlinestaticprotected |
|---|
◆ runCustomAction()
◆ setupGeneratedPerFunctionState()
| virtual void llvm::GIMatchTableExecutor::setupGeneratedPerFunctionState ( MachineFunction & MF) | pure virtual |
|---|
◆ setupMF()
◆ shouldOptForSize()
◆ testImmPredicate_APFloat()
◆ testImmPredicate_APInt()
◆ testImmPredicate_I64()
| virtual bool llvm::GIMatchTableExecutor::testImmPredicate_I64 ( unsigned , int64_t ) const | inlineprotectedvirtual |
|---|
◆ testMIPredicate_MI()
◆ testMOPredicate_MO()
◆ testSimplePredicate()
| virtual bool llvm::GIMatchTableExecutor::testSimplePredicate ( unsigned ) const | inlineprotectedvirtual |
|---|
◆ BFI
◆ CoverageInfo
◆ CurMBB
◆ MF
◆ PSI
◆ VT
The documentation for this class was generated from the following files:
- include/llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h
- include/llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h
- lib/CodeGen/GlobalISel/GIMatchTableExecutor.cpp