Skip to content

Commit

Permalink
Switch to using the upstream implementation of forallToParallelLoop (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
erwei-xilinx authored Jan 20, 2025
1 parent 90d6a4c commit fb3211e
Showing 1 changed file with 3 additions and 23 deletions.
26 changes: 3 additions & 23 deletions mlir/lib/Conversion/ConvertToAIRPass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Dialect/MemRef/Transforms/ComposeSubView.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/SCF/Transforms/Transforms.h"
#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinTypes.h"
Expand Down Expand Up @@ -866,30 +867,9 @@ class SCFForAllToParallelOp : public OpRewritePattern<scf::ForallOp> {

LogicalResult matchAndRewrite(scf::ForallOp forallOp,
PatternRewriter &rewriter) const override {
if (forallOp.getNumResults() != 0) {
if (forallOp.getNumResults() != 0)
return failure();
}
Location loc = forallOp.getLoc();
SmallVector<Value> lowerBounds = getValueOrCreateConstantIndexOp(
rewriter, loc, forallOp.getMixedLowerBound());
SmallVector<Value> upperBounds = getValueOrCreateConstantIndexOp(
rewriter, loc, forallOp.getMixedUpperBound());
SmallVector<Value> step =
getValueOrCreateConstantIndexOp(rewriter, loc, forallOp.getMixedStep());
auto parallelOp = rewriter.create<scf::ParallelOp>(
loc, lowerBounds, upperBounds, step, ValueRange{},
[&](OpBuilder &b, Location bodyLoc, ValueRange ivs,
ValueRange regionArgs) {});
rewriter.inlineRegionBefore(forallOp.getRegion(), parallelOp.getRegion(),
parallelOp.getRegion().begin());
rewriter.eraseBlock(&parallelOp.getRegion().back());
// Fixup the terminator
OpBuilder::InsertionGuard g(rewriter);
rewriter.setInsertionPointToEnd(&parallelOp.getRegion().front());
rewriter.replaceOpWithNewOp<scf::ReduceOp>(
parallelOp.getRegion().front().getTerminator());
rewriter.replaceOp(forallOp, parallelOp);
return success();
return forallToParallelLoop(rewriter, forallOp);
}
};

Expand Down

0 comments on commit fb3211e

Please sign in to comment.