LLVM 20.0.0git
|
The LegalityQuery object bundles together all the information that's needed to decide whether a given operation is legal or not. More...
#include "llvm/CodeGen/GlobalISel/LegalizerInfo.h"
Classes | |
struct | MemDesc |
Public Member Functions | |
constexpr | LegalityQuery (unsigned Opcode, const ArrayRef< LLT > Types, const ArrayRef< MemDesc > MMODescrs) |
constexpr | LegalityQuery (unsigned Opcode, const ArrayRef< LLT > Types) |
raw_ostream & | print (raw_ostream &OS) const |
Public Attributes | |
unsigned | Opcode |
ArrayRef< LLT > | Types |
ArrayRef< MemDesc > | MMODescrs |
Operations which require memory can use this to place requirements on the memory type for each MMO. | |
The LegalityQuery object bundles together all the information that's needed to decide whether a given operation is legal or not.
For efficiency, it doesn't make a copy of Types so care must be taken not to free it before using the query.
Definition at line 109 of file LegalizerInfo.h.
|
inlineconstexpr |
Definition at line 131 of file LegalizerInfo.h.
|
inlineconstexpr |
Definition at line 134 of file LegalizerInfo.h.
raw_ostream & LegalityQuery::print | ( | raw_ostream & | OS | ) | const |
Definition at line 79 of file LegalizerInfo.cpp.
References MMODescrs, Opcode, OS, and Types.
Referenced by llvm::LegalizeRuleSet::apply().
Operations which require memory can use this to place requirements on the memory type for each MMO.
Definition at line 129 of file LegalizerInfo.h.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), CheckTy0Ty1MemSizeAlign(), isLoadStoreSizeLegal(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), print(), and shouldWidenLoad().
unsigned llvm::LegalityQuery::Opcode |
Definition at line 110 of file LegalizerInfo.h.
Referenced by llvm::LegacyLegalizerInfo::getAction(), llvm::LegalizerInfo::getAction(), isLoadStoreSizeLegal(), print(), and llvm::X86LegalizerInfo::X86LegalizerInfo().
Definition at line 111 of file LegalizerInfo.h.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::LegalizeRuleSet::alignNumElementsTo(), CheckTy0Ty1MemSizeAlign(), CheckTyN(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), llvm::LegacyLegalizerInfo::getAction(), hasNoSimpleLoops(), isLoadStoreLegal(), isLoadStoreSizeLegal(), llvm::LegalizeRuleSet::maxScalarEltSameAsIf(), llvm::LegalizeRuleSet::maxScalarIf(), llvm::LegalizeRuleSet::maxScalarSameAs(), llvm::LegalizeRuleSet::minScalarEltSameAsIf(), llvm::LegalizeRuleSet::minScalarIf(), llvm::LegalizeRuleSet::minScalarSameAs(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), mutationIsSane(), print(), shouldWidenLoad(), llvm::LegalizeRuleSet::widenVectorEltsToVectorMinSize(), and llvm::X86LegalizerInfo::X86LegalizerInfo().