23 #define GEN_PASS_DEF_AFFINESCALARREPLACEMENT
24 #include "mlir/Dialect/Affine/Passes.h.inc"
28 #define DEBUG_TYPE "affine-scalrep"
34 struct AffineScalarReplacement
35 :
public affine::impl::AffineScalarReplacementBase<
36 AffineScalarReplacement> {
37 void runOnOperation()
override;
42 std::unique_ptr<OperationPass<func::FuncOp>>
44 return std::make_unique<AffineScalarReplacement>();
47 void AffineScalarReplacement::runOnOperation() {
49 getAnalysis<PostDominanceInfo>(),
50 getAnalysis<AliasAnalysis>());
std::unique_ptr< OperationPass< func::FuncOp > > createAffineScalarReplacementPass()
Creates a pass to replace affine memref accesses by scalars using store to load forwarding and redund...
void affineScalarReplace(func::FuncOp f, DominanceInfo &domInfo, PostDominanceInfo &postDomInfo, AliasAnalysis &analysis)
Replace affine store and load accesses by scalars by forwarding stores to loads and eliminate invaria...
Include the generated interface declarations.