diff options
author | Valentin Clement <clementval@gmail.com> | 2023-05-09 13:21:16 -0700 |
---|---|---|
committer | Valentin Clement <clementval@gmail.com> | 2023-05-09 13:21:37 -0700 |
commit | 46e1b095c90ccab695324e7e365e5d3e364d5c1a (patch) | |
tree | 786669229225add1300a9c0d6fb33b6276e312c7 /flang | |
parent | f08b94d5c2d2f7dc93d211e20702dcc67beb4cea (diff) | |
download | llvm-46e1b095c90ccab695324e7e365e5d3e364d5c1a.tar.gz |
[mlir][openacc] Cleanup acc.data from old data clause operands
Since the new data operand operations have been added in D148389 and
adopted on acc.data in D149673, the old clause operands are no longer
needed.
The LegalizeDataOpForLLVMTranslation will become obsolete when all
operations will be cleaned. For the time being only the appropriate
part are being removed.
processOperands will also receive some updates once all the operands
will be coming from an acc data operand operation.
Reviewed By: razvanlupusoru
Differential Revision: https://reviews.llvm.org/D150155
Diffstat (limited to 'flang')
3 files changed, 0 insertions, 41 deletions
diff --git a/flang/lib/Lower/OpenACC.cpp b/flang/lib/Lower/OpenACC.cpp index faf1b7c02467..9bb18d2ece38 100644 --- a/flang/lib/Lower/OpenACC.cpp +++ b/flang/lib/Lower/OpenACC.cpp @@ -1122,7 +1122,6 @@ static void genACCDataOp(Fortran::lower::AbstractConverter &converter, llvm::SmallVector<mlir::Value> operands; llvm::SmallVector<int32_t> operandSegments; addOperand(operands, operandSegments, ifCond); - operandSegments.append({0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}); addOperands(operands, operandSegments, dataClauseOperands); auto dataOp = createRegionOp<mlir::acc::DataOp, mlir::acc::TerminatorOp>( diff --git a/flang/lib/Optimizer/Transforms/OpenACC/OpenACCDataOperandConversion.cpp b/flang/lib/Optimizer/Transforms/OpenACC/OpenACCDataOperandConversion.cpp index cbde992df95b..8459ac2aa48d 100644 --- a/flang/lib/Optimizer/Transforms/OpenACC/OpenACCDataOperandConversion.cpp +++ b/flang/lib/Optimizer/Transforms/OpenACC/OpenACCDataOperandConversion.cpp @@ -115,7 +115,6 @@ void OpenACCDataOperandConversion::runOnOperation() { options.useOpaquePointers = useOpaquePointers; fir::LLVMTypeConverter converter( op.getOperation()->getParentOfType<mlir::ModuleOp>(), true); - patterns.add<LegalizeDataOpForLLVMTranslation<acc::DataOp>>(converter); patterns.add<LegalizeDataOpForLLVMTranslation<acc::ParallelOp>>(converter); ConversionTarget target(*context); @@ -131,21 +130,6 @@ void OpenACCDataOperandConversion::runOnOperation() { return true; }; - target.addDynamicallyLegalOp<acc::DataOp>( - [allDataOperandsAreConverted](acc::DataOp op) { - return 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()); - }); - target.addDynamicallyLegalOp<acc::ParallelOp>( [allDataOperandsAreConverted](acc::ParallelOp op) { return allDataOperandsAreConverted(op.getReductionOperands()) && diff --git a/flang/test/Transforms/OpenACC/convert-data-operands-to-llvmir.fir b/flang/test/Transforms/OpenACC/convert-data-operands-to-llvmir.fir index 26a53bad3118..f691ea6667d9 100644 --- a/flang/test/Transforms/OpenACC/convert-data-operands-to-llvmir.fir +++ b/flang/test/Transforms/OpenACC/convert-data-operands-to-llvmir.fir @@ -6,30 +6,6 @@ fir.global internal @_QFEa : !fir.array<10xf32> { fir.has_value %0 : !fir.array<10xf32> } -func.func @_QQsub1() attributes {fir.bindc_name = "arr"} { - %0 = fir.address_of(@_QFEa) : !fir.ref<!fir.array<10xf32>> - acc.data copy(%0 : !fir.ref<!fir.array<10xf32>>) { - acc.terminator - } - return -} - -// CHECK-LABEL: func.func @_QQsub1() attributes {fir.bindc_name = "arr"} { -// 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.data copy(%[[CAST]] : !llvm.ptr<array<10 x f32>>) - -// LLVMIR-LABEL: llvm.func @_QQsub1() attributes {fir.bindc_name = "arr"} { -// LLVMIR: %[[ADDR:.*]] = llvm.mlir.addressof @_QFEa : !llvm.ptr<array<10 x f32>> -// LLVMIR: acc.data copy(%[[ADDR]] : !llvm.ptr<array<10 x f32>>) { - -// ----- - -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"} |