LLVM 20.0.0git
Classes | Namespaces | Enumerations
GIMatchTableExecutor.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/Bitset.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGenTypes/LowLevelType.h"
#include "llvm/IR/Function.h"
#include "llvm/Transforms/Utils/SizeOpts.h"
#include <bitset>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <initializer_list>
#include <optional>
#include <vector>

Go to the source code of this file.

Classes

class  llvm::GIMatchTableExecutor
 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...
 
struct  llvm::GIMatchTableExecutor::MatcherState
 
struct  llvm::GIMatchTableExecutor::ExecInfoTy< PredicateBitset, ComplexMatcherMemFn, CustomRendererFn >
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Enumerations

enum  { llvm::GICXXPred_Invalid = 0 , llvm::GICXXCustomAction_Invalid = 0 }
 
enum  {
  llvm::GIM_Try , llvm::GIM_SwitchOpcode , llvm::GIM_SwitchType , llvm::GIM_RecordInsn ,
  llvm::GIM_RecordInsnIgnoreCopies , llvm::GIM_CheckFeatures , llvm::GIM_CheckOpcode , llvm::GIM_CheckOpcodeIsEither ,
  llvm::GIM_CheckNumOperands , llvm::GIM_CheckNumOperandsLE , llvm::GIM_CheckNumOperandsGE , llvm::GIM_CheckI64ImmPredicate ,
  llvm::GIM_CheckAPIntImmPredicate , llvm::GIM_CheckAPFloatImmPredicate , llvm::GIM_CheckImmOperandPredicate , llvm::GIM_CheckAtomicOrdering ,
  llvm::GIM_CheckAtomicOrderingOrStrongerThan , llvm::GIM_CheckAtomicOrderingWeakerThan , llvm::GIM_CheckMemorySizeEqualTo , llvm::GIM_CheckMemoryAddressSpace ,
  llvm::GIM_CheckMemoryAlignment , llvm::GIM_CheckMemorySizeEqualToLLT , llvm::GIM_CheckMemorySizeLessThanLLT , llvm::GIM_CheckMemorySizeGreaterThanLLT ,
  llvm::GIM_CheckIsBuildVectorAllOnes , llvm::GIM_CheckIsBuildVectorAllZeros , llvm::GIM_CheckSimplePredicate , llvm::GIM_CheckCxxInsnPredicate ,
  llvm::GIM_CheckHasNoUse , llvm::GIM_CheckHasOneUse , llvm::GIM_CheckType , llvm::GIM_RootCheckType ,
  llvm::GIM_CheckPointerToAny , llvm::GIM_CheckRegBankForClass , llvm::GIM_RootCheckRegBankForClass , llvm::GIM_CheckComplexPattern ,
  llvm::GIM_CheckConstantInt , llvm::GIM_CheckConstantInt8 , llvm::GIM_CheckLiteralInt , llvm::GIM_CheckIntrinsicID ,
  llvm::GIM_CheckCmpPredicate , llvm::GIM_CheckIsMBB , llvm::GIM_CheckIsImm , llvm::GIM_CheckIsSafeToFold ,
  llvm::GIM_CheckIsSameOperand , llvm::GIM_CheckIsSameOperandIgnoreCopies , llvm::GIM_CheckAllSameOperand , llvm::GIM_CheckAllSameOperandIgnoreCopies ,
  llvm::GIM_CheckCanReplaceReg , llvm::GIM_MIFlags , llvm::GIM_MIFlagsNot , llvm::GIM_RecordNamedOperand ,
  llvm::GIM_RecordRegType , llvm::GIM_Reject , llvm::GIR_MutateOpcode , llvm::GIR_BuildMI ,
  llvm::GIR_BuildRootMI , llvm::GIR_BuildConstant , llvm::GIR_Copy , llvm::GIR_RootToRootCopy ,
  llvm::GIR_CopyRemaining , llvm::GIR_CopyOrAddZeroReg , llvm::GIR_CopySubReg , llvm::GIR_AddImplicitDef ,
  llvm::GIR_AddImplicitUse , llvm::GIR_AddRegister , llvm::GIR_AddIntrinsicID , llvm::GIR_SetImplicitDefDead ,
  llvm::GIR_SetMIFlags , llvm::GIR_UnsetMIFlags , llvm::GIR_CopyMIFlags , llvm::GIR_AddTempRegister ,
  llvm::GIR_AddSimpleTempRegister , llvm::GIR_AddTempSubRegister , llvm::GIR_AddImm , llvm::GIR_AddImm8 ,
  llvm::GIR_AddCImm , llvm::GIR_ComplexRenderer , llvm::GIR_ComplexSubOperandRenderer , llvm::GIR_ComplexSubOperandSubRegRenderer ,
  llvm::GIR_CustomRenderer , llvm::GIR_DoneWithCustomAction , llvm::GIR_CustomOperandRenderer , llvm::GIR_CopyConstantAsSImm ,
  llvm::GIR_CopyFConstantAsFPImm , llvm::GIR_ConstrainOperandRC , llvm::GIR_ConstrainSelectedInstOperands , llvm::GIR_RootConstrainSelectedInstOperands ,
  llvm::GIR_MergeMemOperands , llvm::GIR_EraseFromParent , llvm::GIR_EraseRootFromParent_Done , llvm::GIR_MakeTempReg ,
  llvm::GIR_ReplaceReg , llvm::GIR_ReplaceRegWithTempReg , llvm::GIR_Done , llvm::GIR_Coverage ,
  llvm::GIU_NumOpcodes
}
 The MatchTable is encoded as an array of bytes. More...