|
MLIR 22.0.0git
|
Program point represents a specific location in the execution of a program. More...
#include "mlir/Analysis/DataFlowFramework.h"
Public Types | |
| using | KeyTy = std::tuple<Block *, Block::iterator, Operation *> |
| The concrete key type used by the storage uniquer. | |
Public Member Functions | |
| ProgramPoint (Block *parentBlock, Block::iterator pp) | |
| Creates a new program point at the given location. | |
| ProgramPoint (Operation *op) | |
| Creates a new program point at the given operation. | |
| ProgramPoint () | |
| Create a empty program point. | |
| ProgramPoint (const ProgramPoint &point) | |
| Create a new program point from the given program point. | |
| bool | isNull () const |
| Returns true if this program point is set. | |
| bool | operator== (const KeyTy &key) const |
| Two program points are equal if their block and iterator are equal. | |
| bool | operator== (const ProgramPoint &pp) const |
| Block * | getBlock () const |
| Get the block contains this program point. | |
| Block::iterator | getPoint () const |
| Get the the iterator this program point refers to. | |
| Operation * | getOperation () const |
| Get the the iterator this program point refers to. | |
| Operation * | getNextOp () const |
| Get the next operation of this program point. | |
| Operation * | getPrevOp () const |
| Get the previous operation of this program point. | |
| bool | isBlockStart () const |
| bool | isBlockEnd () const |
| void | print (raw_ostream &os) const |
| Print the program point. | |
Static Public Member Functions | |
| static ProgramPoint * | construct (StorageUniquer::StorageAllocator &alloc, KeyTy &&key) |
Additional Inherited Members | |
| Protected Member Functions inherited from mlir::StorageUniquer::BaseStorage | |
| BaseStorage ()=default | |
Program point represents a specific location in the execution of a program.
A sequence of program points can be combined into a control flow graph.
Definition at line 57 of file DataFlowFramework.h.
| using mlir::ProgramPoint::KeyTy = std::tuple<Block *, Block::iterator, Operation *> |
The concrete key type used by the storage uniquer.
This class is uniqued by its contents.
Definition at line 67 of file DataFlowFramework.h.
|
inline |
Creates a new program point at the given location.
Definition at line 59 of file DataFlowFramework.h.
Referenced by construct(), operator==(), and ProgramPoint().
|
inline |
Creates a new program point at the given operation.
Definition at line 63 of file DataFlowFramework.h.
|
inline |
Create a empty program point.
Definition at line 70 of file DataFlowFramework.h.
Referenced by construct().
|
inline |
Create a new program point from the given program point.
Definition at line 73 of file DataFlowFramework.h.
References getPoint(), and ProgramPoint().
|
inlinestatic |
Definition at line 79 of file DataFlowFramework.h.
References mlir::StorageUniquer::StorageAllocator::allocate(), ProgramPoint(), and ProgramPoint().
|
inline |
Get the block contains this program point.
Definition at line 102 of file DataFlowFramework.h.
Referenced by llvm::DenseMapInfo< mlir::ProgramPoint >::getHashValue(), mlir::LatticeAnchor::getLoc(), mlir::dataflow::AbstractDenseBackwardDataFlowAnalysis::visit(), mlir::dataflow::AbstractDenseForwardDataFlowAnalysis::visit(), mlir::dataflow::AbstractSparseForwardDataFlowAnalysis::visit(), and mlir::dataflow::AbstractDenseForwardDataFlowAnalysis::visitRegionBranchOperation().
|
inline |
Get the next operation of this program point.
Definition at line 111 of file DataFlowFramework.h.
References isBlockEnd().
Referenced by print(), and mlir::dataflow::AbstractDenseBackwardDataFlowAnalysis::visit().
|
inline |
Get the the iterator this program point refers to.
Definition at line 108 of file DataFlowFramework.h.
|
inline |
Get the the iterator this program point refers to.
Definition at line 105 of file DataFlowFramework.h.
Referenced by llvm::DenseMapInfo< mlir::ProgramPoint >::getHashValue(), and ProgramPoint().
|
inline |
Get the previous operation of this program point.
Definition at line 123 of file DataFlowFramework.h.
References isBlockStart().
Referenced by mlir::LatticeAnchor::getLoc(), print(), mlir::dataflow::AbstractDenseForwardDataFlowAnalysis::visit(), mlir::dataflow::AbstractSparseBackwardDataFlowAnalysis::visit(), mlir::dataflow::AbstractSparseForwardDataFlowAnalysis::visit(), mlir::dataflow::DeadCodeAnalysis::visit(), and mlir::dataflow::AbstractDenseForwardDataFlowAnalysis::visitRegionBranchOperation().
|
inline |
Definition at line 136 of file DataFlowFramework.h.
Referenced by getNextOp(), and mlir::dataflow::AbstractDenseBackwardDataFlowAnalysis::visit().
|
inline |
Definition at line 134 of file DataFlowFramework.h.
Referenced by mlir::LatticeAnchor::getLoc(), getPrevOp(), print(), mlir::dataflow::AbstractDenseForwardDataFlowAnalysis::visit(), mlir::dataflow::AbstractSparseBackwardDataFlowAnalysis::visit(), mlir::dataflow::AbstractSparseForwardDataFlowAnalysis::visit(), mlir::dataflow::DeadCodeAnalysis::visit(), and mlir::dataflow::AbstractDenseForwardDataFlowAnalysis::visitRegionBranchOperation().
|
inline |
Returns true if this program point is set.
Definition at line 89 of file DataFlowFramework.h.
Referenced by print().
Two program points are equal if their block and iterator are equal.
Definition at line 92 of file DataFlowFramework.h.
|
inline |
Definition at line 97 of file DataFlowFramework.h.
References ProgramPoint().
| void ProgramPoint::print | ( | raw_ostream & | os | ) | const |
Print the program point.
Definition at line 60 of file DataFlowFramework.cpp.
References getNextOp(), getPrevOp(), isBlockStart(), and isNull().
Referenced by mlir::operator<<().