|
LLVM 24.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, ArrayRef< LLT > Types, ArrayRef< MemDesc > MMODescrs={}, ArrayRef< int64_t > Immediates={}) |
| LLVM_ABI 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. | |
| ArrayRef< int64_t > | Immediates |
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 106 of file LegalizerInfo.h.
|
inlineconstexpr |
Definition at line 132 of file LegalizerInfo.h.
| raw_ostream & LegalityQuery::print | ( | raw_ostream & | OS | ) | const |
Definition at line 82 of file LegalizerInfo.cpp.
References Immediates, MMODescrs, Opcode, and Types.
Referenced by llvm::LegalizeRuleSet::apply().
| ArrayRef<int64_t> llvm::LegalityQuery::Immediates |
Definition at line 130 of file LegalizerInfo.h.
Referenced by print().
Operations which require memory can use this to place requirements on the memory type for each MMO.
Definition at line 128 of file LegalizerInfo.h.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), CheckTy0Ty1MemSizeAlign(), isLoadStoreSizeLegal(), LegalityQuery(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), print(), shouldWidenLoad(), and llvm::X86LegalizerInfo::X86LegalizerInfo().
| unsigned llvm::LegalityQuery::Opcode |
Definition at line 107 of file LegalizerInfo.h.
Referenced by llvm::LegalizerInfo::getAction(), isLoadStoreSizeLegal(), LegalityQuery(), print(), and llvm::X86LegalizerInfo::X86LegalizerInfo().
Definition at line 108 of file LegalizerInfo.h.
Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), llvm::LegalizeRuleSet::alignNumElementsTo(), CheckTy0Ty1MemSizeAlign(), CheckTyN(), llvm::LegalizeRuleSet::clampMaxNumElements(), llvm::LegalizeRuleSet::clampMinNumElements(), hasNoSimpleLoops(), isLoadStoreLegal(), isLoadStoreSizeLegal(), LegalityQuery(), 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::SPIRVLegalizerInfo::SPIRVLegalizerInfo(), llvm::LegalizeRuleSet::widenVectorEltsToVectorMinSize(), and llvm::X86LegalizerInfo::X86LegalizerInfo().