Skip to content

Commit 17f7259

Browse files
authored
Fix discrepancy in EmitC parser/printer (#190)
1 parent 774e3c1 commit 17f7259

File tree

3 files changed

+27
-28
lines changed

3 files changed

+27
-28
lines changed

mlir/lib/Dialect/EmitC/IR/EmitC.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -399,9 +399,9 @@ ParseResult ForOp::parse(OpAsmParser &parser, OperationState &result) {
399399
SmallVector<OpAsmParser::UnresolvedOperand, 4> operands;
400400
regionArgs.push_back(inductionVariable);
401401

402-
// Parse optional type, else assume Index.
402+
// Parse optional type, else assume size_t.
403403
if (parser.parseOptionalColon())
404-
type = builder.getIndexType();
404+
type = emitc::SizeTType::get(builder.getContext());
405405
else if (parser.parseType(type))
406406
return failure();
407407

@@ -431,8 +431,7 @@ void ForOp::print(OpAsmPrinter &p) {
431431
<< getUpperBound() << " step " << getStep();
432432

433433
p << ' ';
434-
if (Type t = getInductionVar().getType();
435-
!(t.isIndex() || emitc::isAnySizeTType(t)))
434+
if (Type t = getInductionVar().getType(); !(isa<emitc::SizeTType>(t)))
436435
p << " : " << t << ' ';
437436
p.printRegion(getRegion(),
438437
/*printEntryBlockArgs=*/false,

mlir/test/Dialect/EmitC/ops.mlir

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,16 +192,16 @@ func.func @test_expression(%arg0: i32, %arg1: i32, %arg2: i32, %arg3: f32, %arg4
192192
return %r : i32
193193
}
194194

195-
func.func @test_for(%arg0 : index, %arg1 : index, %arg2 : index) {
195+
func.func @test_for(%arg0 : !emitc.size_t, %arg1 : !emitc.size_t, %arg2 : !emitc.size_t) {
196196
emitc.for %i0 = %arg0 to %arg1 step %arg2 {
197-
%0 = emitc.call_opaque "func_const"(%i0) : (index) -> i32
197+
%0 = emitc.call_opaque "func_const"(%i0) : (!emitc.size_t) -> i32
198198
}
199199
return
200200
}
201201

202-
func.func @test_for_explicit_yield(%arg0 : index, %arg1 : index, %arg2 : index) {
202+
func.func @test_for_explicit_yield(%arg0 : !emitc.size_t, %arg1 : !emitc.size_t, %arg2 : !emitc.size_t) {
203203
emitc.for %i0 = %arg0 to %arg1 step %arg2 {
204-
%0 = emitc.call_opaque "func_const"(%i0) : (index) -> i32
204+
%0 = emitc.call_opaque "func_const"(%i0) : (!emitc.size_t) -> i32
205205
emitc.yield
206206
}
207207
return

mlir/test/Target/Cpp/for.mlir

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
// RUN: mlir-translate -mlir-to-cpp %s | FileCheck %s -check-prefix=CPP-DEFAULT
22
// RUN: mlir-translate -mlir-to-cpp -declare-variables-at-top %s | FileCheck %s -check-prefix=CPP-DECLTOP
33

4-
func.func @test_for(%arg0 : index, %arg1 : index, %arg2 : index) {
5-
%lb = emitc.expression : index {
6-
%a = emitc.add %arg0, %arg1 : (index, index) -> index
7-
emitc.yield %a : index
4+
func.func @test_for(%arg0 : !emitc.size_t, %arg1 : !emitc.size_t, %arg2 : !emitc.size_t) {
5+
%lb = emitc.expression : !emitc.size_t {
6+
%a = emitc.add %arg0, %arg1 : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
7+
emitc.yield %a : !emitc.size_t
88
}
9-
%ub = emitc.expression : index {
10-
%a = emitc.mul %arg1, %arg2 : (index, index) -> index
11-
emitc.yield %a : index
9+
%ub = emitc.expression : !emitc.size_t {
10+
%a = emitc.mul %arg1, %arg2 : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
11+
emitc.yield %a : !emitc.size_t
1212
}
13-
%step = emitc.expression : index {
14-
%a = emitc.div %arg0, %arg2 : (index, index) -> index
15-
emitc.yield %a : index
13+
%step = emitc.expression : !emitc.size_t {
14+
%a = emitc.div %arg0, %arg2 : (!emitc.size_t, !emitc.size_t) -> !emitc.size_t
15+
emitc.yield %a : !emitc.size_t
1616
}
1717
emitc.for %i0 = %lb to %ub step %step {
1818
%0 = emitc.call_opaque "f"() : () -> i32
@@ -33,9 +33,9 @@ func.func @test_for(%arg0 : index, %arg1 : index, %arg2 : index) {
3333
// CPP-DECLTOP-NEXT: return;
3434

3535
func.func @test_for_yield() {
36-
%start = "emitc.constant"() <{value = 0 : index}> : () -> index
37-
%stop = "emitc.constant"() <{value = 10 : index}> : () -> index
38-
%step = "emitc.constant"() <{value = 1 : index}> : () -> index
36+
%start = "emitc.constant"() <{value = 0 : index}> : () -> !emitc.size_t
37+
%stop = "emitc.constant"() <{value = 10 : index}> : () -> !emitc.size_t
38+
%step = "emitc.constant"() <{value = 1 : index}> : () -> !emitc.size_t
3939

4040
%s0 = "emitc.constant"() <{value = 0 : i32}> : () -> i32
4141
%p0 = "emitc.constant"() <{value = 1.0 : f32}> : () -> f32
@@ -47,8 +47,8 @@ func.func @test_for_yield() {
4747
emitc.assign %s0 : i32 to %2 : i32
4848
emitc.assign %p0 : f32 to %3 : f32
4949
emitc.for %iter = %start to %stop step %step {
50-
%sn = emitc.call_opaque "add"(%2, %iter) : (i32, index) -> i32
51-
%pn = emitc.call_opaque "mul"(%3, %iter) : (f32, index) -> f32
50+
%sn = emitc.call_opaque "add"(%2, %iter) : (i32, !emitc.size_t) -> i32
51+
%pn = emitc.call_opaque "mul"(%3, %iter) : (f32, !emitc.size_t) -> f32
5252
emitc.assign %sn : i32 to %2 : i32
5353
emitc.assign %pn : f32 to %3 : f32
5454
emitc.yield
@@ -114,9 +114,9 @@ func.func @test_for_yield() {
114114
// CPP-DECLTOP-NEXT: return;
115115

116116
func.func @test_for_yield_2() {
117-
%start = emitc.literal "0" : index
118-
%stop = emitc.literal "10" : index
119-
%step = emitc.literal "1" : index
117+
%start = emitc.literal "0" : !emitc.size_t
118+
%stop = emitc.literal "10" : !emitc.size_t
119+
%step = emitc.literal "1" : !emitc.size_t
120120

121121
%s0 = emitc.literal "0" : i32
122122
%p0 = emitc.literal "M_PI" : f32
@@ -128,8 +128,8 @@ func.func @test_for_yield_2() {
128128
emitc.assign %s0 : i32 to %2 : i32
129129
emitc.assign %p0 : f32 to %3 : f32
130130
emitc.for %iter = %start to %stop step %step {
131-
%sn = emitc.call_opaque "add"(%2, %iter) : (i32, index) -> i32
132-
%pn = emitc.call_opaque "mul"(%3, %iter) : (f32, index) -> f32
131+
%sn = emitc.call_opaque "add"(%2, %iter) : (i32, !emitc.size_t) -> i32
132+
%pn = emitc.call_opaque "mul"(%3, %iter) : (f32, !emitc.size_t) -> f32
133133
emitc.assign %sn : i32 to %2 : i32
134134
emitc.assign %pn : f32 to %3 : f32
135135
emitc.yield

0 commit comments

Comments
 (0)