Skip to content

Commit 63f30d7

Browse files
[mlir] Migrate away from {TypeRange,ValueRange}(std::nullopt) (NFC) (#145445)
ArrayRef has a constructor that accepts std::nullopt. This constructor dates back to the days when we still had llvm::Optional. Since the use of std::nullopt outside the context of std::optional is kind of abuse and not intuitive to new comers, I would like to move away from the constructor and eventually remove it. This patch migrates away from TypeRagne(std::nullopt) and ValueRange(std::nullopt).
1 parent 6dad1e8 commit 63f30d7

File tree

17 files changed

+44
-56
lines changed

17 files changed

+44
-56
lines changed

mlir/include/mlir/Dialect/Affine/IR/AffineOps.td

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -243,17 +243,16 @@ def AffineForOp : Affine_Op<"for",
243243
let regions = (region SizedRegion<1>:$region);
244244

245245
let skipDefaultBuilders = 1;
246-
let builders = [
247-
OpBuilder<(ins "int64_t":$lowerBound, "int64_t":$upperBound,
248-
CArg<"int64_t", "1">:$step, CArg<"ValueRange", "std::nullopt">:$iterArgs,
249-
CArg<"function_ref<void(OpBuilder &, Location, Value, ValueRange)>",
250-
"nullptr">:$bodyBuilder)>,
251-
OpBuilder<(ins "ValueRange":$lbOperands, "AffineMap":$lbMap,
252-
"ValueRange":$ubOperands, "AffineMap":$ubMap, CArg<"int64_t", "1">:$step,
253-
CArg<"ValueRange", "std::nullopt">:$iterArgs,
254-
CArg<"function_ref<void(OpBuilder &, Location, Value, ValueRange)>",
255-
"nullptr">:$bodyBuilder)>
256-
];
246+
let builders =
247+
[OpBuilder<(ins "int64_t":$lowerBound, "int64_t":$upperBound,
248+
CArg<"int64_t", "1">:$step, CArg<"ValueRange", "{}">:$iterArgs,
249+
CArg<"function_ref<void(OpBuilder &, Location, Value, ValueRange)>",
250+
"nullptr">:$bodyBuilder)>,
251+
OpBuilder<(ins "ValueRange":$lbOperands, "AffineMap":$lbMap,
252+
"ValueRange":$ubOperands, "AffineMap":$ubMap,
253+
CArg<"int64_t", "1">:$step, CArg<"ValueRange", "{}">:$iterArgs,
254+
CArg<"function_ref<void(OpBuilder &, Location, Value, ValueRange)>",
255+
"nullptr">:$bodyBuilder)>];
257256

258257
let extraClassDeclaration = [{
259258
/// Defining the function type we use for building the body of affine.for.
@@ -920,9 +919,7 @@ def AffineYieldOp : Affine_Op<"yield", [Pure, Terminator, ReturnLike,
920919

921920
let arguments = (ins Variadic<AnyType>:$operands);
922921

923-
let builders = [
924-
OpBuilder<(ins), [{ build($_builder, $_state, std::nullopt); }]>
925-
];
922+
let builders = [OpBuilder<(ins), [{ build($_builder, $_state, {}); }]>];
926923

927924
let assemblyFormat = "attr-dict ($operands^ `:` type($operands))?";
928925
let hasVerifier = 1;

mlir/include/mlir/Dialect/Async/IR/AsyncOps.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ def Async_ReturnOp : Async_Op<"return",
288288

289289
let arguments = (ins Variadic<AnyType>:$operands);
290290

291-
let builders = [OpBuilder<(ins), [{build($_builder, $_state, std::nullopt);}]>];
291+
let builders = [OpBuilder<(ins), [{build($_builder, $_state, {});}]>];
292292

293293
let assemblyFormat = "attr-dict ($operands^ `:` type($operands))?";
294294
let hasVerifier = 1;

mlir/include/mlir/Dialect/Func/IR/FuncOps.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ def ReturnOp : Func_Op<"return", [Pure, HasParent<"FuncOp">,
385385
let arguments = (ins Variadic<AnyType>:$operands);
386386

387387
let builders = [OpBuilder<(ins), [{
388-
build($_builder, $_state, std::nullopt);
388+
build($_builder, $_state, {});
389389
}]>];
390390

391391
let assemblyFormat = "attr-dict ($operands^ `:` type($operands))?";

mlir/include/mlir/Dialect/MLProgram/IR/MLProgramOps.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ def MLProgram_OutputOp : MLProgram_Op<"output", [
462462
let arguments = (ins Variadic<AnyType>:$operands);
463463

464464
let builders = [OpBuilder<(ins), [{
465-
build($_builder, $_state, std::nullopt);
465+
build($_builder, $_state, {});
466466
}]>];
467467

468468
let assemblyFormat = "attr-dict ($operands^ `:` type($operands))?";
@@ -488,7 +488,7 @@ def MLProgram_ReturnOp : MLProgram_Op<"return", [
488488
let arguments = (ins Variadic<AnyType>:$operands);
489489

490490
let builders = [OpBuilder<(ins), [{
491-
build($_builder, $_state, std::nullopt);
491+
build($_builder, $_state, {});
492492
}]>];
493493

494494
let assemblyFormat = "attr-dict ($operands^ `:` type($operands))?";

mlir/include/mlir/Dialect/SCF/IR/SCFOps.td

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -248,12 +248,10 @@ def ForOp : SCF_Op<"for",
248248
let regions = (region SizedRegion<1>:$region);
249249

250250
let skipDefaultBuilders = 1;
251-
let builders = [
252-
OpBuilder<(ins "Value":$lowerBound, "Value":$upperBound, "Value":$step,
253-
CArg<"ValueRange", "std::nullopt">:$initArgs,
251+
let builders = [OpBuilder<(ins "Value":$lowerBound, "Value":$upperBound,
252+
"Value":$step, CArg<"ValueRange", "{}">:$initArgs,
254253
CArg<"function_ref<void(OpBuilder &, Location, Value, ValueRange)>",
255-
"nullptr">)>
256-
];
254+
"nullptr">)>];
257255

258256
let extraClassDeclaration = [{
259257
using BodyBuilderFn =

mlir/include/mlir/Dialect/SMT/IR/SMTOps.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ def YieldOp : SMTOp<"yield", [
227227
let arguments = (ins Variadic<AnyType>:$values);
228228
let assemblyFormat = "($values^ `:` qualified(type($values)))? attr-dict";
229229
let builders = [OpBuilder<(ins), [{
230-
build($_builder, $_state, std::nullopt);
230+
build($_builder, $_state, {});
231231
}]>];
232232
}
233233

mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -678,9 +678,7 @@ def Shape_YieldOp : Shape_Op<"yield",
678678

679679
let arguments = (ins Variadic<AnyType>:$operands);
680680

681-
let builders = [OpBuilder<(ins),
682-
[{ build($_builder, $_state, std::nullopt); }]>
683-
];
681+
let builders = [OpBuilder<(ins), [{ build($_builder, $_state, {}); }]>];
684682

685683
let assemblyFormat = "attr-dict ($operands^ `:` type($operands))?";
686684
let hasVerifier = 1;

mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,7 @@ lowerAsEntryFunction(gpu::GPUFuncOp funcOp, const TypeConverter &typeConverter,
251251
}
252252
auto newFuncOp = rewriter.create<spirv::FuncOp>(
253253
funcOp.getLoc(), funcOp.getName(),
254-
rewriter.getFunctionType(signatureConverter.getConvertedTypes(),
255-
std::nullopt));
254+
rewriter.getFunctionType(signatureConverter.getConvertedTypes(), {}));
256255
for (const auto &namedAttr : funcOp->getAttrs()) {
257256
if (namedAttr.getName() == funcOp.getFunctionTypeAttrName() ||
258257
namedAttr.getName() == SymbolTable::getSymbolAttrName())

mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ SymbolRefAttr PatternLowering::generateRewriter(
636636
builder.setInsertionPointToEnd(rewriterModule.getBody());
637637
auto rewriterFunc = builder.create<pdl_interp::FuncOp>(
638638
pattern.getLoc(), "pdl_generated_rewriter",
639-
builder.getFunctionType(std::nullopt, std::nullopt));
639+
builder.getFunctionType({}, {}));
640640
rewriterSymbolTable.insert(rewriterFunc);
641641

642642
// Generate the rewriter function body.
@@ -703,7 +703,7 @@ SymbolRefAttr PatternLowering::generateRewriter(
703703
// Update the signature of the rewrite function.
704704
rewriterFunc.setType(builder.getFunctionType(
705705
llvm::to_vector<8>(rewriterFunc.front().getArgumentTypes()),
706-
/*results=*/std::nullopt));
706+
/*results=*/{}));
707707

708708
builder.create<pdl_interp::FinalizeOp>(rewriter.getLoc());
709709
return SymbolRefAttr::get(
@@ -990,7 +990,7 @@ void PDLToPDLInterpPass::runOnOperation() {
990990
auto matcherFunc = builder.create<pdl_interp::FuncOp>(
991991
module.getLoc(), pdl_interp::PDLInterpDialect::getMatcherFunctionName(),
992992
builder.getFunctionType(builder.getType<pdl::OperationType>(),
993-
/*results=*/std::nullopt),
993+
/*results=*/{}),
994994
/*attrs=*/std::nullopt);
995995

996996
// Create a nested module to hold the functions invoked for rewriting the IR

mlir/lib/Dialect/GPU/IR/GPUDialect.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2302,7 +2302,7 @@ void WarpExecuteOnLane0Op::build(OpBuilder &builder, OperationState &result,
23022302
TypeRange resultTypes, Value laneId,
23032303
int64_t warpSize) {
23042304
build(builder, result, resultTypes, laneId, warpSize,
2305-
/*operands=*/std::nullopt, /*argTypes=*/std::nullopt);
2305+
/*operands=*/{}, /*argTypes=*/{});
23062306
}
23072307

23082308
void WarpExecuteOnLane0Op::build(OpBuilder &builder, OperationState &result,

0 commit comments

Comments
 (0)