MLIR
20.0.0git
|
Describes the fusion strategy to be used in the Affine loop fusion utilities. More...
#include "mlir/Dialect/Affine/LoopFusionUtils.h"
Public Types | |
enum | StrategyEnum { Generic , ProducerConsumer , Sibling } |
Public Member Functions | |
FusionStrategy (StrategyEnum strategy) | |
Construct a generic or producer-consumer fusion strategy. More... | |
FusionStrategy (Value memref) | |
Construct a sibling fusion strategy targeting 'memref'. More... | |
StrategyEnum | getStrategy () const |
Returns the fusion strategy. More... | |
Value | getSiblingFusionMemRef () const |
Returns the memref attached to this sibling fusion strategy. More... | |
Describes the fusion strategy to be used in the Affine loop fusion utilities.
Currently, it is used to specialized the loop fusion utilities with the assumptions made in the AffineLoopFusion pass for producer-consumer and sibling fusion, while sharing a single implementation. The latter strategies are also limited to scenarios where a single memref is involved in the producer-consume or sibling relationship between the candidate loops. We use 'memref' to keep track of such a memref.
Definition at line 52 of file LoopFusionUtils.h.
Enumerator | |
---|---|
Generic | |
ProducerConsumer | |
Sibling |
Definition at line 54 of file LoopFusionUtils.h.
|
inline |
Construct a generic or producer-consumer fusion strategy.
Definition at line 75 of file LoopFusionUtils.h.
References Sibling.
|
inline |
Construct a sibling fusion strategy targeting 'memref'.
This construct should only be used for sibling fusion.
Definition at line 82 of file LoopFusionUtils.h.
|
inline |
Returns the memref attached to this sibling fusion strategy.
Definition at line 88 of file LoopFusionUtils.h.
References Sibling.
Referenced by mlir::affine::canFuseLoops().
|
inline |
Returns the fusion strategy.
Definition at line 85 of file LoopFusionUtils.h.
Referenced by mlir::affine::canFuseLoops().