MLIR
21.0.0git
|
Base class for generic lattice anchor based on a concrete lattice anchor type and a content key. More...
#include "mlir/Analysis/DataFlowFramework.h"
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 Value & | getValue () const |
Get the contents of the lattice anchor. More... | |
![]() | |
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 | |
![]() | |
GenericLatticeAnchor (TypeID typeID) | |
Create an abstract lattice anchor with type identifier. More... | |
![]() | |
BaseStorage ()=default | |
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 200 of file DataFlowFramework.h.
using mlir::GenericLatticeAnchorBase< ConcreteT, Value >::Base = GenericLatticeAnchorBase<ConcreteT, Value> |
Alias for the base class.
Definition at line 206 of file DataFlowFramework.h.
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 204 of file DataFlowFramework.h.
|
inlineexplicit |
Construct an instance of the lattice anchor using the provided value and the type ID of the concrete type.
Definition at line 211 of file DataFlowFramework.h.
|
inlinestatic |
Provide LLVM-style RTTI using type IDs.
Definition at line 234 of file DataFlowFramework.h.
References mlir::GenericLatticeAnchor::getTypeID().
|
inlinestatic |
Allocate space for a lattice anchor and construct it in-place.
Definition at line 224 of file DataFlowFramework.h.
References mlir::StorageUniquer::StorageAllocator::allocate().
|
inlinestatic |
Get a uniqued instance of this lattice anchor class with the given arguments.
Definition at line 218 of file DataFlowFramework.h.
References mlir::StorageUniquer::get().
|
inline |
Get the contents of the lattice anchor.
Definition at line 239 of file DataFlowFramework.h.
|
inline |
Two lattice anchors are equal if their values are equal.
Definition at line 231 of file DataFlowFramework.h.