MLIR  20.0.0git
Functions
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"
#include "llvm/ADT/SmallPtrSet.h"

Go to the source code of this file.

Functions

static void getForwardSliceImpl (Operation *op, SetVector< Operation * > *forwardSlice, const SliceOptions::TransitiveFilter &filter=nullptr)
 
static void getBackwardSliceImpl (Operation *op, 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. More...
 

Function Documentation

◆ dependsOnCarriedVals()

static 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 187 of file SliceAnalysis.cpp.

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

Referenced by mlir::matchReduction().

◆ getBackwardSliceImpl()

static void getBackwardSliceImpl ( Operation op,
SetVector< Operation * > *  backwardSlice,
const BackwardSliceOptions options 
)
static

◆ getForwardSliceImpl()

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