MLIR  20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | List of all members
mlir::GenericLatticeAnchorBase< ConcreteT, Value > Class Template Reference

Base class for generic lattice anchor based on a concrete lattice anchor type and a content key. More...

#include "mlir/Analysis/DataFlowFramework.h"

+ Inheritance diagram for mlir::GenericLatticeAnchorBase< ConcreteT, Value >:

Public Types

using KeyTy = Value
 The concrete key type used by the storage uniquer. More...
 
using Base = GenericLatticeAnchorBase< ConcreteT, Value >
 Alias for the base class. More...
 

Public Member Functions

template<typename ValueT >
 GenericLatticeAnchorBase (ValueT &&value)
 Construct an instance of the lattice anchor using the provided value and the type ID of the concrete type. More...
 
bool operator== (const Value &value) const
 Two lattice anchors are equal if their values are equal. More...
 
const ValuegetValue () const
 Get the contents of the lattice anchor. More...
 
- Public Member Functions inherited from mlir::GenericLatticeAnchor
virtual ~GenericLatticeAnchor ()
 
TypeID getTypeID () const
 Get the abstract lattice anchor's type identifier. More...
 
virtual Location getLoc () const =0
 Get a derived source location for the lattice anchor. More...
 
virtual void print (raw_ostream &os) const =0
 Print the lattice anchor. More...
 

Static Public Member Functions

template<typename... Args>
static ConcreteT * get (StorageUniquer &uniquer, Args &&...args)
 Get a uniqued instance of this lattice anchor class with the given arguments. More...
 
template<typename ValueT >
static ConcreteT * construct (StorageUniquer::StorageAllocator &alloc, ValueT &&value)
 Allocate space for a lattice anchor and construct it in-place. More...
 
static bool classof (const GenericLatticeAnchor *point)
 Provide LLVM-style RTTI using type IDs. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mlir::GenericLatticeAnchor
 GenericLatticeAnchor (TypeID typeID)
 Create an abstract lattice anchor with type identifier. More...
 
- Protected Member Functions inherited from mlir::StorageUniquer::BaseStorage
 BaseStorage ()=default
 

Detailed Description

template<typename ConcreteT, typename Value>
class mlir::GenericLatticeAnchorBase< ConcreteT, Value >

Base class for generic lattice anchor based on a concrete lattice anchor type and a content key.

This class defines the common methods required for operability with the storage uniquer framework.

The provided key type uniquely identifies the concrete lattice anchor instance and are the data members of the class.

Definition at line 199 of file DataFlowFramework.h.

Member Typedef Documentation

◆ Base

template<typename ConcreteT , typename Value >
using mlir::GenericLatticeAnchorBase< ConcreteT, Value >::Base = GenericLatticeAnchorBase<ConcreteT, Value>

Alias for the base class.

Definition at line 205 of file DataFlowFramework.h.

◆ KeyTy

template<typename ConcreteT , typename Value >
using mlir::GenericLatticeAnchorBase< ConcreteT, Value >::KeyTy = Value

The concrete key type used by the storage uniquer.

This class is uniqued by its contents.

Definition at line 203 of file DataFlowFramework.h.

Constructor & Destructor Documentation

◆ GenericLatticeAnchorBase()

template<typename ConcreteT , typename Value >
template<typename ValueT >
mlir::GenericLatticeAnchorBase< ConcreteT, Value >::GenericLatticeAnchorBase ( ValueT &&  value)
inlineexplicit

Construct an instance of the lattice anchor using the provided value and the type ID of the concrete type.

Definition at line 210 of file DataFlowFramework.h.

Member Function Documentation

◆ classof()

template<typename ConcreteT , typename Value >
static bool mlir::GenericLatticeAnchorBase< ConcreteT, Value >::classof ( const GenericLatticeAnchor point)
inlinestatic

Provide LLVM-style RTTI using type IDs.

Definition at line 233 of file DataFlowFramework.h.

References mlir::GenericLatticeAnchor::getTypeID().

◆ construct()

template<typename ConcreteT , typename Value >
template<typename ValueT >
static ConcreteT* mlir::GenericLatticeAnchorBase< ConcreteT, Value >::construct ( StorageUniquer::StorageAllocator alloc,
ValueT &&  value 
)
inlinestatic

Allocate space for a lattice anchor and construct it in-place.

Definition at line 223 of file DataFlowFramework.h.

References mlir::StorageUniquer::StorageAllocator::allocate().

◆ get()

template<typename ConcreteT , typename Value >
template<typename... Args>
static ConcreteT* mlir::GenericLatticeAnchorBase< ConcreteT, Value >::get ( StorageUniquer uniquer,
Args &&...  args 
)
inlinestatic

Get a uniqued instance of this lattice anchor class with the given arguments.

Definition at line 217 of file DataFlowFramework.h.

References mlir::StorageUniquer::get().

◆ getValue()

template<typename ConcreteT , typename Value >
const Value& mlir::GenericLatticeAnchorBase< ConcreteT, Value >::getValue ( ) const
inline

Get the contents of the lattice anchor.

Definition at line 238 of file DataFlowFramework.h.

◆ operator==()

template<typename ConcreteT , typename Value >
bool mlir::GenericLatticeAnchorBase< ConcreteT, Value >::operator== ( const Value value) const
inline

Two lattice anchors are equal if their values are equal.

Definition at line 230 of file DataFlowFramework.h.


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