diff options
Diffstat (limited to 'flang')
3 files changed, 2 insertions, 41 deletions
diff --git a/flang/lib/Lower/OpenACC.cpp b/flang/lib/Lower/OpenACC.cpp index 7c057036666b..00cca5d4e6f3 100644 --- a/flang/lib/Lower/OpenACC.cpp +++ b/flang/lib/Lower/OpenACC.cpp @@ -992,7 +992,8 @@ createComputeOp(Fortran::lower::AbstractConverter &converter, addOperand(operands, operandSegments, selfCond); if constexpr (!std::is_same_v<Op, mlir::acc::KernelsOp>) addOperands(operands, operandSegments, reductionOperands); - operandSegments.append({0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}); + if constexpr (!std::is_same_v<Op, mlir::acc::ParallelOp>) + operandSegments.append({0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}); if constexpr (!std::is_same_v<Op, mlir::acc::KernelsOp>) { addOperands(operands, operandSegments, privateOperands); addOperands(operands, operandSegments, firstprivateOperands); diff --git a/flang/lib/Optimizer/Transforms/OpenACC/OpenACCDataOperandConversion.cpp b/flang/lib/Optimizer/Transforms/OpenACC/OpenACCDataOperandConversion.cpp index 8459ac2aa48d..de28a8f3872c 100644 --- a/flang/lib/Optimizer/Transforms/OpenACC/OpenACCDataOperandConversion.cpp +++ b/flang/lib/Optimizer/Transforms/OpenACC/OpenACCDataOperandConversion.cpp @@ -133,17 +133,6 @@ void OpenACCDataOperandConversion::runOnOperation() { target.addDynamicallyLegalOp<acc::ParallelOp>( [allDataOperandsAreConverted](acc::ParallelOp op) { return allDataOperandsAreConverted(op.getReductionOperands()) && - allDataOperandsAreConverted(op.getCopyOperands()) && - allDataOperandsAreConverted(op.getCopyinOperands()) && - allDataOperandsAreConverted(op.getCopyinReadonlyOperands()) && - allDataOperandsAreConverted(op.getCopyoutOperands()) && - allDataOperandsAreConverted(op.getCopyoutZeroOperands()) && - allDataOperandsAreConverted(op.getCreateOperands()) && - allDataOperandsAreConverted(op.getCreateZeroOperands()) && - allDataOperandsAreConverted(op.getNoCreateOperands()) && - allDataOperandsAreConverted(op.getPresentOperands()) && - allDataOperandsAreConverted(op.getDevicePtrOperands()) && - allDataOperandsAreConverted(op.getAttachOperands()) && allDataOperandsAreConverted(op.getGangPrivateOperands()) && allDataOperandsAreConverted(op.getGangFirstPrivateOperands()); }); diff --git a/flang/test/Transforms/OpenACC/convert-data-operands-to-llvmir.fir b/flang/test/Transforms/OpenACC/convert-data-operands-to-llvmir.fir deleted file mode 100644 index f691ea6667d9..000000000000 --- a/flang/test/Transforms/OpenACC/convert-data-operands-to-llvmir.fir +++ /dev/null @@ -1,29 +0,0 @@ -// RUN: fir-opt -fir-openacc-data-operand-conversion='use-opaque-pointers=1' -split-input-file %s | FileCheck %s -// RUN: fir-opt -fir-openacc-data-operand-conversion='use-opaque-pointers=1' -split-input-file %s | fir-opt -split-input-file --fir-to-llvm-ir | FileCheck %s --check-prefix=LLVMIR - -fir.global internal @_QFEa : !fir.array<10xf32> { - %0 = fir.undefined !fir.array<10xf32> - fir.has_value %0 : !fir.array<10xf32> -} - -func.func @_QQsub_parallel() attributes {fir.bindc_name = "test"} { - %0 = fir.address_of(@_QFEa) : !fir.ref<!fir.array<10xf32>> - %1 = fir.alloca i32 {bindc_name = "i", uniq_name = "_QFEi"} - acc.parallel copyin(%0: !fir.ref<!fir.array<10xf32>>) { - acc.loop { - acc.yield - } - acc.yield - } - return -} - -// CHECK-LABEL: func.func @_QQsub_parallel() attributes {fir.bindc_name = "test"} { -// CHECK: %[[ADDR:.*]] = fir.address_of(@_QFEa) : !fir.ref<!fir.array<10xf32>> -// CHECK: %[[CAST:.*]] = builtin.unrealized_conversion_cast %[[ADDR]] : !fir.ref<!fir.array<10xf32>> to !llvm.ptr<array<10 x f32>> -// CHECK: acc.parallel copyin(%[[CAST]] : !llvm.ptr<array<10 x f32>>) { -// CHECK: acc.loop - -// LLVMIR-LABEL: llvm.func @_QQsub_parallel() attributes {fir.bindc_name = "test"} { -// LLVMIR: %[[ADDR:.*]] = llvm.mlir.addressof @_QFEa : !llvm.ptr<array<10 x f32>> -// LLVMIR: acc.parallel copyin(%[[ADDR]] : !llvm.ptr<array<10 x f32>>) { |