[flang-commits] [flang] 4b80a8c - [flang][openacc][NFC] Cleanup enter data lowering
Valentin Clement via flang-commits
flang-commits at lists.llvm.org
Fri Apr 28 11:51:20 PDT 2023
Author: Valentin Clement
Date: 2023-04-28T11:51:14-07:00
New Revision: 4b80a8c72d3d0dba4ee2469471dfccb7e257b319
URL: https://github.com/llvm/llvm-project/commit/4b80a8c72d3d0dba4ee2469471dfccb7e257b319
DIFF: https://github.com/llvm/llvm-project/commit/4b80a8c72d3d0dba4ee2469471dfccb7e257b319.diff
LOG: [flang][openacc][NFC] Cleanup enter data lowering
Remove copyinOperands, createOperands, createZeroOperands, attachOperands
SmallVectors as they are not used anymore.
The op itself cannot be cleanup yet because
`mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp`
still depends on it. The final clean up on the op will be down once
the translation uses the new data operand operations.
Reviewed By: vzakhari
Differential Revision: https://reviews.llvm.org/D149467
Added:
Modified:
flang/lib/Lower/OpenACC.cpp
Removed:
################################################################################
diff --git a/flang/lib/Lower/OpenACC.cpp b/flang/lib/Lower/OpenACC.cpp
index 06485ccfebd6..975c1356a370 100644
--- a/flang/lib/Lower/OpenACC.cpp
+++ b/flang/lib/Lower/OpenACC.cpp
@@ -1064,8 +1064,7 @@ genACCEnterDataOp(Fortran::lower::AbstractConverter &converter,
Fortran::lower::StatementContext &stmtCtx,
const Fortran::parser::AccClauseList &accClauseList) {
mlir::Value ifCond, async, waitDevnum;
- llvm::SmallVector<mlir::Value> copyinOperands, createOperands,
- createZeroOperands, attachOperands, waitOperands, dataClauseOperands;
+ llvm::SmallVector<mlir::Value> waitOperands, dataClauseOperands;
// Async, wait and self clause have optional values but can be present with
// no value as well. When there is no value, the op has an attribute to
@@ -1076,7 +1075,7 @@ genACCEnterDataOp(Fortran::lower::AbstractConverter &converter,
fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder();
// Lower clauses values mapped to operands.
- // Keep track of each group of operands separatly as clauses can appear
+ // Keep track of each group of operands separately as clauses can appear
// more than once.
for (const Fortran::parser::AccClause &clause : accClauseList.v) {
mlir::Location clauseLocation = converter.genLocation(clause.source);
@@ -1108,16 +1107,13 @@ genACCEnterDataOp(Fortran::lower::AbstractConverter &converter,
const auto &modifier =
std::get<std::optional<Fortran::parser::AccDataModifier>>(
listWithModifier.t);
+ mlir::acc::DataClause clause = mlir::acc::DataClause::acc_create;
if (modifier &&
- (*modifier).v == Fortran::parser::AccDataModifier::Modifier::Zero) {
- genDataOperandOperations<mlir::acc::CreateOp>(
- accObjectList, converter, semanticsContext, stmtCtx,
- dataClauseOperands, mlir::acc::DataClause::acc_create_zero, false);
- } else {
- genDataOperandOperations<mlir::acc::CreateOp>(
- accObjectList, converter, semanticsContext, stmtCtx,
- dataClauseOperands, mlir::acc::DataClause::acc_create, false);
- }
+ (*modifier).v == Fortran::parser::AccDataModifier::Modifier::Zero)
+ clause = mlir::acc::DataClause::acc_create_zero;
+ genDataOperandOperations<mlir::acc::CreateOp>(
+ accObjectList, converter, semanticsContext, stmtCtx,
+ dataClauseOperands, clause, false);
} else if (const auto *attachClause =
std::get_if<Fortran::parser::AccClause::Attach>(&clause.u)) {
genDataOperandOperations<mlir::acc::AttachOp>(
@@ -1129,17 +1125,14 @@ genACCEnterDataOp(Fortran::lower::AbstractConverter &converter,
}
}
- // Prepare the operand segement size attribute and the operands value range.
+ // Prepare the operand segment size attribute and the operands value range.
llvm::SmallVector<mlir::Value, 16> operands;
llvm::SmallVector<int32_t, 8> operandSegments;
addOperand(operands, operandSegments, ifCond);
addOperand(operands, operandSegments, async);
addOperand(operands, operandSegments, waitDevnum);
addOperands(operands, operandSegments, waitOperands);
- addOperands(operands, operandSegments, copyinOperands);
- addOperands(operands, operandSegments, createOperands);
- addOperands(operands, operandSegments, createZeroOperands);
- addOperands(operands, operandSegments, attachOperands);
+ operandSegments.append({0, 0, 0, 0});
addOperands(operands, operandSegments, dataClauseOperands);
mlir::acc::EnterDataOp enterDataOp = createSimpleOp<mlir::acc::EnterDataOp>(
More information about the flang-commits
mailing list