MLIR  20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT > Struct Template Reference

A utility CRTP base class that defines many of the necessary utilities for defining a PDLL AST Type. More...

#include "Tools/PDLL/AST/TypeDetail.h"

+ Inheritance diagram for mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >:

Public Types

using KeyTy = KeyT
 
using Base = TypeStorageBase< ConcreteT, KeyT >
 

Public Member Functions

 TypeStorageBase (KeyTy key)
 
bool operator== (const KeyTy &key) const
 Utility methods required by the storage allocator. More...
 
const KeyTygetValue () const
 Return the key value of this storage class. More...
 
- Public Member Functions inherited from mlir::pdll::ast::Type::Storage
 Storage (TypeID typeID)
 

Static Public Member Functions

static ConcreteT * construct (StorageUniquer::StorageAllocator &alloc, const KeyTy &key)
 Construct an instance with the given storage allocator. More...
 

Protected Attributes

KeyTy key
 

Additional Inherited Members

- Public Attributes inherited from mlir::pdll::ast::Type::Storage
TypeID typeID
 The type identifier for the derived type class. More...
 
- Protected Member Functions inherited from mlir::StorageUniquer::BaseStorage
 BaseStorage ()=default
 

Detailed Description

template<typename ConcreteT, typename KeyT = void>
struct mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >

A utility CRTP base class that defines many of the necessary utilities for defining a PDLL AST Type.

Definition at line 33 of file TypeDetail.h.

Member Typedef Documentation

◆ Base

template<typename ConcreteT , typename KeyT = void>
using mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >::Base = TypeStorageBase<ConcreteT, KeyT>

Definition at line 35 of file TypeDetail.h.

◆ KeyTy

template<typename ConcreteT , typename KeyT = void>
using mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >::KeyTy = KeyT

Definition at line 34 of file TypeDetail.h.

Constructor & Destructor Documentation

◆ TypeStorageBase()

template<typename ConcreteT , typename KeyT = void>
mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >::TypeStorageBase ( KeyTy  key)
inline

Definition at line 36 of file TypeDetail.h.

Member Function Documentation

◆ construct()

template<typename ConcreteT , typename KeyT = void>
static ConcreteT* mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >::construct ( StorageUniquer::StorageAllocator alloc,
const KeyTy key 
)
inlinestatic

Construct an instance with the given storage allocator.

Definition at line 40 of file TypeDetail.h.

References mlir::StorageUniquer::StorageAllocator::allocate(), and mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >::key.

◆ getValue()

template<typename ConcreteT , typename KeyT = void>
const KeyTy& mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >::getValue ( ) const
inline

Return the key value of this storage class.

Definition at line 49 of file TypeDetail.h.

References mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >::key.

◆ operator==()

template<typename ConcreteT , typename KeyT = void>
bool mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >::operator== ( const KeyTy key) const
inline

Utility methods required by the storage allocator.

Definition at line 46 of file TypeDetail.h.

References mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >::key.

Member Data Documentation

◆ key

template<typename ConcreteT , typename KeyT = void>
KeyTy mlir::pdll::ast::detail::TypeStorageBase< ConcreteT, KeyT >::key
protected

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