MLIR  19.0.0git
Classes | Namespaces | Functions
LoopFusionUtils.h File Reference
#include "mlir/IR/Value.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"

Go to the source code of this file.


struct  mlir::affine::FusionResult
class  mlir::affine::FusionStrategy
 Describes the fusion strategy to be used in the Affine loop fusion utilities. More...
struct  mlir::affine::LoopNestStats
 LoopNestStats aggregates various per-loop statistics (eg. More...


 Include the generated interface declarations.


FusionResult mlir::affine::canFuseLoops (AffineForOp srcForOp, AffineForOp dstForOp, unsigned dstLoopDepth, ComputationSliceState *srcSlice, FusionStrategy fusionStrategy=FusionStrategy::Generic)
 Checks the feasibility of fusing the loop nest rooted at 'srcForOp' into the loop nest rooted at 'dstForOp' at 'dstLoopDepth'. More...
void mlir::affine::fuseLoops (AffineForOp srcForOp, AffineForOp dstForOp, const ComputationSliceState &srcSlice, bool isInnermostSiblingInsertionFusion=false)
 Fuses 'srcForOp' into 'dstForOp' with destination loop block insertion point and source slice loop bounds specified in 'srcSlice'. More...
bool mlir::affine::getLoopNestStats (AffineForOp forOp, LoopNestStats *stats)
 Collect loop nest statistics (eg. More...
int64_t mlir::affine::getComputeCost (AffineForOp forOp, LoopNestStats &stats)
 Computes the total cost of the loop nest rooted at 'forOp' using 'stats'. More...
bool mlir::affine::getFusionComputeCost (AffineForOp srcForOp, LoopNestStats &srcStats, AffineForOp dstForOp, LoopNestStats &dstStats, const ComputationSliceState &slice, int64_t *computeCost)
 Computes and returns in 'computeCost', the total compute cost of fusing the 'slice' of the loop nest rooted at 'srcForOp' into 'dstForOp'. More...
void mlir::affine::gatherProducerConsumerMemrefs (ArrayRef< Operation * > srcOps, ArrayRef< Operation * > dstOps, DenseSet< Value > &producerConsumerMemrefs)
 Returns in 'producerConsumerMemrefs' the memrefs involved in a producer-consumer dependence between write ops in 'srcOps' and read ops in 'dstOps'. More...