File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed
lib/Conversion/MemRefToEmitC
test/Conversion/MemRefToEmitC Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -167,7 +167,9 @@ void mlir::populateMemRefToEmitCTypeConversion(TypeConverter &typeConverter) {
167
167
typeConverter.addConversion (
168
168
[&](MemRefType memRefType) -> std::optional<Type> {
169
169
if (!memRefType.hasStaticShape () ||
170
- !memRefType.getLayout ().isIdentity () || memRefType.getRank () == 0 ) {
170
+ !memRefType.getLayout ().isIdentity () || memRefType.getRank () == 0 ||
171
+ llvm::any_of (memRefType.getShape (),
172
+ [](int64_t dim) { return dim == 0 ; })) {
171
173
return {};
172
174
}
173
175
Type convertedElementType =
Original file line number Diff line number Diff line change @@ -41,6 +41,22 @@ func.func @zero_rank() {
41
41
42
42
// -----
43
43
44
+ func.func @zero_dim_rank_1 () {
45
+ // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
46
+ %0 = memref.alloca () : memref <0 xf32 >
47
+ return
48
+ }
49
+
50
+ // -----
51
+
52
+ func.func @zero_dim_rank_3 () {
53
+ // expected-error@+1 {{failed to legalize operation 'memref.alloca'}}
54
+ %0 = memref.alloca () : memref <2 x0 x4 xf32 >
55
+ return
56
+ }
57
+
58
+ // -----
59
+
44
60
// expected-error@+1 {{failed to legalize operation 'memref.global'}}
45
61
memref.global " nested" constant @nested_global : memref <3 x7 xf32 >
46
62
You can’t perform that action at this time.
0 commit comments