[flang-commits] [flang] [flang][mlir][openacc] Switch device_type representation to an enum (PR #70250)
Slava Zakharin via flang-commits
flang-commits at lists.llvm.org
Wed Oct 25 14:05:34 PDT 2023
================
@@ -2494,21 +2507,22 @@ void genACCSetOp(Fortran::lower::AbstractConverter &converter,
} else if (const auto *deviceTypeClause =
std::get_if<Fortran::parser::AccClause::DeviceType>(
&clause.u)) {
- genDeviceTypeClause(converter, clauseLocation, deviceTypeClause,
- deviceTypeOperands, stmtCtx);
+ gatherDeviceTypeAttrs(builder, clauseLocation, deviceTypeClause,
+ deviceTypes, stmtCtx);
}
}
// Prepare the operand segment size attribute and the operands value range.
llvm::SmallVector<mlir::Value> operands;
- llvm::SmallVector<int32_t, 4> operandSegments;
- addOperands(operands, operandSegments, deviceTypeOperands);
+ llvm::SmallVector<int32_t, 3> operandSegments;
addOperand(operands, operandSegments, defaultAsync);
addOperand(operands, operandSegments, deviceNum);
addOperand(operands, operandSegments, ifCond);
- createSimpleOp<mlir::acc::SetOp>(firOpBuilder, currentLocation, operands,
- operandSegments);
+ auto op = createSimpleOp<mlir::acc::SetOp>(builder, currentLocation, operands,
+ operandSegments);
+ if (!deviceTypes.empty())
+ op.setDeviceTypeAttr(mlir::cast<mlir::acc::DeviceTypeAttr>(deviceTypes[0]));
----------------
vzakhari wrote:
nit: maybe add an assertion that the size is 1.
https://github.com/llvm/llvm-project/pull/70250
More information about the flang-commits
mailing list