9 #ifndef MLIR_ANALYSIS_SLICEANALYSIS_H_ 10 #define MLIR_ANALYSIS_SLICEANALYSIS_H_ 17 #include "llvm/ADT/SetVector.h" 241 #endif // MLIR_ANALYSIS_SLICEANALYSIS_H_ Include the generated interface declarations.
Operation is a basic unit of execution within MLIR.
void getBackwardSlice(Operation *op, SetVector< Operation *> *backwardSlice, TransitiveFilter filter=nullptr)
Fills backwardSlice with the computed backward slice (i.e.
SetVector< Operation * > getSlice(Operation *op, TransitiveFilter backwardFilter=nullptr, TransitiveFilter forwardFilter=nullptr)
Iteratively computes backward slices and forward slices until a fixed point is reached.
SetVector< Operation * > topologicalSort(const SetVector< Operation *> &toSort)
Multi-root DAG topological sort.
void getForwardSlice(Operation *op, SetVector< Operation *> *forwardSlice, TransitiveFilter filter=nullptr)
Fills forwardSlice with the computed forward slice (i.e.
Value matchReduction(ArrayRef< BlockArgument > iterCarriedArgs, unsigned redPos, SmallVectorImpl< Operation *> &combinerOps)
Utility to match a generic reduction given a list of iteration-carried arguments, iterCarriedArgs and...
This class represents an instance of an SSA value in the MLIR system, representing a computable value...