@@ -28,7 +28,6 @@ def MemRefTypeAttr
28
28
class MemRef_Op<string mnemonic, list<Trait> traits = []>
29
29
: Op<MemRef_Dialect, mnemonic, traits> {
30
30
let printer = [{ return ::print(p, *this); }];
31
- let verifier = [{ return ::verify(*this); }];
32
31
let parser = [{ return ::parse$cppClass(parser, result); }];
33
32
}
34
33
@@ -93,6 +92,7 @@ class AllocLikeOp<string mnemonic,
93
92
}];
94
93
95
94
let hasCanonicalizer = 1;
95
+ let hasVerifier = 1;
96
96
}
97
97
98
98
//===----------------------------------------------------------------------===//
@@ -115,6 +115,7 @@ def AssumeAlignmentOp : MemRef_Op<"assume_alignment"> {
115
115
let results = (outs);
116
116
117
117
let assemblyFormat = "$memref `,` $alignment attr-dict `:` type($memref)";
118
+ let hasVerifier = 1;
118
119
}
119
120
120
121
//===----------------------------------------------------------------------===//
@@ -162,6 +163,7 @@ def MemRef_AllocOp : AllocLikeOp<"alloc", DefaultResource, []> {
162
163
memref<8x64xf32, affine_map<(d0, d1)[s0] -> ((d0 + s0), d1)>, 1>
163
164
```
164
165
}];
166
+ let hasVerifier = 1;
165
167
}
166
168
167
169
//===----------------------------------------------------------------------===//
@@ -205,6 +207,7 @@ def MemRef_AllocaOp : AllocLikeOp<"alloca", AutomaticAllocationScopeResource> {
205
207
an alignment on any convenient boundary compatible with the type will be
206
208
chosen.
207
209
}];
210
+ let hasVerifier = 1;
208
211
}
209
212
210
213
//===----------------------------------------------------------------------===//
@@ -253,6 +256,7 @@ def MemRef_AllocaScopeOp : MemRef_Op<"alloca_scope",
253
256
254
257
let results = (outs Variadic<AnyType>:$results);
255
258
let regions = (region SizedRegion<1>:$bodyRegion);
259
+ let hasVerifier = 1;
256
260
}
257
261
258
262
//===----------------------------------------------------------------------===//
@@ -279,11 +283,7 @@ def MemRef_AllocaScopeReturnOp : MemRef_Op<"alloca_scope.return",
279
283
let arguments = (ins Variadic<AnyType>:$results);
280
284
let builders = [OpBuilder<(ins), [{ /*nothing to do */ }]>];
281
285
282
- let assemblyFormat =
283
- [{ attr-dict ($results^ `:` type($results))? }];
284
-
285
- // No custom verification needed.
286
- let verifier = ?;
286
+ let assemblyFormat = "attr-dict ($results^ `:` type($results))?";
287
287
}
288
288
289
289
//===----------------------------------------------------------------------===//
@@ -355,7 +355,6 @@ def MemRef_CastOp : MemRef_Op<"cast", [
355
355
let arguments = (ins AnyRankedOrUnrankedMemRef:$source);
356
356
let results = (outs AnyRankedOrUnrankedMemRef:$dest);
357
357
let assemblyFormat = "$source attr-dict `:` type($source) `to` type($dest)";
358
- let verifier = "return impl::verifyCastOp(*this, areCastCompatible);";
359
358
let builders = [
360
359
OpBuilder<(ins "Value":$source, "Type":$destType), [{
361
360
impl::buildCastOp($_builder, $_state, source, destType);
@@ -370,6 +369,7 @@ def MemRef_CastOp : MemRef_Op<"cast", [
370
369
}];
371
370
372
371
let hasFolder = 1;
372
+ let hasVerifier = 1;
373
373
}
374
374
375
375
//===----------------------------------------------------------------------===//
@@ -408,7 +408,6 @@ def CopyOp : MemRef_Op<"copy",
408
408
409
409
let hasCanonicalizer = 1;
410
410
let hasFolder = 1;
411
- let verifier = ?;
412
411
}
413
412
414
413
//===----------------------------------------------------------------------===//
@@ -434,7 +433,6 @@ def MemRef_DeallocOp : MemRef_Op<"dealloc", [MemRefsNormalizable]> {
434
433
let arguments = (ins Arg<AnyRankedOrUnrankedMemRef, "", [MemFree]>:$memref);
435
434
436
435
let hasFolder = 1;
437
- let verifier = ?;
438
436
let assemblyFormat = "$memref attr-dict `:` type($memref)";
439
437
}
440
438
@@ -488,6 +486,7 @@ def MemRef_DimOp : MemRef_Op<"dim", [NoSideEffect, MemRefsNormalizable]> {
488
486
489
487
let hasCanonicalizer = 1;
490
488
let hasFolder = 1;
489
+ let hasVerifier = 1;
491
490
}
492
491
493
492
//===----------------------------------------------------------------------===//
@@ -646,6 +645,7 @@ def MemRef_DmaStartOp : MemRef_Op<"dma_start"> {
646
645
}
647
646
}];
648
647
let hasFolder = 1;
648
+ let hasVerifier = 1;
649
649
}
650
650
651
651
//===----------------------------------------------------------------------===//
@@ -697,6 +697,7 @@ def MemRef_DmaWaitOp : MemRef_Op<"dma_wait"> {
697
697
Value getNumElements() { return numElements(); }
698
698
}];
699
699
let hasFolder = 1;
700
+ let hasVerifier = 1;
700
701
}
701
702
702
703
//===----------------------------------------------------------------------===//
@@ -757,6 +758,7 @@ def GenericAtomicRMWOp : MemRef_Op<"generic_atomic_rmw", [
757
758
return memref().getType().cast<MemRefType>();
758
759
}
759
760
}];
761
+ let hasVerifier = 1;
760
762
}
761
763
762
764
def AtomicYieldOp : MemRef_Op<"atomic_yield", [
@@ -772,6 +774,7 @@ def AtomicYieldOp : MemRef_Op<"atomic_yield", [
772
774
773
775
let arguments = (ins AnyType:$result);
774
776
let assemblyFormat = "$result attr-dict `:` type($result)";
777
+ let hasVerifier = 1;
775
778
}
776
779
777
780
//===----------------------------------------------------------------------===//
@@ -797,9 +800,6 @@ def MemRef_GetGlobalOp : MemRef_Op<"get_global",
797
800
let arguments = (ins FlatSymbolRefAttr:$name);
798
801
let results = (outs AnyStaticShapeMemRef:$result);
799
802
let assemblyFormat = "$name `:` type($result) attr-dict";
800
-
801
- // `GetGlobalOp` is fully verified by its traits.
802
- let verifier = ?;
803
803
}
804
804
805
805
//===----------------------------------------------------------------------===//
@@ -866,6 +866,7 @@ def MemRef_GlobalOp : MemRef_Op<"global", [Symbol]> {
866
866
return !isExternal() && initial_value().getValue().isa<UnitAttr>();
867
867
}
868
868
}];
869
+ let hasVerifier = 1;
869
870
}
870
871
871
872
//===----------------------------------------------------------------------===//
@@ -939,6 +940,7 @@ def LoadOp : MemRef_Op<"load",
939
940
}];
940
941
941
942
let hasFolder = 1;
943
+ let hasVerifier = 1;
942
944
943
945
let assemblyFormat = "$memref `[` $indices `]` attr-dict `:` type($memref)";
944
946
}
@@ -982,6 +984,7 @@ def MemRef_PrefetchOp : MemRef_Op<"prefetch"> {
982
984
}];
983
985
984
986
let hasFolder = 1;
987
+ let hasVerifier = 1;
985
988
}
986
989
987
990
//===----------------------------------------------------------------------===//
@@ -1034,6 +1037,7 @@ def MemRef_ReinterpretCastOp:
1034
1037
1035
1038
let parser = ?;
1036
1039
let printer = ?;
1040
+ let hasVerifier = 1;
1037
1041
1038
1042
let builders = [
1039
1043
// Build a ReinterpretCastOp with mixed static and dynamic entries.
@@ -1096,7 +1100,6 @@ def MemRef_RankOp : MemRef_Op<"rank", [NoSideEffect]> {
1096
1100
let arguments = (ins AnyRankedOrUnrankedMemRef:$memref);
1097
1101
let results = (outs Index);
1098
1102
1099
- let verifier = ?;
1100
1103
let hasFolder = 1;
1101
1104
let assemblyFormat = "$memref attr-dict `:` type($memref)";
1102
1105
}
@@ -1161,6 +1164,7 @@ def MemRef_ReshapeOp: MemRef_Op<"reshape", [
1161
1164
let assemblyFormat = [{
1162
1165
$source `(` $shape `)` attr-dict `:` functional-type(operands, results)
1163
1166
}];
1167
+ let hasVerifier = 1;
1164
1168
}
1165
1169
1166
1170
//===----------------------------------------------------------------------===//
@@ -1226,6 +1230,7 @@ class MemRef_ReassociativeReshapeOp<string mnemonic, list<Trait> traits = []> :
1226
1230
1227
1231
let hasFolder = 1;
1228
1232
let hasCanonicalizer = 1;
1233
+ let hasVerifier = 1;
1229
1234
let printer = [{ return ::print(p, *this); }];
1230
1235
let parser = [{ return ::parseReshapeLikeOp(parser, result); }];
1231
1236
}
@@ -1265,6 +1270,7 @@ def MemRef_ExpandShapeOp : MemRef_ReassociativeReshapeOp<"expand_shape"> {
1265
1270
```
1266
1271
}];
1267
1272
let extraClassDeclaration = commonExtraClassDeclaration;
1273
+ let hasVerifier = 1;
1268
1274
}
1269
1275
1270
1276
def MemRef_CollapseShapeOp : MemRef_ReassociativeReshapeOp<"collapse_shape"> {
@@ -1302,6 +1308,7 @@ def MemRef_CollapseShapeOp : MemRef_ReassociativeReshapeOp<"collapse_shape"> {
1302
1308
```
1303
1309
}];
1304
1310
let extraClassDeclaration = commonExtraClassDeclaration;
1311
+ let hasVerifier = 1;
1305
1312
}
1306
1313
1307
1314
//===----------------------------------------------------------------------===//
@@ -1369,6 +1376,7 @@ def MemRef_StoreOp : MemRef_Op<"store",
1369
1376
}];
1370
1377
1371
1378
let hasFolder = 1;
1379
+ let hasVerifier = 1;
1372
1380
1373
1381
let assemblyFormat = [{
1374
1382
$value `,` $memref `[` $indices `]` attr-dict `:` type($memref)
@@ -1617,6 +1625,7 @@ def SubViewOp : BaseOpWithOffsetSizesAndStrides<
1617
1625
1618
1626
let hasCanonicalizer = 1;
1619
1627
let hasFolder = 1;
1628
+ let hasVerifier = 1;
1620
1629
}
1621
1630
1622
1631
//===----------------------------------------------------------------------===//
@@ -1645,8 +1654,6 @@ def TensorStoreOp : MemRef_Op<"tensor_store",
1645
1654
1646
1655
let arguments = (ins AnyTensor:$tensor, Arg<AnyRankedOrUnrankedMemRef,
1647
1656
"the reference to store to", [MemWrite]>:$memref);
1648
- // TensorStoreOp is fully verified by traits.
1649
- let verifier = ?;
1650
1657
1651
1658
let assemblyFormat = "$tensor `,` $memref attr-dict `:` type($memref)";
1652
1659
}
@@ -1681,6 +1688,7 @@ def MemRef_TransposeOp : MemRef_Op<"transpose", [NoSideEffect]>,
1681
1688
}];
1682
1689
1683
1690
let hasFolder = 1;
1691
+ let hasVerifier = 1;
1684
1692
}
1685
1693
1686
1694
//===----------------------------------------------------------------------===//
@@ -1749,6 +1757,7 @@ def MemRef_ViewOp : MemRef_Op<"view", [
1749
1757
}];
1750
1758
1751
1759
let hasCanonicalizer = 1;
1760
+ let hasVerifier = 1;
1752
1761
}
1753
1762
1754
1763
//===----------------------------------------------------------------------===//
@@ -1796,6 +1805,7 @@ def AtomicRMWOp : MemRef_Op<"atomic_rmw", [
1796
1805
}
1797
1806
}];
1798
1807
let hasFolder = 1;
1808
+ let hasVerifier = 1;
1799
1809
}
1800
1810
1801
1811
#endif // MEMREF_OPS
0 commit comments