LLVM 20.0.0git
Classes | Public Member Functions | Public Attributes | List of all members
llvm::LegalityQuery Struct Reference

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_ostreamprint (raw_ostream &OS) const
 

Public Attributes

unsigned Opcode
 
ArrayRef< LLTTypes
 
ArrayRef< MemDescMMODescrs
 Operations which require memory can use this to place requirements on the memory type for each MMO.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ LegalityQuery() [1/2]

constexpr llvm::LegalityQuery::LegalityQuery ( unsigned  Opcode,
const ArrayRef< LLT Types,
const ArrayRef< MemDesc MMODescrs 
)
inlineconstexpr

Definition at line 131 of file LegalizerInfo.h.

◆ LegalityQuery() [2/2]

constexpr llvm::LegalityQuery::LegalityQuery ( unsigned  Opcode,
const ArrayRef< LLT Types 
)
inlineconstexpr

Definition at line 134 of file LegalizerInfo.h.

Member Function Documentation

◆ print()

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().

Member Data Documentation

◆ MMODescrs

ArrayRef<MemDesc> llvm::LegalityQuery::MMODescrs

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().

◆ Opcode

unsigned llvm::LegalityQuery::Opcode

◆ Types

ArrayRef<LLT> llvm::LegalityQuery::Types

The documentation for this struct was generated from the following files: