summaryrefslogtreecommitdiff
path: root/flang
diff options
context:
space:
mode:
authorValentin Clement <clementval@gmail.com>2023-05-09 13:21:16 -0700
committerValentin Clement <clementval@gmail.com>2023-05-09 13:21:37 -0700
commit46e1b095c90ccab695324e7e365e5d3e364d5c1a (patch)
tree786669229225add1300a9c0d6fb33b6276e312c7 /flang
parentf08b94d5c2d2f7dc93d211e20702dcc67beb4cea (diff)
downloadllvm-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')
-rw-r--r--flang/lib/Lower/OpenACC.cpp1
-rw-r--r--flang/lib/Optimizer/Transforms/OpenACC/OpenACCDataOperandConversion.cpp16
-rw-r--r--flang/test/Transforms/OpenACC/convert-data-operands-to-llvmir.fir24
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"}