|
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 getBlock(), getOperation(), getPoint(), and ProgramPoint().
|
inlinestatic |
Definition at line 77 of file DataFlowFramework.h.
References mlir::StorageUniquer::StorageAllocator::allocate(), ProgramPoint(), and ProgramPoint().
|
inline |
Get the block contains this program point.
Definition at line 100 of file DataFlowFramework.h.
Referenced by llvm::DenseMapInfo< mlir::ProgramPoint >::getHashValue(), mlir::LatticeAnchor::getLoc(), ProgramPoint(), 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 109 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 106 of file DataFlowFramework.h.
Referenced by ProgramPoint().
|
inline |
Get the the iterator this program point refers to.
Definition at line 103 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 121 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 134 of file DataFlowFramework.h.
Referenced by getNextOp(), print(), and mlir::dataflow::AbstractDenseBackwardDataFlowAnalysis::visit().
|
inline |
Definition at line 132 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 87 of file DataFlowFramework.h.
Referenced by print().
Two program points are equal if their block and iterator are equal.
Definition at line 90 of file DataFlowFramework.h.
|
inline |
Definition at line 95 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(), isBlockEnd(), isBlockStart(), and isNull().
Referenced by mlir::operator<<().