MLIR 22.0.0git
mlir::pdl::PDLType Class Reference

This class represents the base class of all PDL types. More...

#include "mlir/Dialect/PDL/IR/PDLTypes.h"

Inheritance diagram for mlir::pdl::PDLType:

Public Member Functions

constexpr Type ()=default
 Type (const ImplType *impl)
 Type (const Type &other)=default
Public Member Functions inherited from mlir::Type
constexpr Type ()=default
 Type (const ImplType *impl)
 Type (const Type &other)=default
Typeoperator= (const Type &other)=default
bool operator== (Type other) const
bool operator!= (Type other) const
 operator bool () const
bool operator! () const
TypeID getTypeID ()
 Return a unique identifier for the concrete type.
MLIRContextgetContext () const
 Return the MLIRContext in which this type was uniqued.
DialectgetDialect () const
 Get the dialect this type is registered to.
bool isIndex () const
bool isBF16 () const
bool isF16 () const
bool isTF32 () const
bool isF32 () const
bool isF64 () const
bool isF80 () const
bool isF128 () const
bool isFloat () const
 Return true if this is an float type (with the specified width).
bool isFloat (unsigned width) const
 Return true if this is a float type with the specified width.
bool isInteger () const
 Return true if this is an integer type (with the specified width).
bool isInteger (unsigned width) const
bool isSignlessInteger () const
 Return true if this is a signless integer type (with the specified width).
bool isSignlessInteger (unsigned width) const
bool isSignedInteger () const
 Return true if this is a signed integer type (with the specified width).
bool isSignedInteger (unsigned width) const
bool isUnsignedInteger () const
 Return true if this is an unsigned integer type (with the specified width).
bool isUnsignedInteger (unsigned width) const
unsigned getIntOrFloatBitWidth () const
 Return the bit width of an integer or a float type, assert failure on other types.
bool isSignlessIntOrIndex () const
 Return true if this is a signless integer or index type.
bool isSignlessIntOrIndexOrFloat () const
 Return true if this is a signless integer, index, or float type.
bool isSignlessIntOrFloat () const
 Return true of this is a signless integer or a float type.
bool isIntOrIndex () const
 Return true if this is an integer (of any signedness) or an index type.
bool isIntOrFloat () const
 Return true if this is an integer (of any signedness) or a float type.
bool isIntOrIndexOrFloat () const
 Return true if this is an integer (of any signedness), index, or float type.
void print (raw_ostream &os) const
 Print the current type.
void print (raw_ostream &os, AsmState &state) const
void dump () const
friend::llvm::hash_code hash_value (Type arg)
const voidgetAsOpaquePointer () const
 Methods for supporting PointerLikeTypeTraits.
template<typename InterfaceT>
bool hasPromiseOrImplementsInterface ()
 Returns true if InterfaceT has been promised by the dialect or implemented.
template<template< typename T > class Trait>
bool hasTrait ()
 Returns true if the type was registered with a particular trait.
const AbstractTygetAbstractType () const
 Return the abstract type descriptor for this type.
ImplTypegetImpl () const
 Return the Type implementation.
void walkImmediateSubElements (function_ref< void(Attribute)> walkAttrsFn, function_ref< void(Type)> walkTypesFn) const
 Walk all of the immediately nested sub-attributes and sub-types.
auto replaceImmediateSubElements (ArrayRef< Attribute > replAttrs, ArrayRef< Type > replTypes) const
 Replace the immediately nested sub-attributes and sub-types with those provided.
template<WalkOrder Order = WalkOrder::PostOrder, typename... WalkFns>
auto walk (WalkFns &&...walkFns)
 Walk this type and all attibutes/types nested within using the provided walk functions.
template<typename... ReplacementFns>
auto replace (ReplacementFns &&...replacementFns)
 Recursively replace all of the nested sub-attributes and sub-types using the provided map functions.

Static Public Member Functions

static bool classof (Type type)
Static Public Member Functions inherited from mlir::Type
static Type getFromOpaquePointer (const void *pointer)

Additional Inherited Members

Public Types inherited from mlir::Type
template<typename ConcreteType, typename BaseType, typename StorageType, template< typename T > class... Traits>
using TypeBase
 Utility class for implementing types.
using ImplType = TypeStorage
using AbstractTy = AbstractType
Protected Attributes inherited from mlir::Type
ImplTypeimpl {nullptr}

Detailed Description

This class represents the base class of all PDL types.

Definition at line 25 of file PDLTypes.h.

Member Function Documentation

◆ classof()

bool PDLType::classof ( Type type)
static

Definition at line 58 of file PDLTypes.cpp.

References mlir::Type::getDialect(), and Type().

◆ Type() [1/3]

mlir::Type::Type ( )
constexprdefault

Referenced by classof().

◆ Type() [2/3]

mlir::Type::Type ( const ImplType * impl)
inline

Definition at line 87 of file Types.h.

◆ Type() [3/3]

mlir::Type::Type ( const Type & other)
default

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