[llvm-branch-commits] [flang] [flang] support fir.alloca operations inside of omp reduction ops (PR #84952)
Kiran Chandramohan via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Mar 12 15:42:02 PDT 2024
================
@@ -410,8 +410,15 @@ class FIROpConversion : public mlir::ConvertOpToLLVMPattern<FromOp> {
mlir::ConversionPatternRewriter &rewriter) const {
auto thisPt = rewriter.saveInsertionPoint();
mlir::Operation *parentOp = rewriter.getInsertionBlock()->getParentOp();
- mlir::Block *insertBlock = getBlockForAllocaInsert(parentOp);
- rewriter.setInsertionPointToStart(insertBlock);
+ if (mlir::isa<mlir::omp::ReductionDeclareOp>(parentOp)) {
+ // ReductionDeclareOp has multiple child regions. We want to get the first
+ // block of whichever of those regions we are currently in
+ mlir::Region *parentRegion = rewriter.getInsertionBlock()->getParent();
+ rewriter.setInsertionPointToStart(&parentRegion->front());
+ } else {
+ mlir::Block *insertBlock = getBlockForAllocaInsert(parentOp);
+ rewriter.setInsertionPointToStart(insertBlock);
+ }
----------------
kiranchandramohan wrote:
Is it not sufficient to modify `getBlockForAllocaInsert` to handle ReductionDeclareOp?
https://github.com/llvm/llvm-project/pull/84952
More information about the llvm-branch-commits
mailing list