Skip to content

Commit eff9984

Browse files
committed
Fix TODO in the mlir-cpu-runner/bare_ptr_call_conv.mlir test: call ops in bare-ptr calling convention is supported now (NFC)
This was fixed in a89fc12.
1 parent 92e1ebe commit eff9984

File tree

1 file changed

+31
-146
lines changed

1 file changed

+31
-146
lines changed

mlir/test/mlir-cpu-runner/bare_ptr_call_conv.mlir

Lines changed: 31 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -32,152 +32,37 @@ func @printF32(%arg0: f32)
3232
func @printComma()
3333
func @printNewline()
3434

35-
// TODO: 'main' function currently has to be provided in LLVM dialect since
36-
// 'call' op is not yet supported by the bare pointer calling convention. The
37-
// LLVM dialect version was generated using the following loop/std dialect
38-
// version and minor changes around the 'simple_add1_add2_test' call.
35+
func @main()
36+
{
37+
%c2 = constant 2 : index
38+
%c0 = constant 0 : index
39+
%c1 = constant 1 : index
40+
%cst = constant 1.000000e+00 : f32
41+
%cst_0 = constant 2.000000e+00 : f32
42+
%a = alloc() : memref<2xf32>
43+
%b = alloc() : memref<2xf32>
44+
scf.for %i = %c0 to %c2 step %c1 {
45+
store %cst, %a[%i] : memref<2xf32>
46+
store %cst, %b[%i] : memref<2xf32>
47+
}
48+
49+
call @simple_add1_add2_test(%a, %b) : (memref<2xf32>, memref<2xf32>) -> ()
3950

40-
//func @main()
41-
//{
42-
// %c2 = constant 2 : index
43-
// %c0 = constant 0 : index
44-
// %c1 = constant 1 : index
45-
// %cst = constant 1.000000e+00 : f32
46-
// %cst_0 = constant 2.000000e+00 : f32
47-
// %a = alloc() : memref<2xf32>
48-
// %b = alloc() : memref<2xf32>
49-
// scf.for %i = %c0 to %c2 step %c1 {
50-
// store %cst, %a[%i] : memref<2xf32>
51-
// store %cst, %b[%i] : memref<2xf32>
52-
// }
53-
//
54-
// call @simple_add1_add2_test(%a, %b) : (memref<2xf32>, memref<2xf32>) -> ()
55-
//
56-
// %l0 = load %a[%c0] : memref<2xf32>
57-
// call @printF32(%l0) : (f32) -> ()
58-
// call @printComma() : () -> ()
59-
// %l1 = load %a[%c1] : memref<2xf32>
60-
// call @printF32(%l1) : (f32) -> ()
61-
// call @printNewline() : () -> ()
62-
//
63-
// %l2 = load %b[%c0] : memref<2xf32>
64-
// call @printF32(%l2) : (f32) -> ()
65-
// call @printComma() : () -> ()
66-
// %l3 = load %b[%c1] : memref<2xf32>
67-
// call @printF32(%l3) : (f32) -> ()
68-
// call @printNewline() : () -> ()
69-
//
70-
// dealloc %a : memref<2xf32>
71-
// dealloc %b : memref<2xf32>
72-
// return
73-
//}
51+
%l0 = load %a[%c0] : memref<2xf32>
52+
call @printF32(%l0) : (f32) -> ()
53+
call @printComma() : () -> ()
54+
%l1 = load %a[%c1] : memref<2xf32>
55+
call @printF32(%l1) : (f32) -> ()
56+
call @printNewline() : () -> ()
7457

75-
llvm.func @main() {
76-
%0 = llvm.mlir.constant(2 : index) : !llvm.i64
77-
%1 = llvm.mlir.constant(0 : index) : !llvm.i64
78-
%2 = llvm.mlir.constant(1 : index) : !llvm.i64
79-
%3 = llvm.mlir.constant(1.000000e+00 : f32) : !llvm.float
80-
%4 = llvm.mlir.constant(2.000000e+00 : f32) : !llvm.float
81-
%5 = llvm.mlir.constant(2 : index) : !llvm.i64
82-
%6 = llvm.mlir.null : !llvm.ptr<float>
83-
%7 = llvm.mlir.constant(1 : index) : !llvm.i64
84-
%8 = llvm.getelementptr %6[%7] : (!llvm.ptr<float>, !llvm.i64) -> !llvm.ptr<float>
85-
%9 = llvm.ptrtoint %8 : !llvm.ptr<float> to !llvm.i64
86-
%10 = llvm.mul %5, %9 : !llvm.i64
87-
%11 = llvm.call @malloc(%10) : (!llvm.i64) -> !llvm.ptr<i8>
88-
%12 = llvm.bitcast %11 : !llvm.ptr<i8> to !llvm.ptr<float>
89-
%13 = llvm.mlir.undef : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
90-
%14 = llvm.insertvalue %12, %13[0] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
91-
%15 = llvm.insertvalue %12, %14[1] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
92-
%16 = llvm.mlir.constant(0 : index) : !llvm.i64
93-
%17 = llvm.insertvalue %16, %15[2] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
94-
%18 = llvm.mlir.constant(1 : index) : !llvm.i64
95-
%19 = llvm.insertvalue %5, %17[3, 0] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
96-
%20 = llvm.insertvalue %18, %19[4, 0] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
97-
%21 = llvm.mlir.constant(2 : index) : !llvm.i64
98-
%22 = llvm.mlir.null : !llvm.ptr<float>
99-
%23 = llvm.mlir.constant(1 : index) : !llvm.i64
100-
%24 = llvm.getelementptr %22[%23] : (!llvm.ptr<float>, !llvm.i64) -> !llvm.ptr<float>
101-
%25 = llvm.ptrtoint %24 : !llvm.ptr<float> to !llvm.i64
102-
%26 = llvm.mul %21, %25 : !llvm.i64
103-
%27 = llvm.call @malloc(%26) : (!llvm.i64) -> !llvm.ptr<i8>
104-
%28 = llvm.bitcast %27 : !llvm.ptr<i8> to !llvm.ptr<float>
105-
%29 = llvm.mlir.undef : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
106-
%30 = llvm.insertvalue %28, %29[0] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
107-
%31 = llvm.insertvalue %28, %30[1] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
108-
%32 = llvm.mlir.constant(0 : index) : !llvm.i64
109-
%33 = llvm.insertvalue %32, %31[2] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
110-
%34 = llvm.mlir.constant(1 : index) : !llvm.i64
111-
%35 = llvm.insertvalue %21, %33[3, 0] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
112-
%36 = llvm.insertvalue %34, %35[4, 0] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
113-
llvm.br ^bb1(%1 : !llvm.i64)
114-
^bb1(%37: !llvm.i64): // 2 preds: ^bb0, ^bb2
115-
%38 = llvm.icmp "slt" %37, %0 : !llvm.i64
116-
llvm.cond_br %38, ^bb2, ^bb3
117-
^bb2: // pred: ^bb1
118-
%39 = llvm.extractvalue %20[1] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
119-
%40 = llvm.mlir.constant(0 : index) : !llvm.i64
120-
%41 = llvm.mlir.constant(1 : index) : !llvm.i64
121-
%42 = llvm.mul %37, %41 : !llvm.i64
122-
%43 = llvm.add %40, %42 : !llvm.i64
123-
%44 = llvm.getelementptr %39[%43] : (!llvm.ptr<float>, !llvm.i64) -> !llvm.ptr<float>
124-
llvm.store %3, %44 : !llvm.ptr<float>
125-
%45 = llvm.extractvalue %36[1] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
126-
%46 = llvm.mlir.constant(0 : index) : !llvm.i64
127-
%47 = llvm.mlir.constant(1 : index) : !llvm.i64
128-
%48 = llvm.mul %37, %47 : !llvm.i64
129-
%49 = llvm.add %46, %48 : !llvm.i64
130-
%50 = llvm.getelementptr %45[%49] : (!llvm.ptr<float>, !llvm.i64) -> !llvm.ptr<float>
131-
llvm.store %3, %50 : !llvm.ptr<float>
132-
%51 = llvm.add %37, %2 : !llvm.i64
133-
llvm.br ^bb1(%51 : !llvm.i64)
134-
^bb3: // pred: ^bb1
135-
%52 = llvm.mlir.constant(1 : index) : !llvm.i64
136-
%53 = llvm.mlir.constant(1 : index) : !llvm.i64
137-
%54 = llvm.extractvalue %20[1] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
138-
%55 = llvm.extractvalue %36[1] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
139-
llvm.call @simple_add1_add2_test(%54, %55) : (!llvm.ptr<float>, !llvm.ptr<float>) -> ()
140-
%56 = llvm.extractvalue %20[1] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
141-
%57 = llvm.mlir.constant(0 : index) : !llvm.i64
142-
%58 = llvm.mlir.constant(1 : index) : !llvm.i64
143-
%59 = llvm.mul %1, %58 : !llvm.i64
144-
%60 = llvm.add %57, %59 : !llvm.i64
145-
%61 = llvm.getelementptr %56[%60] : (!llvm.ptr<float>, !llvm.i64) -> !llvm.ptr<float>
146-
%62 = llvm.load %61 : !llvm.ptr<float>
147-
llvm.call @printF32(%62) : (!llvm.float) -> ()
148-
llvm.call @printComma() : () -> ()
149-
%63 = llvm.extractvalue %20[1] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
150-
%64 = llvm.mlir.constant(0 : index) : !llvm.i64
151-
%65 = llvm.mlir.constant(1 : index) : !llvm.i64
152-
%66 = llvm.mul %2, %65 : !llvm.i64
153-
%67 = llvm.add %64, %66 : !llvm.i64
154-
%68 = llvm.getelementptr %63[%67] : (!llvm.ptr<float>, !llvm.i64) -> !llvm.ptr<float>
155-
%69 = llvm.load %68 : !llvm.ptr<float>
156-
llvm.call @printF32(%69) : (!llvm.float) -> ()
157-
llvm.call @printNewline() : () -> ()
158-
%70 = llvm.extractvalue %36[1] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
159-
%71 = llvm.mlir.constant(0 : index) : !llvm.i64
160-
%72 = llvm.mlir.constant(1 : index) : !llvm.i64
161-
%73 = llvm.mul %1, %72 : !llvm.i64
162-
%74 = llvm.add %71, %73 : !llvm.i64
163-
%75 = llvm.getelementptr %70[%74] : (!llvm.ptr<float>, !llvm.i64) -> !llvm.ptr<float>
164-
%76 = llvm.load %75 : !llvm.ptr<float>
165-
llvm.call @printF32(%76) : (!llvm.float) -> ()
166-
llvm.call @printComma() : () -> ()
167-
%77 = llvm.extractvalue %36[1] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
168-
%78 = llvm.mlir.constant(0 : index) : !llvm.i64
169-
%79 = llvm.mlir.constant(1 : index) : !llvm.i64
170-
%80 = llvm.mul %2, %79 : !llvm.i64
171-
%81 = llvm.add %78, %80 : !llvm.i64
172-
%82 = llvm.getelementptr %77[%81] : (!llvm.ptr<float>, !llvm.i64) -> !llvm.ptr<float>
173-
%83 = llvm.load %82 : !llvm.ptr<float>
174-
llvm.call @printF32(%83) : (!llvm.float) -> ()
175-
llvm.call @printNewline() : () -> ()
176-
%84 = llvm.extractvalue %20[0] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
177-
%85 = llvm.bitcast %84 : !llvm.ptr<float> to !llvm.ptr<i8>
178-
llvm.call @free(%85) : (!llvm.ptr<i8>) -> ()
179-
%86 = llvm.extractvalue %36[0] : !llvm.struct<(ptr<float>, ptr<float>, i64, array<1 x i64>, array<1 x i64>)>
180-
%87 = llvm.bitcast %86 : !llvm.ptr<float> to !llvm.ptr<i8>
181-
llvm.call @free(%87) : (!llvm.ptr<i8>) -> ()
182-
llvm.return
58+
%l2 = load %b[%c0] : memref<2xf32>
59+
call @printF32(%l2) : (f32) -> ()
60+
call @printComma() : () -> ()
61+
%l3 = load %b[%c1] : memref<2xf32>
62+
call @printF32(%l3) : (f32) -> ()
63+
call @printNewline() : () -> ()
64+
65+
dealloc %a : memref<2xf32>
66+
dealloc %b : memref<2xf32>
67+
return
18368
}

0 commit comments

Comments
 (0)