15 #ifndef MLIR_TRANSFORMS_LOOP_FUSION_UTILS_H 16 #define MLIR_TRANSFORMS_LOOP_FUSION_UTILS_H 19 #include "llvm/ADT/DenseMap.h" 20 #include "llvm/ADT/SmallVector.h" 24 struct ComputationSliceState;
51 unsigned dstLoopDepth,
92 #endif // MLIR_TRANSFORMS_LOOP_FUSION_UTILS_H Definition: InferTypeOpInterface.cpp:20
Definition: LoopFusionUtils.h:33
FusionResult canFuseLoops(AffineForOp srcForOp, AffineForOp dstForOp, unsigned dstLoopDepth, ComputationSliceState *srcSlice)
Definition: LoopFusionUtils.cpp:191
DenseMap< Operation *, uint64_t > opCountMap
Map from AffineForOp to count of operations in its loop body.
Definition: LoopFusionUtils.h:61
ResultEnum
Definition: LoopFusionUtils.h:32
Definition: LoopFusionUtils.h:57
FusionResult(ResultEnum v)
Definition: LoopFusionUtils.h:39
DenseMap< Operation *, SmallVector< AffineForOp, 2 > > loopMap
Map from AffineForOp to immediate child AffineForOps in its loop body.
Definition: LoopFusionUtils.h:59
bool getLoopNestStats(AffineForOp forOp, LoopNestStats *stats)
Definition: LoopFusionUtils.cpp:252
Definition: LoopFusionUtils.h:36
DenseMap< Operation *, uint64_t > tripCountMap
Map from AffineForOp to its constant trip count.
Definition: LoopFusionUtils.h:63
mlir::edsc::intrinsics::ValueBuilder< SliceOp > slice
Definition: Intrinsics.h:24
Definition: LoopFusionUtils.h:34
Definition: LoopFusionUtils.h:31
enum mlir::FusionResult::ResultEnum value
Definition: LoopFusionUtils.h:35
bool getFusionComputeCost(AffineForOp srcForOp, LoopNestStats &srcStats, AffineForOp dstForOp, LoopNestStats &dstStats, ComputationSliceState *slice, int64_t *computeCost)
Definition: LoopFusionUtils.cpp:415
Definition: LoopFusionUtils.h:37
int64_t getComputeCost(AffineForOp forOp, LoopNestStats &stats)
Definition: LoopFusionUtils.cpp:404