MLIR  20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind > Class Template Reference

Base class for all predicates, used to allow efficient pointer comparison. More...

#include "Conversion/PDLToPDLInterp/Predicate.h"

+ Inheritance diagram for mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >:

Public Types

using KeyTy = Key
 
using Base = PredicateBase< ConcreteT, BaseT, Key, Kind >
 

Public Member Functions

template<typename KeyT >
 PredicateBase (KeyT &&key)
 
bool operator== (const KeyTy &key) const
 Utility methods required by the storage allocator. More...
 
const KeyTygetValue () const
 Return the key value of this predicate. More...
 

Static Public Member Functions

template<typename... Args>
static ConcreteT * get (StorageUniquer &uniquer, Args &&...args)
 Get an instance of this position. More...
 
template<typename KeyT >
static ConcreteT * construct (StorageUniquer::StorageAllocator &alloc, KeyT &&key)
 Construct an instance with the given storage allocator. More...
 
static bool classof (const BaseT *pred)
 

Protected Attributes

KeyTy key
 

Detailed Description

template<typename ConcreteT, typename BaseT, typename Key, Predicates::Kind Kind>
class mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >

Base class for all predicates, used to allow efficient pointer comparison.

Definition at line 84 of file Predicate.h.

Member Typedef Documentation

◆ Base

template<typename ConcreteT , typename BaseT , typename Key , Predicates::Kind Kind>
using mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::Base = PredicateBase<ConcreteT, BaseT, Key, Kind>

Definition at line 87 of file Predicate.h.

◆ KeyTy

template<typename ConcreteT , typename BaseT , typename Key , Predicates::Kind Kind>
using mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::KeyTy = Key

Definition at line 86 of file Predicate.h.

Constructor & Destructor Documentation

◆ PredicateBase()

template<typename ConcreteT , typename BaseT , typename Key , Predicates::Kind Kind>
template<typename KeyT >
mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::PredicateBase ( KeyT &&  key)
inlineexplicit

Definition at line 90 of file Predicate.h.

Member Function Documentation

◆ classof()

template<typename ConcreteT , typename BaseT , typename Key , Predicates::Kind Kind>
static bool mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::classof ( const BaseT pred)
inlinestatic

Definition at line 108 of file Predicate.h.

◆ construct()

template<typename ConcreteT , typename BaseT , typename Key , Predicates::Kind Kind>
template<typename KeyT >
static ConcreteT* mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::construct ( StorageUniquer::StorageAllocator alloc,
KeyT &&  key 
)
inlinestatic

◆ get()

template<typename ConcreteT , typename BaseT , typename Key , Predicates::Kind Kind>
template<typename... Args>
static ConcreteT* mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::get ( StorageUniquer uniquer,
Args &&...  args 
)
inlinestatic

Get an instance of this position.

Definition at line 95 of file Predicate.h.

References mlir::StorageUniquer::get().

Referenced by mlir::pdl_to_pdl_interp::OperationPosition::get(), and mlir::pdl_to_pdl_interp::OperationPosition::getRoot().

◆ getValue()

template<typename ConcreteT , typename BaseT , typename Key , Predicates::Kind Kind>
const KeyTy& mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::getValue ( ) const
inline

Return the key value of this predicate.

Definition at line 111 of file Predicate.h.

References mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::key.

Referenced by getTreePredicates().

◆ operator==()

template<typename ConcreteT , typename BaseT , typename Key , Predicates::Kind Kind>
bool mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::operator== ( const KeyTy key) const
inline

Utility methods required by the storage allocator.

Definition at line 107 of file Predicate.h.

References mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::key.

Member Data Documentation

◆ key

template<typename ConcreteT , typename BaseT , typename Key , Predicates::Kind Kind>
KeyTy mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::key
protected

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