MLIR  16.0.0git
Functions
SliceAnalysis.cpp File Reference
#include "mlir/Analysis/SliceAnalysis.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/Operation.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
+ Include dependency graph for SliceAnalysis.cpp:

Go to the source code of this file.

Functions

static void getForwardSliceImpl (Operation *op, SetVector< Operation * > *forwardSlice, TransitiveFilter filter)
 
static void getBackwardSliceImpl (Operation *op, SetVector< Operation * > *backwardSlice, TransitiveFilter filter)
 
static void dfsPostorder (Operation *root, DFSState *state)
 
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 220 of file SliceAnalysis.cpp.

References mlir::getBackwardSlice(), mlir::Operation::getOperands(), mlir::Operation::isAncestor(), and value.

Referenced by mlir::matchReduction().

◆ dfsPostorder()

static void dfsPostorder ( Operation root,
DFSState *  state 
)
static

◆ getBackwardSliceImpl()

static void getBackwardSliceImpl ( Operation op,
SetVector< Operation * > *  backwardSlice,
TransitiveFilter  filter 
)
static

◆ getForwardSliceImpl()

static void getForwardSliceImpl ( Operation op,
SetVector< Operation * > *  forwardSlice,
TransitiveFilter  filter 
)
static