Skip to content

Commit 99156a1

Browse files
committed
address comments
1 parent fce2ca0 commit 99156a1

File tree

3 files changed

+19
-17
lines changed

3 files changed

+19
-17
lines changed

mlir/lib/Dialect/IRDL/IR/IRDL.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,19 @@ LogicalResult OperationOp::verifyRegions() {
9494
valueNames.emplace_back(kind, std::move(nameSet));
9595
};
9696

97-
getBody().walk([&](Operation *op) {
98-
TypeSwitch<Operation *>(op)
97+
for (Operation &op : getBody().getOps()) {
98+
TypeSwitch<Operation *>(&op)
9999
.Case<OperandsOp>(
100100
[&](OperandsOp op) { insertNames("operands", op.getNames()); })
101101
.Case<ResultsOp>(
102102
[&](ResultsOp op) { insertNames("results", op.getNames()); })
103103
.Case<RegionsOp>(
104104
[&](RegionsOp op) { insertNames("regions", op.getNames()); });
105-
});
105+
}
106106

107107
// Verify that no two operand, result or region share the same name.
108+
// The absence of duplicates within each value kind is checked by the
109+
// associated operation's verifier.
108110
for (size_t i : llvm::seq(valueNames.size())) {
109111
for (size_t j : llvm::seq(i + 1, valueNames.size())) {
110112
auto [lhs, lhsSet] = valueNames[i];
@@ -131,22 +133,22 @@ static LogicalResult verifyNames(Operation *op, StringRef kindName,
131133
DenseMap<StringRef, size_t> nameMap;
132134
for (auto [i, name] : llvm::enumerate(names)) {
133135
StringRef nameRef = llvm::cast<StringAttr>(name).getValue();
134-
if (nameRef.size() == 0)
136+
if (nameRef.empty())
135137
return op->emitOpError()
136-
<< "name of " << kindName << " number " << i << " is empty";
138+
<< "name of " << kindName << " #" << i << " is empty";
137139
if (!llvm::isAlpha(nameRef[0]) && nameRef[0] != '_')
138140
return op->emitOpError()
139-
<< "name of " << kindName << " number " << i
141+
<< "name of " << kindName << " #" << i
140142
<< " must start with either a letter or an underscore";
141143
if (llvm::any_of(nameRef,
142144
[](char c) { return !llvm::isAlnum(c) && c != '_'; }))
143145
return op->emitOpError()
144-
<< "name of " << kindName << " number " << i
146+
<< "name of " << kindName << " #" << i
145147
<< " must contain only letters, digits and underscores";
146148
if (nameMap.contains(nameRef))
147-
return op->emitOpError() << "name of " << kindName << " number " << i
149+
return op->emitOpError() << "name of " << kindName << " #" << i
148150
<< " is a duplicate of the name of " << kindName
149-
<< " number " << nameMap[nameRef];
151+
<< " #" << nameMap[nameRef];
150152
nameMap.insert({nameRef, i});
151153
}
152154

mlir/test/Dialect/IRDL/invalid.irdl.mlir

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ irdl.dialect @testd {
2525
irdl.dialect @testd {
2626
irdl.type @type {
2727
%0 = irdl.any
28-
// expected-error@+1 {{name of parameter number 0 must contain only letters, digits and underscores}}
28+
// expected-error@+1 {{name of parameter #0 must contain only letters, digits and underscores}}
2929
irdl.parameters(test$test: %0)
3030
}
3131
}
@@ -35,7 +35,7 @@ irdl.dialect @testd {
3535
irdl.dialect @testd {
3636
irdl.operation @op {
3737
%0 = irdl.any
38-
// expected-error@+1 {{name of result number 0 must contain only letters, digits and underscores}}
38+
// expected-error@+1 {{name of result #0 must contain only letters, digits and underscores}}
3939
irdl.results(test$test: %0)
4040
}
4141
}
@@ -45,7 +45,7 @@ irdl.dialect @testd {
4545
irdl.dialect @testd {
4646
irdl.operation @op {
4747
%0 = irdl.any
48-
// expected-error@+1 {{name of operand number 0 must contain only letters, digits and underscores}}
48+
// expected-error@+1 {{name of operand #0 must contain only letters, digits and underscores}}
4949
irdl.operands(test$test: %0)
5050
}
5151
}
@@ -55,7 +55,7 @@ irdl.dialect @testd {
5555
irdl.dialect @testd {
5656
irdl.type @type {
5757
%0 = irdl.any
58-
// expected-error@+1 {{name of parameter number 2 is a duplicate of the name of parameter number 0}}
58+
// expected-error@+1 {{name of parameter #2 is a duplicate of the name of parameter #0}}
5959
irdl.parameters(foo: %0, bar: %0, foo: %0)
6060
}
6161
}
@@ -65,7 +65,7 @@ irdl.dialect @testd {
6565
irdl.dialect @testd {
6666
irdl.operation @op {
6767
%0 = irdl.any
68-
// expected-error@+1 {{name of result number 2 is a duplicate of the name of result number 0}}
68+
// expected-error@+1 {{name of result #2 is a duplicate of the name of result #0}}
6969
irdl.results(foo: %0, bar: %0, foo: %0)
7070
}
7171
}
@@ -75,7 +75,7 @@ irdl.dialect @testd {
7575
irdl.dialect @testd {
7676
irdl.operation @op {
7777
%0 = irdl.any
78-
// expected-error@+1 {{name of operand number 2 is a duplicate of the name of operand number 0}}
78+
// expected-error@+1 {{name of operand #2 is a duplicate of the name of operand #0}}
7979
irdl.operands(foo: %0, bar: %0, foo: %0)
8080
}
8181
}

mlir/test/Dialect/IRDL/regions-ops.irdl.mlir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ irdl.dialect @testRegionsOpMissingName {
2222
irdl.dialect @testRegionsOpWrongName {
2323
irdl.operation @op {
2424
%r1 = irdl.region
25-
// expected-error @below {{name of region number 0 must contain only letters, digits and underscores}}
25+
// expected-error @below {{name of region #0 must contain only letters, digits and underscores}}
2626
irdl.regions(test$test: %r1)
2727
}
2828
}
@@ -32,7 +32,7 @@ irdl.dialect @testRegionsOpWrongName {
3232
irdl.dialect @testRegionsDuplicateName {
3333
irdl.operation @op {
3434
%r1 = irdl.region
35-
// expected-error @below {{name of region number 2 is a duplicate of the name of region number 0}}
35+
// expected-error @below {{name of region #2 is a duplicate of the name of region #0}}
3636
irdl.regions(foo: %r1, bar: %r1, foo: %r1)
3737
}
3838
}

0 commit comments

Comments
 (0)