MLIR  16.0.0git
Public Member Functions | Protected Member Functions | List of all members
mlir::GenericProgramPoint Class Referenceabstract

Abstract class for generic program points. More...

#include "mlir/Analysis/DataFlowFramework.h"

+ Inheritance diagram for mlir::GenericProgramPoint:
+ Collaboration diagram for mlir::GenericProgramPoint:

Public Member Functions

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...
 

Protected Member Functions

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

Detailed Description

Abstract class for generic program points.

In classical data-flow analysis, programs points represent positions in a program to which lattice elements are attached. In sparse data-flow analysis, these can be SSA values, and in dense data-flow analysis, these are the program points before and after every operation.

In the general MLIR data-flow analysis framework, program points are an extensible concept. Program points are uniquely identifiable objects to which analysis states can be attached. The semantics of program points are defined by the analyses that specify their transfer functions.

Program points are implemented using MLIR's storage uniquer framework and type ID system to provide RTTI.

Definition at line 68 of file DataFlowFramework.h.

Constructor & Destructor Documentation

◆ ~GenericProgramPoint()

GenericProgramPoint::~GenericProgramPoint ( )
virtualdefault

◆ GenericProgramPoint()

mlir::GenericProgramPoint::GenericProgramPoint ( TypeID  typeID)
inlineexplicitprotected

Create an abstract program point with type identifier.

Definition at line 83 of file DataFlowFramework.h.

Member Function Documentation

◆ getLoc()

virtual Location mlir::GenericProgramPoint::getLoc ( ) const
pure virtual

Get a derived source location for the program point.

Implemented in mlir::dataflow::CFGEdge.

◆ getTypeID()

TypeID mlir::GenericProgramPoint::getTypeID ( ) const
inline

Get the abstract program point's type identifier.

Definition at line 73 of file DataFlowFramework.h.

References print().

Referenced by mlir::GenericProgramPointBase< CFGEdge, std::pair< Block *, Block *> >::classof().

◆ print()

virtual void mlir::GenericProgramPoint::print ( raw_ostream &  os) const
pure virtual

Print the program point.

Implemented in mlir::dataflow::CFGEdge.


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