MLIR 22.0.0git
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.
const KeyTygetValue () const
 Return the key value of this predicate.

Static Public Member Functions

template<typename... Args>
static ConcreteT * get (StorageUniquer &uniquer, Args &&...args)
 Get an instance of this position.
template<typename KeyT>
static ConcreteT * construct (StorageUniquer::StorageAllocator &alloc, KeyT &&key)
 Construct an instance with the given storage allocator.
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.

References key.

Member Function Documentation

◆ classof()

template<typename ConcreteT, typename BaseT, typename Key, Predicates::Kind Kind>
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>
ConcreteT * mlir::pdl_to_pdl_interp::PredicateBase< ConcreteT, BaseT, Key, Kind >::construct ( StorageUniquer::StorageAllocator & alloc,
KeyT && key )
inlinestatic

Construct an instance with the given storage allocator.

Definition at line 101 of file Predicate.h.

References mlir::StorageUniquer::StorageAllocator::allocate(), and key.

Referenced by mlir::pdl_to_pdl_interp::ConstraintQuestion::construct().

◆ get()

template<typename ConcreteT, typename BaseT, typename Key, Predicates::Kind Kind>
template<typename... Args>
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 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 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

Definition at line 114 of file Predicate.h.

Referenced by construct(), getValue(), operator==(), and PredicateBase().


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