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

Base class for generic program points based on a concrete program point type and a content key. More...

#include "mlir/Analysis/DataFlowFramework.h"

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

Public Types

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

Public Member Functions

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

Static Public Member Functions

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

Additional Inherited Members

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

Detailed Description

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

Base class for generic program points based on a concrete program point 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 program point instance and are the data members of the class.

Definition at line 102 of file DataFlowFramework.h.

Member Typedef Documentation

◆ Base

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

Alias for the base class.

Definition at line 108 of file DataFlowFramework.h.

◆ KeyTy

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

The concrete key type used by the storage uniquer.

This class is uniqued by its contents.

Definition at line 106 of file DataFlowFramework.h.

Constructor & Destructor Documentation

◆ GenericProgramPointBase()

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

Construct an instance of the program point using the provided value and the type ID of the concrete type.

Definition at line 113 of file DataFlowFramework.h.

Member Function Documentation

◆ classof()

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

Provide LLVM-style RTTI using type IDs.

Definition at line 136 of file DataFlowFramework.h.

References mlir::GenericProgramPoint::getTypeID().

◆ construct()

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

Allocate space for a program point and construct it in-place.

Definition at line 126 of file DataFlowFramework.h.

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

◆ get()

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

Get a uniqued instance of this program point class with the given arguments.

Definition at line 120 of file DataFlowFramework.h.

References mlir::StorageUniquer::get().

◆ getValue()

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

Get the contents of the program point.

Definition at line 141 of file DataFlowFramework.h.

◆ operator==()

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

Two program points are equal if their values are equal.

Definition at line 133 of file DataFlowFramework.h.


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