MLIR 22.0.0git
SliceAnalysis.cpp File Reference
#include "mlir/Analysis/SliceAnalysis.h"
#include "mlir/Analysis/TopologicalSortUtils.h"
#include "mlir/IR/Block.h"
#include "mlir/IR/Operation.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SetVector.h"

Go to the source code of this file.

Functions

static void getForwardSliceImpl (Operation *op, DenseSet< Operation * > &visited, SetVector< Operation * > *forwardSlice, const SliceOptions::TransitiveFilter &filter=nullptr)
static LogicalResult getBackwardSliceImpl (Operation *op, DenseSet< Operation * > &visited, SetVector< Operation * > *backwardSlice, const BackwardSliceOptions &options)
static bool dependsOnCarriedVals (Value value, ArrayRef< BlockArgument > iterCarriedArgs, Operation *ancestorOp)
 Returns true if value (transitively) depends on iteration-carried values of the given ancestorOp.

Function Documentation

◆ dependsOnCarriedVals()

bool dependsOnCarriedVals ( Value value,
ArrayRef< BlockArgument > iterCarriedArgs,
Operation * ancestorOp )
static

Returns true if value (transitively) depends on iteration-carried values of the given ancestorOp.

Definition at line 235 of file SliceAnalysis.cpp.

References mlir::SliceOptions::filter, mlir::getBackwardSlice(), mlir::Operation::isAncestor(), and result.

Referenced by mlir::matchReduction().

◆ getBackwardSliceImpl()

◆ getForwardSliceImpl()

void getForwardSliceImpl ( Operation * op,
DenseSet< Operation * > & visited,
SetVector< Operation * > * forwardSlice,
const SliceOptions::TransitiveFilter & filter = nullptr )
static