[Mlir-commits] [flang] [mlir] [acc] Support for Optional arguments in firstprivate recipes (PR #190079)
Razvan Lupusoru
llvmlistbot at llvm.org
Wed Apr 1 15:58:25 PDT 2026
================
@@ -741,14 +741,31 @@ template <typename Ty>
mlir::Value OpenACCMappableModel<Ty>::generatePrivateInit(
mlir::Type type, mlir::OpBuilder &mlirBuilder, mlir::Location loc,
mlir::TypedValue<mlir::acc::MappableType> var, llvm::StringRef varName,
- mlir::ValueRange bounds, mlir::Value initVal, mlir::acc::VariableInfoAttr,
- bool &needsDestroy) const {
+ mlir::ValueRange bounds, mlir::Value initVal,
+ mlir::acc::VariableInfoAttr varInfo, bool &needsDestroy) const {
mlir::ModuleOp mod = mlirBuilder.getInsertionBlock()
->getParent()
->getParentOfType<mlir::ModuleOp>();
assert(mod && "failed to retrieve ModuleOp");
fir::FirOpBuilder builder(mlirBuilder, mod);
+ // When variable is optional: use fir.is_present to check. When non-optional,
+ // skip the conditional to avoid unnecessary branches.
+ std::optional<fir::IfOp> optIfOp;
+ bool isOptional = false;
----------------
razvanlupusoru wrote:
nit: rename to mayBeOptional
https://github.com/llvm/llvm-project/pull/190079
More information about the Mlir-commits
mailing list