Skip to content

Commit cc625e9

Browse files
cmarcelolanza
authored andcommitted
[CIR] Fix invalid alias name for dialect's struct types
For those types, the mangled name started with a number which is not a valid start character for alias types in MLIR. Prefix these aliases with "ty_". Relates to #9.
1 parent 4d15b25 commit cc625e9

File tree

11 files changed

+95
-94
lines changed

11 files changed

+95
-94
lines changed

clang/include/clang/CIR/Dialect/IR/CIROps.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1124,9 +1124,9 @@ def StructElementAddr : CIR_Op<"struct_element_addr"> {
11241124

11251125
Example:
11261126
```mlir
1127-
!22struct2EBar22 = type !cir.struct<"struct.Bar", i32, i8>
1127+
!ty_22struct2EBar22 = type !cir.struct<"struct.Bar", i32, i8>
11281128
...
1129-
%0 = cir.alloca !22struct2EBar22, cir.ptr <!22struct2EBar22>
1129+
%0 = cir.alloca !ty_22struct2EBar22, cir.ptr <!ty_22struct2EBar22>
11301130
...
11311131
%1 = cir.struct_element_addr %0, "Bar.a"
11321132
%2 = cir.load %1 : cir.ptr <int>, int

clang/lib/CIR/Dialect/IR/CIRDialect.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ struct CIROpAsmDialectInterface : public OpAsmDialectInterface {
4141

4242
AliasResult getAlias(Type type, raw_ostream &os) const final {
4343
if (auto structType = type.dyn_cast<StructType>()) {
44-
os << structType.getTypeName();
44+
os << "ty_" << structType.getTypeName();
4545
return AliasResult::OverridableAlias;
4646
}
4747

clang/test/CIR/CodeGen/String.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,56 +18,56 @@ void test() {
1818
}
1919

2020
// CHECK: cir.func linkonce_odr @_ZN6StringC2Ev
21-
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!22class2EString22>
21+
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!ty_22class2EString22>
2222
// CHECK-NEXT: cir.store %arg0, %0
2323
// CHECK-NEXT: %1 = cir.load %0
2424
// CHECK-NEXT: %2 = "cir.struct_element_addr"(%0) <{member_name = "storage"}>
2525
// CHECK-NEXT: %3 = cir.cst(#cir.null : !cir.ptr<i8>) : !cir.ptr<i8>
2626
// CHECK-NEXT: cir.store %3, %2 : !cir.ptr<i8>, cir.ptr <!cir.ptr<i8>>
27-
// CHECK-NEXT: %4 = "cir.struct_element_addr"(%0) <{member_name = "size"}> : (!cir.ptr<!cir.ptr<!22class2EString22>>) -> !cir.ptr<i64>
27+
// CHECK-NEXT: %4 = "cir.struct_element_addr"(%0) <{member_name = "size"}> : (!cir.ptr<!cir.ptr<!ty_22class2EString22>>) -> !cir.ptr<i64>
2828
// CHECK-NEXT: %5 = cir.cst(0 : i32) : i32
2929
// CHECK-NEXT: %6 = cir.cast(integral, %5 : i32), i64
3030
// CHECK-NEXT: cir.store %6, %4 : i64, cir.ptr <i64>
3131
// CHECK-NEXT: cir.return
3232
// CHECK-NEXT: }
3333
// CHECK: cir.func linkonce_odr @_ZN6StringC2Ei
34-
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!22class2EString22>
34+
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!ty_22class2EString22>
3535
// CHECK-NEXT: %1 = cir.alloca i32, cir.ptr <i32>, ["size", init]
3636
// CHECK-NEXT: cir.store %arg0, %0
3737
// CHECK-NEXT: cir.store %arg1, %1
3838
// CHECK-NEXT: %2 = cir.load %0
3939
// CHECK-NEXT: %3 = "cir.struct_element_addr"(%0) <{member_name = "storage"}>
4040
// CHECK-NEXT: %4 = cir.cst(#cir.null : !cir.ptr<i8>)
4141
// CHECK-NEXT: cir.store %4, %3
42-
// CHECK-NEXT: %5 = "cir.struct_element_addr"(%0) <{member_name = "size"}> : (!cir.ptr<!cir.ptr<!22class2EString22>>) -> !cir.ptr<i64>
42+
// CHECK-NEXT: %5 = "cir.struct_element_addr"(%0) <{member_name = "size"}> : (!cir.ptr<!cir.ptr<!ty_22class2EString22>>) -> !cir.ptr<i64>
4343
// CHECK-NEXT: %6 = cir.load %1 : cir.ptr <i32>, i32
4444
// CHECK-NEXT: %7 = cir.cast(integral, %6 : i32), i64
4545
// CHECK-NEXT: cir.store %7, %5 : i64, cir.ptr <i64>
4646
// CHECK-NEXT: cir.return
4747
// CHECK-NEXT: }
4848

4949
// CHECK: cir.func linkonce_odr @_ZN6StringC2EPKc
50-
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!22class2EString22>, cir.ptr <!cir.ptr<!22class2EString22>>, ["this", init] {alignment = 8 : i64}
50+
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!ty_22class2EString22>, cir.ptr <!cir.ptr<!ty_22class2EString22>>, ["this", init] {alignment = 8 : i64}
5151
// CHECK-NEXT: %1 = cir.alloca !cir.ptr<i8>, cir.ptr <!cir.ptr<i8>>, ["s", init] {alignment = 8 : i64}
52-
// CHECK-NEXT: cir.store %arg0, %0 : !cir.ptr<!22class2EString22>, cir.ptr <!cir.ptr<!22class2EString22>>
52+
// CHECK-NEXT: cir.store %arg0, %0 : !cir.ptr<!ty_22class2EString22>, cir.ptr <!cir.ptr<!ty_22class2EString22>>
5353
// CHECK-NEXT: cir.store %arg1, %1 : !cir.ptr<i8>, cir.ptr <!cir.ptr<i8>>
54-
// CHECK-NEXT: %2 = cir.load %0 : cir.ptr <!cir.ptr<!22class2EString22>>, !cir.ptr<!22class2EString22>
55-
// CHECK-NEXT: %3 = "cir.struct_element_addr"(%0) <{member_name = "storage"}> : (!cir.ptr<!cir.ptr<!22class2EString22>>) -> !cir.ptr<!cir.ptr<i8>>
54+
// CHECK-NEXT: %2 = cir.load %0 : cir.ptr <!cir.ptr<!ty_22class2EString22>>, !cir.ptr<!ty_22class2EString22>
55+
// CHECK-NEXT: %3 = "cir.struct_element_addr"(%0) <{member_name = "storage"}> : (!cir.ptr<!cir.ptr<!ty_22class2EString22>>) -> !cir.ptr<!cir.ptr<i8>>
5656
// CHECK-NEXT: %4 = cir.cst(#cir.null : !cir.ptr<i8>) : !cir.ptr<i8>
5757
// CHECK-NEXT: cir.store %4, %3 : !cir.ptr<i8>, cir.ptr <!cir.ptr<i8>>
5858
// CHECK-NEXT: cir.return
5959

6060
// CHECK: cir.func linkonce_odr @_ZN6StringC1EPKc
61-
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!22class2EString22>, cir.ptr <!cir.ptr<!22class2EString22>>, ["this", init] {alignment = 8 : i64}
61+
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!ty_22class2EString22>, cir.ptr <!cir.ptr<!ty_22class2EString22>>, ["this", init] {alignment = 8 : i64}
6262
// CHECK-NEXT: %1 = cir.alloca !cir.ptr<i8>, cir.ptr <!cir.ptr<i8>>, ["s", init] {alignment = 8 : i64}
63-
// CHECK-NEXT: cir.store %arg0, %0 : !cir.ptr<!22class2EString22>, cir.ptr <!cir.ptr<!22class2EString22>>
63+
// CHECK-NEXT: cir.store %arg0, %0 : !cir.ptr<!ty_22class2EString22>, cir.ptr <!cir.ptr<!ty_22class2EString22>>
6464
// CHECK-NEXT: cir.store %arg1, %1 : !cir.ptr<i8>, cir.ptr <!cir.ptr<i8>>
65-
// CHECK-NEXT: %2 = cir.load %0 : cir.ptr <!cir.ptr<!22class2EString22>>, !cir.ptr<!22class2EString22>
65+
// CHECK-NEXT: %2 = cir.load %0 : cir.ptr <!cir.ptr<!ty_22class2EString22>>, !cir.ptr<!ty_22class2EString22>
6666
// CHECK-NEXT: %3 = cir.load %1 : cir.ptr <!cir.ptr<i8>>, !cir.ptr<i8>
67-
// CHECK-NEXT: cir.call @_ZN6StringC2EPKc(%2, %3) : (!cir.ptr<!22class2EString22>, !cir.ptr<i8>) -> ()
67+
// CHECK-NEXT: cir.call @_ZN6StringC2EPKc(%2, %3) : (!cir.ptr<!ty_22class2EString22>, !cir.ptr<i8>) -> ()
6868
// CHECK-NEXT: cir.return
6969

7070
// CHECK: cir.func @_Z4testv() {
71-
// CHECK: cir.call @_ZN6StringC1Ev(%0) : (!cir.ptr<!22class2EString22>) -> ()
72-
// CHECK: cir.call @_ZN6StringC1Ei(%1, %3) : (!cir.ptr<!22class2EString22>, i32) -> ()
73-
// CHECK: cir.call @_ZN6StringC1EPKc(%2, %5) : (!cir.ptr<!22class2EString22>, !cir.ptr<i8>) -> ()
71+
// CHECK: cir.call @_ZN6StringC1Ev(%0) : (!cir.ptr<!ty_22class2EString22>) -> ()
72+
// CHECK: cir.call @_ZN6StringC1Ei(%1, %3) : (!cir.ptr<!ty_22class2EString22>, i32) -> ()
73+
// CHECK: cir.call @_ZN6StringC1EPKc(%2, %5) : (!cir.ptr<!ty_22class2EString22>, !cir.ptr<i8>) -> ()

clang/test/CIR/CodeGen/assign-operator.cpp

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,39 +12,39 @@ struct String {
1212
// StringView::StringView(String const&)
1313
//
1414
// CHECK: cir.func linkonce_odr @_ZN10StringViewC2ERK6String
15-
// CHECK: %0 = cir.alloca !cir.ptr<!22struct2EStringView22>, cir.ptr <!cir.ptr<!22struct2EStringView22>>, ["this", init] {alignment = 8 : i64}
16-
// CHECK: %1 = cir.alloca !cir.ptr<!22struct2EString22>, cir.ptr <!cir.ptr<!22struct2EString22>>, ["s", init] {alignment = 8 : i64}
17-
// CHECK: cir.store %arg0, %0 : !cir.ptr<!22struct2EStringView22>
18-
// CHECK: cir.store %arg1, %1 : !cir.ptr<!22struct2EString22>
19-
// CHECK: %2 = cir.load %0 : cir.ptr <!cir.ptr<!22struct2EStringView22>>
15+
// CHECK: %0 = cir.alloca !cir.ptr<!ty_22struct2EStringView22>, cir.ptr <!cir.ptr<!ty_22struct2EStringView22>>, ["this", init] {alignment = 8 : i64}
16+
// CHECK: %1 = cir.alloca !cir.ptr<!ty_22struct2EString22>, cir.ptr <!cir.ptr<!ty_22struct2EString22>>, ["s", init] {alignment = 8 : i64}
17+
// CHECK: cir.store %arg0, %0 : !cir.ptr<!ty_22struct2EStringView22>
18+
// CHECK: cir.store %arg1, %1 : !cir.ptr<!ty_22struct2EString22>
19+
// CHECK: %2 = cir.load %0 : cir.ptr <!cir.ptr<!ty_22struct2EStringView22>>
2020
// CHECK: %3 = "cir.struct_element_addr"(%0) <{member_name = "size"}>
21-
// CHECK: %4 = cir.load %1 : cir.ptr <!cir.ptr<!22struct2EString22>>
21+
// CHECK: %4 = cir.load %1 : cir.ptr <!cir.ptr<!ty_22struct2EString22>>
2222
// CHECK: %5 = "cir.struct_element_addr"(%0) <{member_name = "size"}>
2323
// CHECK: %6 = cir.load %5 : cir.ptr <i64>, i64
2424
// CHECK: cir.store %6, %3 : i64, cir.ptr <i64>
2525
// CHECK: cir.return
2626
// CHECK: }
2727

2828
// DISABLE: cir.func linkonce_odr @_ZN10StringViewC2ERK6String
29-
// DISABLE-NEXT: %0 = cir.alloca !cir.ptr<!22struct2EStringView22>, cir.ptr <!cir.ptr<!22struct2EStringView22>>, ["this", init] {alignment = 8 : i64}
29+
// DISABLE-NEXT: %0 = cir.alloca !cir.ptr<!ty_22struct2EStringView22>, cir.ptr <!cir.ptr<!ty_22struct2EStringView22>>, ["this", init] {alignment = 8 : i64}
3030

3131
// StringView::operator=(StringView&&)
3232
//
3333
// CHECK: cir.func linkonce_odr @_ZN10StringViewaSEOS_
34-
// CHECK: %0 = cir.alloca !cir.ptr<!22struct2EStringView22>, cir.ptr <!cir.ptr<!22struct2EStringView22>>, ["this", init] {alignment = 8 : i64}
35-
// CHECK: %1 = cir.alloca !cir.ptr<!22struct2EStringView22>, cir.ptr <!cir.ptr<!22struct2EStringView22>>, ["", init] {alignment = 8 : i64}
36-
// CHECK: %2 = cir.alloca !cir.ptr<!22struct2EStringView22>, cir.ptr <!cir.ptr<!22struct2EStringView22>>, ["__retval"] {alignment = 8 : i64}
37-
// CHECK: cir.store %arg0, %0 : !cir.ptr<!22struct2EStringView22>
38-
// CHECK: cir.store %arg1, %1 : !cir.ptr<!22struct2EStringView22>
39-
// CHECK: %3 = cir.load deref %0 : cir.ptr <!cir.ptr<!22struct2EStringView22>>
40-
// CHECK: %4 = cir.load %1 : cir.ptr <!cir.ptr<!22struct2EStringView22>>
34+
// CHECK: %0 = cir.alloca !cir.ptr<!ty_22struct2EStringView22>, cir.ptr <!cir.ptr<!ty_22struct2EStringView22>>, ["this", init] {alignment = 8 : i64}
35+
// CHECK: %1 = cir.alloca !cir.ptr<!ty_22struct2EStringView22>, cir.ptr <!cir.ptr<!ty_22struct2EStringView22>>, ["", init] {alignment = 8 : i64}
36+
// CHECK: %2 = cir.alloca !cir.ptr<!ty_22struct2EStringView22>, cir.ptr <!cir.ptr<!ty_22struct2EStringView22>>, ["__retval"] {alignment = 8 : i64}
37+
// CHECK: cir.store %arg0, %0 : !cir.ptr<!ty_22struct2EStringView22>
38+
// CHECK: cir.store %arg1, %1 : !cir.ptr<!ty_22struct2EStringView22>
39+
// CHECK: %3 = cir.load deref %0 : cir.ptr <!cir.ptr<!ty_22struct2EStringView22>>
40+
// CHECK: %4 = cir.load %1 : cir.ptr <!cir.ptr<!ty_22struct2EStringView22>>
4141
// CHECK: %5 = "cir.struct_element_addr"(%0) <{member_name = "size"}>
4242
// CHECK: %6 = cir.load %5 : cir.ptr <i64>, i64
4343
// CHECK: %7 = "cir.struct_element_addr"(%0) <{member_name = "size"}>
4444
// CHECK: cir.store %6, %7 : i64, cir.ptr <i64>
45-
// CHECK: cir.store %3, %2 : !cir.ptr<!22struct2EStringView22>
46-
// CHECK: %8 = cir.load %2 : cir.ptr <!cir.ptr<!22struct2EStringView22>>
47-
// CHECK: cir.return %8 : !cir.ptr<!22struct2EStringView22>
45+
// CHECK: cir.store %3, %2 : !cir.ptr<!ty_22struct2EStringView22>
46+
// CHECK: %8 = cir.load %2 : cir.ptr <!cir.ptr<!ty_22struct2EStringView22>>
47+
// CHECK: cir.return %8 : !cir.ptr<!ty_22struct2EStringView22>
4848
// CHECK: }
4949

5050
// DISABLE: cir.func @_ZN10StringViewaSEOS_
@@ -68,16 +68,16 @@ int main() {
6868

6969
// CHECK: cir.func @main() -> i32 {
7070
// CHECK: %0 = cir.alloca i32, cir.ptr <i32>, ["__retval"] {alignment = 4 : i64}
71-
// CHECK: %1 = cir.alloca !22struct2EStringView22, cir.ptr <!22struct2EStringView22>, ["sv"] {alignment = 8 : i64}
72-
// CHECK: cir.call @_ZN10StringViewC2Ev(%1) : (!cir.ptr<!22struct2EStringView22>) -> ()
71+
// CHECK: %1 = cir.alloca !ty_22struct2EStringView22, cir.ptr <!ty_22struct2EStringView22>, ["sv"] {alignment = 8 : i64}
72+
// CHECK: cir.call @_ZN10StringViewC2Ev(%1) : (!cir.ptr<!ty_22struct2EStringView22>) -> ()
7373
// CHECK: cir.scope {
74-
// CHECK: %3 = cir.alloca !22struct2EString22, cir.ptr <!22struct2EString22>, ["s"] {alignment = 8 : i64}
75-
// CHECK: %4 = cir.alloca !22struct2EStringView22, cir.ptr <!22struct2EStringView22>, ["ref.tmp"] {alignment = 8 : i64}
74+
// CHECK: %3 = cir.alloca !ty_22struct2EString22, cir.ptr <!ty_22struct2EString22>, ["s"] {alignment = 8 : i64}
75+
// CHECK: %4 = cir.alloca !ty_22struct2EStringView22, cir.ptr <!ty_22struct2EStringView22>, ["ref.tmp"] {alignment = 8 : i64}
7676
// CHECK: %5 = cir.get_global @".str" : cir.ptr <!cir.array<i8 x 3>>
7777
// CHECK: %6 = cir.cast(array_to_ptrdecay, %5 : !cir.ptr<!cir.array<i8 x 3>>), !cir.ptr<i8>
78-
// CHECK: cir.call @_ZN6StringC2EPKc(%3, %6) : (!cir.ptr<!22struct2EString22>, !cir.ptr<i8>) -> ()
79-
// CHECK: cir.call @_ZN10StringViewC2ERK6String(%4, %3) : (!cir.ptr<!22struct2EStringView22>, !cir.ptr<!22struct2EString22>) -> ()
80-
// CHECK: %7 = cir.call @_ZN10StringViewaSEOS_(%1, %4) : (!cir.ptr<!22struct2EStringView22>, !cir.ptr<!22struct2EStringView22>) -> !cir.ptr<!22struct2EStringView22>
78+
// CHECK: cir.call @_ZN6StringC2EPKc(%3, %6) : (!cir.ptr<!ty_22struct2EString22>, !cir.ptr<i8>) -> ()
79+
// CHECK: cir.call @_ZN10StringViewC2ERK6String(%4, %3) : (!cir.ptr<!ty_22struct2EStringView22>, !cir.ptr<!ty_22struct2EString22>) -> ()
80+
// CHECK: %7 = cir.call @_ZN10StringViewaSEOS_(%1, %4) : (!cir.ptr<!ty_22struct2EStringView22>, !cir.ptr<!ty_22struct2EStringView22>) -> !cir.ptr<!ty_22struct2EStringView22>
8181
// CHECK: }
8282
// CHECK: %2 = cir.load %0 : cir.ptr <i32>, i32
8383
// CHECK: cir.return %2 : i32

clang/test/CIR/CodeGen/ctor-alias.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@ void t() {
99
}
1010

1111
// CHECK: cir.func linkonce_odr @_ZN11DummyStringC2EPKc
12-
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!22struct2EDummyString22>, cir.ptr <!cir.ptr<!22struct2EDummyString22>>, ["this", init] {alignment = 8 : i64}
12+
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!ty_22struct2EDummyString22>, cir.ptr <!cir.ptr<!ty_22struct2EDummyString22>>, ["this", init] {alignment = 8 : i64}
1313
// CHECK-NEXT: %1 = cir.alloca !cir.ptr<i8>, cir.ptr <!cir.ptr<i8>>, ["s", init] {alignment = 8 : i64}
14-
// CHECK-NEXT: cir.store %arg0, %0 : !cir.ptr<!22struct2EDummyString22>, cir.ptr <!cir.ptr<!22struct2EDummyString22>>
14+
// CHECK-NEXT: cir.store %arg0, %0 : !cir.ptr<!ty_22struct2EDummyString22>, cir.ptr <!cir.ptr<!ty_22struct2EDummyString22>>
1515
// CHECK-NEXT: cir.store %arg1, %1 : !cir.ptr<i8>, cir.ptr <!cir.ptr<i8>>
16-
// CHECK-NEXT: %2 = cir.load %0 : cir.ptr <!cir.ptr<!22struct2EDummyString22>>, !cir.ptr<!22struct2EDummyString22>
16+
// CHECK-NEXT: %2 = cir.load %0 : cir.ptr <!cir.ptr<!ty_22struct2EDummyString22>>, !cir.ptr<!ty_22struct2EDummyString22>
1717
// CHECK-NEXT: cir.return
1818

1919
// CHECK-NOT: cir.fun @_ZN11DummyStringC1EPKc
2020

2121
// CHECK: cir.func @_Z1tv
22-
// CHECK-NEXT: %0 = cir.alloca !22struct2EDummyString22, cir.ptr <!22struct2EDummyString22>, ["s4"] {alignment = 1 : i64}
22+
// CHECK-NEXT: %0 = cir.alloca !ty_22struct2EDummyString22, cir.ptr <!ty_22struct2EDummyString22>, ["s4"] {alignment = 1 : i64}
2323
// CHECK-NEXT: %1 = cir.get_global @".str" : cir.ptr <!cir.array<i8 x 5>>
2424
// CHECK-NEXT: %2 = cir.cast(array_to_ptrdecay, %1 : !cir.ptr<!cir.array<i8 x 5>>), !cir.ptr<i8>
25-
// CHECK-NEXT: cir.call @_ZN11DummyStringC2EPKc(%0, %2) : (!cir.ptr<!22struct2EDummyString22>, !cir.ptr<i8>) -> ()
25+
// CHECK-NEXT: cir.call @_ZN11DummyStringC2EPKc(%0, %2) : (!cir.ptr<!ty_22struct2EDummyString22>, !cir.ptr<i8>) -> ()
2626
// CHECK-NEXT: cir.return

clang/test/CIR/CodeGen/ctor-member-lvalue-to-rvalue.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ struct String {
66
long size;
77
String(const String &s) : size{s.size} {}
88
// CHECK: cir.func linkonce_odr @_ZN6StringC2ERKS_
9-
// CHECK: %0 = cir.alloca !cir.ptr<!22struct2EString22>, cir.ptr <!cir.ptr<!22struct2EString22>>, ["this", init] {alignment = 8 : i64}
10-
// CHECK: %1 = cir.alloca !cir.ptr<!22struct2EString22>, cir.ptr <!cir.ptr<!22struct2EString22>>, ["s", init] {alignment = 8 : i64}
9+
// CHECK: %0 = cir.alloca !cir.ptr<!ty_22struct2EString22>, cir.ptr <!cir.ptr<!ty_22struct2EString22>>, ["this", init] {alignment = 8 : i64}
10+
// CHECK: %1 = cir.alloca !cir.ptr<!ty_22struct2EString22>, cir.ptr <!cir.ptr<!ty_22struct2EString22>>, ["s", init] {alignment = 8 : i64}
1111
// CHECK: cir.store %arg0, %0
1212
// CHECK: cir.store %arg1, %1
1313
// CHECK: %2 = cir.load %0
@@ -28,10 +28,10 @@ void foo() {
2828
// FIXME: s1 shouldn't be uninitialized.
2929

3030
// cir.func @_Z3foov() {
31-
// %0 = cir.alloca !22struct2EString22, cir.ptr <!22struct2EString22>, ["s"] {alignment = 8 : i64}
32-
// %1 = cir.alloca !22struct2EString22, cir.ptr <!22struct2EString22>, ["s1"] {alignment = 8 : i64}
33-
// cir.call @_ZN6StringC2Ev(%0) : (!cir.ptr<!22struct2EString22>) -> ()
34-
// cir.call @_ZN6StringC2ERKS_(%1, %0) : (!cir.ptr<!22struct2EString22>, !cir.ptr<!22struct2EString22>) -> ()
31+
// %0 = cir.alloca !ty_22struct2EString22, cir.ptr <!ty_22struct2EString22>, ["s"] {alignment = 8 : i64}
32+
// %1 = cir.alloca !ty_22struct2EString22, cir.ptr <!ty_22struct2EString22>, ["s1"] {alignment = 8 : i64}
33+
// cir.call @_ZN6StringC2Ev(%0) : (!cir.ptr<!ty_22struct2EString22>) -> ()
34+
// cir.call @_ZN6StringC2ERKS_(%1, %0) : (!cir.ptr<!ty_22struct2EString22>, !cir.ptr<!ty_22struct2EString22>) -> ()
3535
// cir.return
3636
// }
3737
}

clang/test/CIR/CodeGen/ctor.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,22 @@ void baz() {
1111
Struk s;
1212
}
1313

14-
// CHECK: !22struct2EStruk22 = !cir.struct<"struct.Struk", i32>
14+
// CHECK: !ty_22struct2EStruk22 = !cir.struct<"struct.Struk", i32>
1515

16-
// CHECK: cir.func linkonce_odr @_ZN5StrukC2Ev(%arg0: !cir.ptr<!22struct2EStruk22>
17-
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!22struct2EStruk22>, cir.ptr <!cir.ptr<!22struct2EStruk22>>, ["this", init] {alignment = 8 : i64}
18-
// CHECK-NEXT: cir.store %arg0, %0 : !cir.ptr<!22struct2EStruk22>, cir.ptr <!cir.ptr<!22struct2EStruk22>>
19-
// CHECK-NEXT: %1 = cir.load %0 : cir.ptr <!cir.ptr<!22struct2EStruk22>>, !cir.ptr<!22struct2EStruk22>
16+
// CHECK: cir.func linkonce_odr @_ZN5StrukC2Ev(%arg0: !cir.ptr<!ty_22struct2EStruk22>
17+
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!ty_22struct2EStruk22>, cir.ptr <!cir.ptr<!ty_22struct2EStruk22>>, ["this", init] {alignment = 8 : i64}
18+
// CHECK-NEXT: cir.store %arg0, %0 : !cir.ptr<!ty_22struct2EStruk22>, cir.ptr <!cir.ptr<!ty_22struct2EStruk22>>
19+
// CHECK-NEXT: %1 = cir.load %0 : cir.ptr <!cir.ptr<!ty_22struct2EStruk22>>, !cir.ptr<!ty_22struct2EStruk22>
2020
// CHECK-NEXT: cir.return
2121

22-
// CHECK: cir.func linkonce_odr @_ZN5StrukC1Ev(%arg0: !cir.ptr<!22struct2EStruk22>
23-
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!22struct2EStruk22>, cir.ptr <!cir.ptr<!22struct2EStruk22>>, ["this", init] {alignment = 8 : i64}
24-
// CHECK-NEXT: cir.store %arg0, %0 : !cir.ptr<!22struct2EStruk22>, cir.ptr <!cir.ptr<!22struct2EStruk22>>
25-
// CHECK-NEXT: %1 = cir.load %0 : cir.ptr <!cir.ptr<!22struct2EStruk22>>, !cir.ptr<!22struct2EStruk22>
26-
// CHECK-NEXT: cir.call @_ZN5StrukC2Ev(%1) : (!cir.ptr<!22struct2EStruk22>) -> ()
22+
// CHECK: cir.func linkonce_odr @_ZN5StrukC1Ev(%arg0: !cir.ptr<!ty_22struct2EStruk22>
23+
// CHECK-NEXT: %0 = cir.alloca !cir.ptr<!ty_22struct2EStruk22>, cir.ptr <!cir.ptr<!ty_22struct2EStruk22>>, ["this", init] {alignment = 8 : i64}
24+
// CHECK-NEXT: cir.store %arg0, %0 : !cir.ptr<!ty_22struct2EStruk22>, cir.ptr <!cir.ptr<!ty_22struct2EStruk22>>
25+
// CHECK-NEXT: %1 = cir.load %0 : cir.ptr <!cir.ptr<!ty_22struct2EStruk22>>, !cir.ptr<!ty_22struct2EStruk22>
26+
// CHECK-NEXT: cir.call @_ZN5StrukC2Ev(%1) : (!cir.ptr<!ty_22struct2EStruk22>) -> ()
2727
// CHECK-NEXT: cir.return
2828

2929
// CHECK: cir.func @_Z3bazv()
30-
// CHECK-NEXT: %0 = cir.alloca !22struct2EStruk22, cir.ptr <!22struct2EStruk22>, ["s"] {alignment = 4 : i64}
31-
// CHECK-NEXT: cir.call @_ZN5StrukC1Ev(%0) : (!cir.ptr<!22struct2EStruk22>) -> ()
30+
// CHECK-NEXT: %0 = cir.alloca !ty_22struct2EStruk22, cir.ptr <!ty_22struct2EStruk22>, ["s"] {alignment = 4 : i64}
31+
// CHECK-NEXT: cir.call @_ZN5StrukC1Ev(%0) : (!cir.ptr<!ty_22struct2EStruk22>) -> ()
3232
// CHECK-NEXT: cir.return

clang/test/CIR/CodeGen/lambda.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ void fn() {
55
auto a = [](){};
66
}
77

8-
// CHECK: !22class2Eanon22 = !cir.struct<"class.anon", i8>
8+
// CHECK: !ty_22class2Eanon22 = !cir.struct<"class.anon", i8>
99
// CHECK-NEXT: module
1010
// CHECK-NEXT: cir.func @_Z2fnv()
11-
// CHECK-NEXT: %0 = cir.alloca !22class2Eanon22, cir.ptr <!22class2Eanon22>, ["a"]
11+
// CHECK-NEXT: %0 = cir.alloca !ty_22class2Eanon22, cir.ptr <!ty_22class2Eanon22>, ["a"]

0 commit comments

Comments
 (0)