diff options
author | Kazu Hirata <kazu@google.com> | 2025-07-18 08:05:12 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-18 08:05:12 -0700 |
commit | 151fffccf1340d8a2800664cbcaaa579ba772a4c (patch) | |
tree | e314e564c21ae7f604fc79c571986236976baa13 | |
parent | fdce69a462101e1dce225014ee545858e363e4e2 (diff) | |
download | llvm-151fffccf1340d8a2800664cbcaaa579ba772a4c.zip llvm-151fffccf1340d8a2800664cbcaaa579ba772a4c.tar.gz llvm-151fffccf1340d8a2800664cbcaaa579ba772a4c.tar.bz2 |
[flang] Migrate away from ArrayRef(std::nullopt_t) (#149454)
ArrayRef(std::nullopt_t) has been deprecated. This patch replaces
std::nullopt with mlir::TypeRange{} or mlir::ValueRange{} as
appropriate.
-rw-r--r-- | flang/lib/Lower/Bridge.cpp | 15 | ||||
-rw-r--r-- | flang/lib/Lower/ConvertConstant.cpp | 2 | ||||
-rw-r--r-- | flang/lib/Lower/ConvertExpr.cpp | 26 | ||||
-rw-r--r-- | flang/lib/Lower/Runtime.cpp | 4 | ||||
-rw-r--r-- | flang/lib/Lower/VectorSubscripts.cpp | 2 | ||||
-rw-r--r-- | flang/lib/Optimizer/Builder/FIRBuilder.cpp | 2 | ||||
-rw-r--r-- | flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp | 6 | ||||
-rw-r--r-- | flang/lib/Optimizer/Builder/Runtime/Stop.cpp | 2 | ||||
-rw-r--r-- | flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIROrderedAssignments.cpp | 4 | ||||
-rw-r--r-- | flang/lib/Optimizer/Transforms/MemoryUtils.cpp | 2 | ||||
-rw-r--r-- | flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp | 2 | ||||
-rw-r--r-- | flang/lib/Optimizer/Transforms/SimplifyFIROperations.cpp | 2 | ||||
-rw-r--r-- | flang/unittests/Optimizer/FortranVariableTest.cpp | 6 |
13 files changed, 40 insertions, 35 deletions
diff --git a/flang/lib/Lower/Bridge.cpp b/flang/lib/Lower/Bridge.cpp index 4241d12..5f0783f 100644 --- a/flang/lib/Lower/Bridge.cpp +++ b/flang/lib/Lower/Bridge.cpp @@ -1466,8 +1466,9 @@ private: assert(falseTarget && "missing conditional branch false block"); mlir::Location loc = toLocation(); mlir::Value bcc = builder->createConvert(loc, builder->getI1Type(), cond); - builder->create<mlir::cf::CondBranchOp>(loc, bcc, trueTarget, std::nullopt, - falseTarget, std::nullopt); + builder->create<mlir::cf::CondBranchOp>(loc, bcc, trueTarget, + mlir::ValueRange{}, falseTarget, + mlir::ValueRange{}); } void genConditionalBranch(mlir::Value cond, Fortran::lower::pft::Evaluation *trueTarget, @@ -2556,8 +2557,8 @@ private: builder->setInsertionPointToEnd(loopWrapperOp.getBody()); auto loopOp = builder->create<fir::DoConcurrentLoopOp>( loc, nestLBs, nestUBs, nestSts, /*loopAnnotation=*/nullptr, - /*local_vars=*/std::nullopt, - /*local_syms=*/nullptr, /*reduce_vars=*/std::nullopt, + /*local_vars=*/mlir::ValueRange{}, + /*local_syms=*/nullptr, /*reduce_vars=*/mlir::ValueRange{}, /*reduce_byref=*/nullptr, /*reduce_syms=*/nullptr, /*reduce_attrs=*/nullptr); @@ -3810,9 +3811,9 @@ private: mlir::Block *selectCaseBlock = insertBlock(blockList[0]); mlir::Block *assumedSizeBlock = rankStarBlock ? rankStarBlock : defaultBlock; - builder->create<mlir::cf::CondBranchOp>(loc, isAssumedSize, - assumedSizeBlock, std::nullopt, - selectCaseBlock, std::nullopt); + builder->create<mlir::cf::CondBranchOp>( + loc, isAssumedSize, assumedSizeBlock, mlir::ValueRange{}, + selectCaseBlock, mlir::ValueRange{}); startBlock(selectCaseBlock); } // Create fir.select_case for the other rank cases. diff --git a/flang/lib/Lower/ConvertConstant.cpp b/flang/lib/Lower/ConvertConstant.cpp index 1850b67..b8ab5d0 100644 --- a/flang/lib/Lower/ConvertConstant.cpp +++ b/flang/lib/Lower/ConvertConstant.cpp @@ -303,7 +303,7 @@ createStringLitOp(fir::FirOpBuilder &builder, mlir::Location loc, mlir::NamedAttribute sizeAttr(sizeTag, builder.getI64IntegerAttr(len)); llvm::SmallVector<mlir::NamedAttribute> attrs = {dataAttr, sizeAttr}; return builder.create<fir::StringLitOp>( - loc, llvm::ArrayRef<mlir::Type>{type}, std::nullopt, attrs); + loc, llvm::ArrayRef<mlir::Type>{type}, mlir::ValueRange{}, attrs); } } diff --git a/flang/lib/Lower/ConvertExpr.cpp b/flang/lib/Lower/ConvertExpr.cpp index 0a1cd67..281ab22 100644 --- a/flang/lib/Lower/ConvertExpr.cpp +++ b/flang/lib/Lower/ConvertExpr.cpp @@ -1003,9 +1003,9 @@ public: }, [&](const fir::MutableBoxValue &toBox) { if (toBox.isPointer()) { - Fortran::lower::associateMutableBox(converter, loc, toBox, expr, - /*lbounds=*/std::nullopt, - stmtCtx); + Fortran::lower::associateMutableBox( + converter, loc, toBox, expr, + /*lbounds=*/mlir::ValueRange{}, stmtCtx); return; } // For allocatable components, a deep copy is needed. @@ -3604,8 +3604,9 @@ public: mlir::Value castTo = builder.createConvert(loc, fir::HeapType::get(seqTy), load); mlir::Value shapeOp = builder.genShape(loc, shape); - return builder.create<fir::ArrayLoadOp>( - loc, seqTy, castTo, shapeOp, /*slice=*/mlir::Value{}, std::nullopt); + return builder.create<fir::ArrayLoadOp>(loc, seqTy, castTo, shapeOp, + /*slice=*/mlir::Value{}, + mlir::ValueRange{}); }; // Custom lowering of the element store to deal with the extra indirection // to the lazy allocated buffer. @@ -4207,7 +4208,7 @@ private: auto addr = builder->create<fir::ArrayCoorOp>(loc, eleRefTy, tmp, shape, /*slice=*/mlir::Value{}, indices, - /*typeParams=*/std::nullopt); + /*typeParams=*/mlir::ValueRange{}); auto load = builder->create<fir::LoadOp>(loc, addr); return builder->createConvert(loc, i1Ty, load); }; @@ -4522,17 +4523,18 @@ private: fir::isRecordWithAllocatableMember(eleTy)) TODO(loc, "creating an array temp where the element type has " "allocatable members"); - mlir::Value temp = !seqTy.hasDynamicExtents() - ? builder.create<fir::AllocMemOp>(loc, type) - : builder.create<fir::AllocMemOp>( - loc, type, ".array.expr", std::nullopt, shape); + mlir::Value temp = + !seqTy.hasDynamicExtents() + ? builder.create<fir::AllocMemOp>(loc, type) + : builder.create<fir::AllocMemOp>(loc, type, ".array.expr", + mlir::ValueRange{}, shape); fir::FirOpBuilder *bldr = &converter.getFirOpBuilder(); stmtCtx.attachCleanup( [bldr, loc, temp]() { bldr->create<fir::FreeMemOp>(loc, temp); }); mlir::Value shapeOp = genShapeOp(shape); return builder.create<fir::ArrayLoadOp>(loc, seqTy, temp, shapeOp, /*slice=*/mlir::Value{}, - std::nullopt); + mlir::ValueRange{}); } static fir::ShapeOp genShapeOp(mlir::Location loc, fir::FirOpBuilder &builder, @@ -6483,7 +6485,7 @@ private: mlir::Value initBuffSz = builder.createIntegerConstant(loc, idxTy, clInitialBufferSize); mem = builder.create<fir::AllocMemOp>( - loc, eleTy, /*typeparams=*/std::nullopt, initBuffSz); + loc, eleTy, /*typeparams=*/mlir::ValueRange{}, initBuffSz); builder.create<fir::StoreOp>(loc, initBuffSz, buffSize); } } else { diff --git a/flang/lib/Lower/Runtime.cpp b/flang/lib/Lower/Runtime.cpp index 2be5ef7..5f73335 100644 --- a/flang/lib/Lower/Runtime.cpp +++ b/flang/lib/Lower/Runtime.cpp @@ -134,7 +134,7 @@ void Fortran::lower::genFailImageStatement( mlir::Location loc = converter.getCurrentLocation(); mlir::func::FuncOp callee = fir::runtime::getRuntimeFunc<mkRTKey(FailImageStatement)>(loc, builder); - builder.create<fir::CallOp>(loc, callee, std::nullopt); + builder.create<fir::CallOp>(loc, callee, mlir::ValueRange{}); genUnreachable(builder, loc); } @@ -199,7 +199,7 @@ void Fortran::lower::genPauseStatement( mlir::Location loc = converter.getCurrentLocation(); mlir::func::FuncOp callee = fir::runtime::getRuntimeFunc<mkRTKey(PauseStatement)>(loc, builder); - builder.create<fir::CallOp>(loc, callee, std::nullopt); + builder.create<fir::CallOp>(loc, callee, mlir::ValueRange{}); } void Fortran::lower::genPointerAssociate(fir::FirOpBuilder &builder, diff --git a/flang/lib/Lower/VectorSubscripts.cpp b/flang/lib/Lower/VectorSubscripts.cpp index 389a89d..c7b3e11 100644 --- a/flang/lib/Lower/VectorSubscripts.cpp +++ b/flang/lib/Lower/VectorSubscripts.cpp @@ -122,7 +122,7 @@ private: TODO(loc, "threading length parameters in field index op"); fir::FirOpBuilder &builder = converter.getFirOpBuilder(); componentPath.emplace_back(builder.create<fir::FieldIndexOp>( - loc, fldTy, componentName, recTy, /*typeParams*/ std::nullopt)); + loc, fldTy, componentName, recTy, /*typeParams=*/mlir::ValueRange{})); return fir::unwrapSequenceType(recTy.getType(componentName)); } diff --git a/flang/lib/Optimizer/Builder/FIRBuilder.cpp b/flang/lib/Optimizer/Builder/FIRBuilder.cpp index acd5a88..5b1dbc44 100644 --- a/flang/lib/Optimizer/Builder/FIRBuilder.cpp +++ b/flang/lib/Optimizer/Builder/FIRBuilder.cpp @@ -620,7 +620,7 @@ fir::StringLitOp fir::FirOpBuilder::createStringLitOp(mlir::Location loc, mlir::NamedAttribute sizeAttr(sizeTag, getI64IntegerAttr(data.size())); llvm::SmallVector<mlir::NamedAttribute> attrs{dataAttr, sizeAttr}; return create<fir::StringLitOp>(loc, llvm::ArrayRef<mlir::Type>{type}, - std::nullopt, attrs); + mlir::ValueRange{}, attrs); } mlir::Value fir::FirOpBuilder::genShape(mlir::Location loc, diff --git a/flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp b/flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp index 773d640..04703f7 100644 --- a/flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp +++ b/flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp @@ -59,7 +59,8 @@ mlir::Value fir::runtime::genCpuTime(fir::FirOpBuilder &builder, mlir::Location loc) { mlir::func::FuncOp func = fir::runtime::getRuntimeFunc<mkRTKey(CpuTime)>(loc, builder); - return builder.create<fir::CallOp>(loc, func, std::nullopt).getResult(0); + return builder.create<fir::CallOp>(loc, func, mlir::ValueRange{}) + .getResult(0); } void fir::runtime::genDateAndTime(fir::FirOpBuilder &builder, @@ -280,7 +281,8 @@ void fir::runtime::genRename(fir::FirOpBuilder &builder, mlir::Location loc, mlir::Value fir::runtime::genTime(fir::FirOpBuilder &builder, mlir::Location loc) { auto func = fir::runtime::getRuntimeFunc<mkRTKey(time)>(loc, builder); - return builder.create<fir::CallOp>(loc, func, std::nullopt).getResult(0); + return builder.create<fir::CallOp>(loc, func, mlir::ValueRange{}) + .getResult(0); } /// generate runtime call to transfer intrinsic with no size argument diff --git a/flang/lib/Optimizer/Builder/Runtime/Stop.cpp b/flang/lib/Optimizer/Builder/Runtime/Stop.cpp index 411181c..9b5e43b 100644 --- a/flang/lib/Optimizer/Builder/Runtime/Stop.cpp +++ b/flang/lib/Optimizer/Builder/Runtime/Stop.cpp @@ -25,7 +25,7 @@ void fir::runtime::genExit(fir::FirOpBuilder &builder, mlir::Location loc, void fir::runtime::genAbort(fir::FirOpBuilder &builder, mlir::Location loc) { mlir::func::FuncOp abortFunc = fir::runtime::getRuntimeFunc<mkRTKey(Abort)>(loc, builder); - builder.create<fir::CallOp>(loc, abortFunc, std::nullopt); + builder.create<fir::CallOp>(loc, abortFunc, mlir::ValueRange{}); } void fir::runtime::genReportFatalUserError(fir::FirOpBuilder &builder, diff --git a/flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIROrderedAssignments.cpp b/flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIROrderedAssignments.cpp index 03cc92e..c5cf01e 100644 --- a/flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIROrderedAssignments.cpp +++ b/flang/lib/Optimizer/HLFIR/Transforms/LowerHLFIROrderedAssignments.cpp @@ -405,7 +405,7 @@ void OrderedAssignmentRewriter::pre(hlfir::ForallMaskOp forallMaskOp) { mlir::Location loc = forallMaskOp.getLoc(); mlir::Value mask = generateYieldedScalarValue(forallMaskOp.getMaskRegion(), builder.getI1Type()); - auto ifOp = builder.create<fir::IfOp>(loc, std::nullopt, mask, false); + auto ifOp = builder.create<fir::IfOp>(loc, mlir::TypeRange{}, mask, false); builder.setInsertionPointToStart(&ifOp.getThenRegion().front()); constructStack.push_back(ifOp); } @@ -530,7 +530,7 @@ void OrderedAssignmentRewriter::generateMaskIfOp(mlir::Value cdt) { mlir::Location loc = cdt.getLoc(); cdt = hlfir::loadTrivialScalar(loc, builder, hlfir::Entity{cdt}); cdt = builder.createConvert(loc, builder.getI1Type(), cdt); - auto ifOp = builder.create<fir::IfOp>(cdt.getLoc(), std::nullopt, cdt, + auto ifOp = builder.create<fir::IfOp>(cdt.getLoc(), mlir::TypeRange{}, cdt, /*withElseRegion=*/false); constructStack.push_back(ifOp.getOperation()); builder.setInsertionPointToStart(&ifOp.getThenRegion().front()); diff --git a/flang/lib/Optimizer/Transforms/MemoryUtils.cpp b/flang/lib/Optimizer/Transforms/MemoryUtils.cpp index 1f8edf8..bc4fcd8 100644 --- a/flang/lib/Optimizer/Transforms/MemoryUtils.cpp +++ b/flang/lib/Optimizer/Transforms/MemoryUtils.cpp @@ -222,7 +222,7 @@ void AllocaReplaceImpl::genIndirectDeallocation( rewriter.create<fir::ConvertOp>(loc, intPtrTy, ptrVal); mlir::Value isAllocated = rewriter.create<mlir::arith::CmpIOp>( loc, mlir::arith::CmpIPredicate::ne, ptrToInt, c0); - auto ifOp = rewriter.create<fir::IfOp>(loc, std::nullopt, isAllocated, + auto ifOp = rewriter.create<fir::IfOp>(loc, mlir::TypeRange{}, isAllocated, /*withElseRegion=*/false); rewriter.setInsertionPointToStart(&ifOp.getThenRegion().front()); mlir::Value cast = fir::factory::createConvert( diff --git a/flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp b/flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp index 57eae1f..6e45aae 100644 --- a/flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp +++ b/flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp @@ -456,7 +456,7 @@ llvm::LogicalResult SelectTypeConv::genTypeLadderStep( rewriter.setInsertionPointToEnd(thisBlock); if (destOps.has_value()) rewriter.create<mlir::cf::CondBranchOp>(loc, cmp, dest, destOps.value(), - newBlock, std::nullopt); + newBlock, mlir::ValueRange{}); else rewriter.create<mlir::cf::CondBranchOp>(loc, cmp, dest, newBlock); rewriter.setInsertionPointToEnd(newBlock); diff --git a/flang/lib/Optimizer/Transforms/SimplifyFIROperations.cpp b/flang/lib/Optimizer/Transforms/SimplifyFIROperations.cpp index 506c8e6..ad8464b 100644 --- a/flang/lib/Optimizer/Transforms/SimplifyFIROperations.cpp +++ b/flang/lib/Optimizer/Transforms/SimplifyFIROperations.cpp @@ -261,7 +261,7 @@ public: innermostUnorderdLoop = rewriter.create<fir::DoLoopOp>( doConcurentOp.getLoc(), lb, ub, st, /*unordred=*/true, /*finalCountValue=*/false, - /*iterArgs=*/std::nullopt, loop.getReduceVars(), + /*iterArgs=*/mlir::ValueRange{}, loop.getReduceVars(), loop.getReduceAttrsAttr()); ivArgs.push_back(innermostUnorderdLoop.getInductionVar()); rewriter.setInsertionPointToStart(innermostUnorderdLoop.getBody()); diff --git a/flang/unittests/Optimizer/FortranVariableTest.cpp b/flang/unittests/Optimizer/FortranVariableTest.cpp index 98270ad..5980877 100644 --- a/flang/unittests/Optimizer/FortranVariableTest.cpp +++ b/flang/unittests/Optimizer/FortranVariableTest.cpp @@ -48,7 +48,7 @@ TEST_F(FortranVariableTest, SimpleScalar) { mlir::Value addr = builder->create<fir::AllocaOp>(loc, eleType); auto name = mlir::StringAttr::get(&context, "x"); auto declare = builder->create<fir::DeclareOp>(loc, addr.getType(), addr, - /*shape=*/mlir::Value{}, /*typeParams=*/std::nullopt, + /*shape=*/mlir::Value{}, /*typeParams=*/mlir::ValueRange{}, /*dummy_scope=*/nullptr, name, /*fortran_attrs=*/fir::FortranVariableFlagsAttr{}, /*data_attr=*/cuf::DataAttributeAttr{}); @@ -102,11 +102,11 @@ TEST_F(FortranVariableTest, SimpleArray) { extents.size(), fir::SequenceType::getUnknownExtent()); mlir::Type seqTy = fir::SequenceType::get(typeShape, eleType); mlir::Value addr = builder->create<fir::AllocaOp>( - loc, seqTy, /*pinned=*/false, /*typeParams=*/std::nullopt, extents); + loc, seqTy, /*pinned=*/false, /*typeParams=*/mlir::ValueRange{}, extents); mlir::Value shape = createShape(extents); auto name = mlir::StringAttr::get(&context, "x"); auto declare = builder->create<fir::DeclareOp>(loc, addr.getType(), addr, - shape, /*typeParams*/ std::nullopt, /*dummy_scope=*/nullptr, name, + shape, /*typeParams=*/mlir::ValueRange{}, /*dummy_scope=*/nullptr, name, /*fortran_attrs=*/fir::FortranVariableFlagsAttr{}, /*data_attr=*/cuf::DataAttributeAttr{}); |