LLVM  14.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"

Collaboration diagram for llvm::LegalityQuery:
Collaboration graph
[legend]

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. More...
 

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 106 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 128 of file LegalizerInfo.h.

◆ LegalityQuery() [2/2]

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

Definition at line 131 of file LegalizerInfo.h.

Member Function Documentation

◆ print()

raw_ostream & LegalityQuery::print ( raw_ostream OS) const

Definition at line 82 of file LegalizerInfo.cpp.

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 126 of file LegalizerInfo.h.

Referenced by llvm::AArch64LegalizerInfo::AArch64LegalizerInfo(), CheckTy0Ty1MemSizeAlign(), isLoadStoreSizeLegal(), llvm::MipsLegalizerInfo::MipsLegalizerInfo(), and shouldWidenLoad().

◆ Opcode

unsigned llvm::LegalityQuery::Opcode

◆ Types

ArrayRef<LLT> llvm::LegalityQuery::Types

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