My Project
Public Types | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT > Class Template Reference

#include <StorageUniquerSupport.h>

Inheritance diagram for mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >:
Inheritance graph
[legend]
Collaboration diagram for mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >:
Collaboration graph
[legend]

Public Types

using Base = StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >
 Utility declarations for the concrete attribute class. More...
 
using ImplType = StorageT
 

Static Public Member Functions

static ClassIDgetClassID ()
 Return a unique identifier for the concrete type. More...
 
template<typename T >
static bool classof (T val)
 

Protected Member Functions

ImplTypegetImpl () const
 Utility for easy access to the storage instance. More...
 

Static Protected Member Functions

template<typename... Args>
static ConcreteT get (MLIRContext *ctx, unsigned kind, Args... args)
 
template<typename... Args>
static ConcreteT getChecked (const Location &loc, MLIRContext *ctx, unsigned kind, Args... args)
 
template<typename... Args>
static LogicalResult verifyConstructionInvariants (Args... args)
 Default implementation that just returns success. More...
 

Detailed Description

template<typename ConcreteT, typename BaseT, typename StorageT, typename UniquerT>
class mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >

Utility class for implementing users of storage classes uniqued by a StorageUniquer. Clients are not expected to interact with this class directly.

Member Typedef Documentation

◆ Base

template<typename ConcreteT , typename BaseT , typename StorageT , typename UniquerT >
using mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >::Base = StorageUserBase<ConcreteT, BaseT, StorageT, UniquerT>

Utility declarations for the concrete attribute class.

◆ ImplType

template<typename ConcreteT , typename BaseT , typename StorageT , typename UniquerT >
using mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >::ImplType = StorageT

Member Function Documentation

◆ classof()

template<typename ConcreteT , typename BaseT , typename StorageT , typename UniquerT >
template<typename T >
static bool mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >::classof ( val)
inlinestatic

Provide a default implementation of 'classof' that invokes a 'kindof' method on the concrete type.

◆ get()

template<typename ConcreteT , typename BaseT , typename StorageT , typename UniquerT >
template<typename... Args>
static ConcreteT mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >::get ( MLIRContext ctx,
unsigned  kind,
Args...  args 
)
inlinestaticprotected

Get or create a new ConcreteT instance within the ctx. This function is guaranteed to return a non null object and will assert if the arguments provided are invalid.

◆ getChecked()

template<typename ConcreteT , typename BaseT , typename StorageT , typename UniquerT >
template<typename... Args>
static ConcreteT mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >::getChecked ( const Location loc,
MLIRContext ctx,
unsigned  kind,
Args...  args 
)
inlinestaticprotected

Get or create a new ConcreteT instance within the ctx, defined at the given, potentially unknown, location. If the arguments provided are invalid then emit errors and return a null object.

◆ getClassID()

template<typename ConcreteT , typename BaseT , typename StorageT , typename UniquerT >
static ClassID* mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >::getClassID ( )
inlinestatic

Return a unique identifier for the concrete type.

◆ getImpl()

template<typename ConcreteT , typename BaseT , typename StorageT , typename UniquerT >
ImplType* mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >::getImpl ( ) const
inlineprotected

Utility for easy access to the storage instance.

◆ verifyConstructionInvariants()

template<typename ConcreteT , typename BaseT , typename StorageT , typename UniquerT >
template<typename... Args>
static LogicalResult mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT >::verifyConstructionInvariants ( Args...  args)
inlinestaticprotected

Default implementation that just returns success.


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