Skip to content

Commit 74f16f7

Browse files
authored
[CIR] Remove parens from C++ address-related ops' assembly format (#1672)
This removes unnecessary parens from the assembly format of BaseClassAddrOp, DerivedClassAddrOp, BaseDataMemberOp, DerivedDataMemberOp, BaseMethodOp, and DerivedMethodOp to bring them into conformance with the CIR ASM Style Guide. The is no function change beyond the assembly format change.
1 parent 25a9b13 commit 74f16f7

File tree

8 files changed

+38
-40
lines changed

8 files changed

+38
-40
lines changed

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

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3362,7 +3362,7 @@ def BaseClassAddrOp : CIR_Op<"base_class_addr"> {
33623362
```
33633363
will generate
33643364
```mlir
3365-
%3 = cir.base_class_addr (%1 : !cir.ptr<!rec_Derived> nonnull) [0] -> !cir.ptr<!rec_Base>
3365+
%3 = cir.base_class_addr %1 : !cir.ptr<!rec_Derived> nonnull [0] -> !cir.ptr<!rec_Base>
33663366
```
33673367
}];
33683368

@@ -3375,10 +3375,9 @@ def BaseClassAddrOp : CIR_Op<"base_class_addr"> {
33753375
let results = (outs Res<CIR_PointerType, "">:$base_addr);
33763376

33773377
let assemblyFormat = [{
3378-
`(`
33793378
$derived_addr `:` qualified(type($derived_addr))
33803379
(`nonnull` $assume_not_null^)?
3381-
`)` `[` $offset `]` `->` qualified(type($base_addr)) attr-dict
3380+
` ` `[` $offset `]` `->` qualified(type($base_addr)) attr-dict
33823381
}];
33833382
}
33843383

@@ -3411,8 +3410,8 @@ def DerivedClassAddrOp : CIR_Op<"derived_class_addr"> {
34113410
leads to
34123411
```mlir
34133412
%2 = cir.load %0 : !cir.ptr<!cir.ptr<!rec_B>>, !cir.ptr<!rec_B>
3414-
%3 = cir.derived_class_addr(%2 : !cir.ptr<!rec_B> nonnull) [4] -> !cir.ptr<!rec_X>
3415-
%4 = cir.base_class_addr(%3 : !cir.ptr<!rec_X>) [0] -> !cir.ptr<!rec_A>
3413+
%3 = cir.derived_class_addr %2 : !cir.ptr<!rec_B> nonnull [4] -> !cir.ptr<!rec_X>
3414+
%4 = cir.base_class_addr %3 : !cir.ptr<!rec_X> [0] -> !cir.ptr<!rec_A>
34163415
cir.return %4
34173416
```
34183417
}];
@@ -3426,10 +3425,9 @@ def DerivedClassAddrOp : CIR_Op<"derived_class_addr"> {
34263425
let results = (outs Res<CIR_PointerType, "">:$derived_addr);
34273426

34283427
let assemblyFormat = [{
3429-
`(`
34303428
$base_addr `:` qualified(type($base_addr))
34313429
(`nonnull` $assume_not_null^)?
3432-
`)` `[` $offset `]` `->` qualified(type($derived_addr)) attr-dict
3430+
` ` `[` $offset `]` `->` qualified(type($derived_addr)) attr-dict
34333431
}];
34343432
}
34353433

@@ -3454,8 +3452,8 @@ def BaseDataMemberOp : CIR_Op<"base_data_member", [Pure]> {
34543452
let results = (outs CIR_DataMemberType:$result);
34553453

34563454
let assemblyFormat = [{
3457-
`(` $src `:` qualified(type($src)) `)`
3458-
`[` $offset `]` `->` qualified(type($result)) attr-dict
3455+
$src `:` qualified(type($src))
3456+
` ` `[` $offset `]` `->` qualified(type($result)) attr-dict
34593457
}];
34603458

34613459
let hasVerifier = 1;
@@ -3478,8 +3476,8 @@ def DerivedDataMemberOp : CIR_Op<"derived_data_member", [Pure]> {
34783476
let results = (outs CIR_DataMemberType:$result);
34793477

34803478
let assemblyFormat = [{
3481-
`(` $src `:` qualified(type($src)) `)`
3482-
`[` $offset `]` `->` qualified(type($result)) attr-dict
3479+
$src `:` qualified(type($src))
3480+
` ` `[` $offset `]` `->` qualified(type($result)) attr-dict
34833481
}];
34843482

34853483
let hasVerifier = 1;
@@ -3506,16 +3504,16 @@ def BaseMethodOp : CIR_Op<"base_method", [Pure]> {
35063504
Example:
35073505

35083506
```mlir
3509-
%1 = cir.base_method(%0 : !cir.method<!cir.func<(!s32i)> in !rec_Derived>) [16] -> !cir.method<!cir.func<(!s32i)> in !rec_Base>
3507+
%1 = cir.base_method %0 : !cir.method<!cir.func<(!s32i)> in !rec_Derived> [16] -> !cir.method<!cir.func<(!s32i)> in !rec_Base>
35103508
```
35113509
}];
35123510

35133511
let arguments = (ins CIR_MethodType:$src, IndexAttr:$offset);
35143512
let results = (outs CIR_MethodType:$result);
35153513

35163514
let assemblyFormat = [{
3517-
`(` $src `:` qualified(type($src)) `)`
3518-
`[` $offset `]` `->` qualified(type($result)) attr-dict
3515+
$src `:` qualified(type($src))
3516+
` ` `[` $offset `]` `->` qualified(type($result)) attr-dict
35193517
}];
35203518

35213519
let hasVerifier = 1;
@@ -3538,16 +3536,16 @@ def DerivedMethodOp : CIR_Op<"derived_method", [Pure]> {
35383536
Example:
35393537

35403538
```mlir
3541-
%1 = cir.derived_method(%0 : !cir.method<!cir.func<(!s32i)> in !rec_Base>) [16] -> !cir.method<!cir.func<(!s32i)> in !rec_Derived>
3539+
%1 = cir.derived_method %0 : !cir.method<!cir.func<(!s32i)> in !rec_Base> [16] -> !cir.method<!cir.func<(!s32i)> in !rec_Derived>
35423540
```
35433541
}];
35443542

35453543
let arguments = (ins CIR_MethodType:$src, IndexAttr:$offset);
35463544
let results = (outs CIR_MethodType:$result);
35473545

35483546
let assemblyFormat = [{
3549-
`(` $src `:` qualified(type($src)) `)`
3550-
`[` $offset `]` `->` qualified(type($result)) attr-dict
3547+
$src `:` qualified(type($src))
3548+
` ` `[` $offset `]` `->` qualified(type($result)) attr-dict
35513549
}];
35523550

35533551
let hasVerifier = 1;

clang/test/CIR/CodeGen/const-baseclass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ void f() {
1414
}
1515

1616
// CHECK-LABEL: @_ZN1BC2Ev
17-
// CHECK: %[[A:.*]] = cir.base_class_addr({{.*}}) [0] -> !cir.ptr<!rec_A>
17+
// CHECK: %[[A:.*]] = cir.base_class_addr {{.*}} [0] -> !cir.ptr<!rec_A>
1818
// CHECK: cir.call @_ZN1AC2Ev(%[[A:.*]]) : (!cir.ptr<!rec_A>) -> ()
19-
// CHECK: %[[BASE:.*]] = cir.base_class_addr({{.*}}) [0] -> !cir.ptr<!rec_Empty>
19+
// CHECK: %[[BASE:.*]] = cir.base_class_addr {{.*}} [0] -> !cir.ptr<!rec_Empty>
2020
// CHECK: cir.call @_ZN5EmptyC2Ev(%[[BASE]]) : (!cir.ptr<!rec_Empty>) -> ()

clang/test/CIR/CodeGen/derived-cast.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ A *B::getAsA() {
2525
// CIR: %[[VAL_1:.*]] = cir.alloca !cir.ptr<!rec_B>, !cir.ptr<!cir.ptr<!rec_B>>, ["this", init] {alignment = 8 : i64}
2626
// CIR: %[[VAL_2:.*]] = cir.alloca !cir.ptr<!rec_A>, !cir.ptr<!cir.ptr<!rec_A>>, ["__retval"] {alignment = 8 : i64}
2727
// CIR: %[[VAL_3:.*]] = cir.load %[[VAL_1]] : !cir.ptr<!cir.ptr<!rec_B>>, !cir.ptr<!rec_B>
28-
// CIR: %[[VAL_4:.*]] = cir.derived_class_addr(%[[VAL_3]] : !cir.ptr<!rec_B> nonnull) [4] -> !cir.ptr<!rec_X>
29-
// CIR: %[[VAL_5:.*]] = cir.base_class_addr(%[[VAL_4]] : !cir.ptr<!rec_X> nonnull) [0] -> !cir.ptr<!rec_A>
28+
// CIR: %[[VAL_4:.*]] = cir.derived_class_addr %[[VAL_3]] : !cir.ptr<!rec_B> nonnull [4] -> !cir.ptr<!rec_X>
29+
// CIR: %[[VAL_5:.*]] = cir.base_class_addr %[[VAL_4]] : !cir.ptr<!rec_X> nonnull [0] -> !cir.ptr<!rec_A>
3030
// CIR: cir.store %[[VAL_5]], %[[VAL_2]] : !cir.ptr<!rec_A>, !cir.ptr<!cir.ptr<!rec_A>>
3131
// CIR: %[[VAL_6:.*]] = cir.load %[[VAL_2]] : !cir.ptr<!cir.ptr<!rec_A>>, !cir.ptr<!rec_A>
3232
// CIR: cir.return %[[VAL_6]] : !cir.ptr<!rec_A>

clang/test/CIR/CodeGen/derived-to-base.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ void C3::Layer::Initialize() {
8484
// CHECK: cir.func dso_local @_ZN2C35Layer10InitializeEv
8585

8686
// CHECK: cir.scope {
87-
// CHECK: %2 = cir.base_class_addr(%1 : !cir.ptr<!rec_C33A3ALayer> nonnull) [0] -> !cir.ptr<!rec_C23A3ALayer>
87+
// CHECK: %2 = cir.base_class_addr %1 : !cir.ptr<!rec_C33A3ALayer> nonnull [0] -> !cir.ptr<!rec_C23A3ALayer>
8888
// CHECK: %3 = cir.get_member %2[1] {name = "m_C1"} : !cir.ptr<!rec_C23A3ALayer> -> !cir.ptr<!cir.ptr<!rec_C2>>
8989
// CHECK: %4 = cir.load{{.*}} %3 : !cir.ptr<!cir.ptr<!rec_C2>>, !cir.ptr<!rec_C2>
9090
// CHECK: %5 = cir.const #cir.ptr<null> : !cir.ptr<!rec_C2>
@@ -99,7 +99,7 @@ enumy C3::Initialize() {
9999

100100
// CHECK: cir.store %arg0, %0 : !cir.ptr<!rec_C3>, !cir.ptr<!cir.ptr<!rec_C3>>
101101
// CHECK: %2 = cir.load{{.*}} %0 : !cir.ptr<!cir.ptr<!rec_C3>>, !cir.ptr<!rec_C3>
102-
// CHECK: %3 = cir.base_class_addr(%2 : !cir.ptr<!rec_C3> nonnull) [0] -> !cir.ptr<!rec_C2>
102+
// CHECK: %3 = cir.base_class_addr %2 : !cir.ptr<!rec_C3> nonnull [0] -> !cir.ptr<!rec_C2>
103103
// CHECK: %4 = cir.call @_ZN2C210InitializeEv(%3) : (!cir.ptr<!rec_C2>) -> !s32i
104104

105105
void vcall(C1 &c1) {
@@ -144,7 +144,7 @@ class B : public A {
144144
// CHECK: %1 = cir.load{{.*}} deref %0 : !cir.ptr<!cir.ptr<!rec_B>>, !cir.ptr<!rec_B>
145145
// CHECK: cir.scope {
146146
// CHECK: %2 = cir.alloca !rec_A, !cir.ptr<!rec_A>, ["ref.tmp0"] {alignment = 8 : i64}
147-
// CHECK: %3 = cir.base_class_addr(%1 : !cir.ptr<!rec_B> nonnull) [0] -> !cir.ptr<!rec_A>
147+
// CHECK: %3 = cir.base_class_addr %1 : !cir.ptr<!rec_B> nonnull [0] -> !cir.ptr<!rec_A>
148148

149149
// Call @A::A(A const&)
150150
// CHECK: cir.call @_ZN1AC2ERKS_(%2, %3) : (!cir.ptr<!rec_A>, !cir.ptr<!rec_A>) -> ()
@@ -181,17 +181,17 @@ void test_multi_base() {
181181
Derived d;
182182

183183
Base2& bref = d; // no null check needed
184-
// CHECK: %6 = cir.base_class_addr(%0 : !cir.ptr<!rec_Derived> nonnull) [4] -> !cir.ptr<!rec_Base2>
184+
// CHECK: %6 = cir.base_class_addr %0 : !cir.ptr<!rec_Derived> nonnull [4] -> !cir.ptr<!rec_Base2>
185185

186186
Base2* bptr = &d; // has null pointer check
187-
// CHECK: %7 = cir.base_class_addr(%0 : !cir.ptr<!rec_Derived>) [4] -> !cir.ptr<!rec_Base2>
187+
// CHECK: %7 = cir.base_class_addr %0 : !cir.ptr<!rec_Derived> [4] -> !cir.ptr<!rec_Base2>
188188

189189
int a = d.a;
190-
// CHECK: %8 = cir.base_class_addr(%0 : !cir.ptr<!rec_Derived> nonnull) [0] -> !cir.ptr<!rec_Base1>
190+
// CHECK: %8 = cir.base_class_addr %0 : !cir.ptr<!rec_Derived> nonnull [0] -> !cir.ptr<!rec_Base1>
191191
// CHECK: %9 = cir.get_member %8[0] {name = "a"} : !cir.ptr<!rec_Base1> -> !cir.ptr<!s32i>
192192

193193
int b = d.b;
194-
// CHECK: %11 = cir.base_class_addr(%0 : !cir.ptr<!rec_Derived> nonnull) [4] -> !cir.ptr<!rec_Base2>
194+
// CHECK: %11 = cir.base_class_addr %0 : !cir.ptr<!rec_Derived> nonnull [4] -> !cir.ptr<!rec_Base2>
195195
// CHECK: %12 = cir.get_member %11[0] {name = "b"} : !cir.ptr<!rec_Base2> -> !cir.ptr<!s32i>
196196

197197
int c = d.c;

clang/test/CIR/CodeGen/multi-vtable.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ int main() {
5656
// CIR: %{{[0-9]+}} = cir.cast(bitcast, %{{[0-9]+}} : !cir.ptr<!rec_Child>), !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>>
5757
// CIR: cir.store{{.*}} %{{[0-9]+}}, %{{[0-9]+}} : !cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>, !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>>
5858
// CIR: %{{[0-9]+}} = cir.vtable.address_point(@_ZTV5Child, address_point = <index = 1, offset = 2>) : !cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>
59-
// CIR: %7 = cir.base_class_addr(%1 : !cir.ptr<!rec_Child> nonnull) [8] -> !cir.ptr<!rec_Father>
59+
// CIR: %7 = cir.base_class_addr %1 : !cir.ptr<!rec_Child> nonnull [8] -> !cir.ptr<!rec_Father>
6060
// CIR: %8 = cir.cast(bitcast, %7 : !cir.ptr<!rec_Father>), !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>> loc(#loc8)
6161
// CIR: cir.store{{.*}} %{{[0-9]+}}, %{{[0-9]+}} : !cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>, !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>>
6262
// CIR: cir.return

clang/test/CIR/CodeGen/pointer-to-data-member-cast.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ struct Derived : Base1, Base2 {
1919
// LLVM-LABEL: @_Z15base_to_derivedM5Base2i
2020
auto base_to_derived(int Base2::*ptr) -> int Derived::* {
2121
return ptr;
22-
// CIR: %{{.+}} = cir.derived_data_member(%{{.+}} : !cir.data_member<!s32i in !rec_Base2>) [4] -> !cir.data_member<!s32i in !rec_Derived>
22+
// CIR: %{{.+}} = cir.derived_data_member %{{.+}} : !cir.data_member<!s32i in !rec_Base2> [4] -> !cir.data_member<!s32i in !rec_Derived>
2323

2424
// LLVM: %[[#src:]] = load i64, ptr %{{.+}}
2525
// LLVM-NEXT: %[[#is_null:]] = icmp eq i64 %[[#src]], -1
@@ -31,7 +31,7 @@ auto base_to_derived(int Base2::*ptr) -> int Derived::* {
3131
// LLVM-LABEL: @_Z15derived_to_baseM7Derivedi
3232
auto derived_to_base(int Derived::*ptr) -> int Base2::* {
3333
return static_cast<int Base2::*>(ptr);
34-
// CIR: %{{.+}} = cir.base_data_member(%{{.+}} : !cir.data_member<!s32i in !rec_Derived>) [4] -> !cir.data_member<!s32i in !rec_Base2>
34+
// CIR: %{{.+}} = cir.base_data_member %{{.+}} : !cir.data_member<!s32i in !rec_Derived> [4] -> !cir.data_member<!s32i in !rec_Base2>
3535

3636
// LLVM: %[[#src:]] = load i64, ptr %{{.+}}
3737
// LLVM-NEXT: %[[#is_null:]] = icmp eq i64 %[[#src]], -1
@@ -43,7 +43,7 @@ auto derived_to_base(int Derived::*ptr) -> int Base2::* {
4343
// LLVM-LABEL: @_Z27base_to_derived_zero_offsetM5Base1i
4444
auto base_to_derived_zero_offset(int Base1::*ptr) -> int Derived::* {
4545
return ptr;
46-
// CIR: %{{.+}} = cir.derived_data_member(%{{.+}} : !cir.data_member<!s32i in !rec_Base1>) [0] -> !cir.data_member<!s32i in !rec_Derived>
46+
// CIR: %{{.+}} = cir.derived_data_member %{{.+}} : !cir.data_member<!s32i in !rec_Base1> [0] -> !cir.data_member<!s32i in !rec_Derived>
4747

4848
// No LLVM instructions emitted for performing a zero-offset cast.
4949
// LLVM-NEXT: %[[#src_slot:]] = alloca i64, i64 1
@@ -59,7 +59,7 @@ auto base_to_derived_zero_offset(int Base1::*ptr) -> int Derived::* {
5959
// LLVM-LABEL: @_Z27derived_to_base_zero_offsetM7Derivedi
6060
auto derived_to_base_zero_offset(int Derived::*ptr) -> int Base1::* {
6161
return static_cast<int Base1::*>(ptr);
62-
// CIR: %{{.+}} = cir.base_data_member(%{{.+}} : !cir.data_member<!s32i in !rec_Derived>) [0] -> !cir.data_member<!s32i in !rec_Base1>
62+
// CIR: %{{.+}} = cir.base_data_member %{{.+}} : !cir.data_member<!s32i in !rec_Derived> [0] -> !cir.data_member<!s32i in !rec_Base1>
6363

6464
// No LLVM instructions emitted for performing a zero-offset cast.
6565
// LLVM-NEXT: %[[#src_slot:]] = alloca i64, i64 1

clang/test/CIR/CodeGen/vtable-rtti.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class B : public A
4343
// CHECK: %0 = cir.alloca !cir.ptr<![[ClassB]]>, !cir.ptr<!cir.ptr<![[ClassB]]>>, ["this", init] {alignment = 8 : i64}
4444
// CHECK: cir.store{{.*}} %arg0, %0 : !cir.ptr<![[ClassB]]>, !cir.ptr<!cir.ptr<![[ClassB]]>>
4545
// CHECK: %1 = cir.load %0 : !cir.ptr<!cir.ptr<![[ClassB]]>>, !cir.ptr<![[ClassB]]>
46-
// CHECK: %2 = cir.base_class_addr(%1 : !cir.ptr<![[ClassB]]> nonnull) [0] -> !cir.ptr<![[ClassA]]>
46+
// CHECK: %2 = cir.base_class_addr %1 : !cir.ptr<![[ClassB]]> nonnull [0] -> !cir.ptr<![[ClassA]]>
4747
// CHECK: cir.call @_ZN1AC2Ev(%2) : (!cir.ptr<![[ClassA]]>) -> ()
4848
// CHECK: %3 = cir.vtable.address_point(@_ZTV1B, address_point = <index = 0, offset = 2>) : !cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>
4949
// CHECK: %4 = cir.cast(bitcast, %1 : !cir.ptr<![[ClassB]]>), !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>>

clang/test/CIR/CodeGen/vtt.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,14 @@ int f() {
104104
// CIR: %{{[0-9]+}} = cir.alloca !cir.ptr<!rec_D>, !cir.ptr<!cir.ptr<!rec_D>>, ["this", init] {alignment = 8 : i64}
105105
// CIR: cir.store{{.*}} %arg0, %{{[0-9]+}} : !cir.ptr<!rec_D>, !cir.ptr<!cir.ptr<!rec_D>>
106106
// CIR: %[[D_PTR:.*]] = cir.load{{.*}} %0 : !cir.ptr<!cir.ptr<!rec_D>>, !cir.ptr<!rec_D>
107-
// CIR: %[[A_PTR:.*]] = cir.base_class_addr(%[[D_PTR]] : !cir.ptr<!rec_D> nonnull) [40] -> !cir.ptr<!rec_A>
107+
// CIR: %[[A_PTR:.*]] = cir.base_class_addr %[[D_PTR]] : !cir.ptr<!rec_D> nonnull [40] -> !cir.ptr<!rec_A>
108108
// CIR: cir.call @_ZN1AC2Ev(%[[A_PTR]]) : (!cir.ptr<!rec_A>) -> ()
109109

110-
// CIR: %[[B_PTR:.*]] = cir.base_class_addr(%[[D_PTR]] : !cir.ptr<!rec_D> nonnull) [0] -> !cir.ptr<!rec_B>
110+
// CIR: %[[B_PTR:.*]] = cir.base_class_addr %[[D_PTR]] : !cir.ptr<!rec_D> nonnull [0] -> !cir.ptr<!rec_B>
111111
// CIR: %[[VTT_D_TO_B:.*]] = cir.vtt.address_point @_ZTT1D, offset = 1 -> !cir.ptr<!cir.ptr<!void>>
112112
// CIR: cir.call @_ZN1BC2Ev(%[[B_PTR]], %[[VTT_D_TO_B]]) : (!cir.ptr<!rec_B>, !cir.ptr<!cir.ptr<!void>>) -> ()
113113

114-
// CIR: %[[C_PTR:.*]] = cir.base_class_addr(%1 : !cir.ptr<!rec_D> nonnull) [16] -> !cir.ptr<!rec_C>
114+
// CIR: %[[C_PTR:.*]] = cir.base_class_addr %1 : !cir.ptr<!rec_D> nonnull [16] -> !cir.ptr<!rec_C>
115115
// CIR: %[[VTT_D_TO_C:.*]] = cir.vtt.address_point @_ZTT1D, offset = 3 -> !cir.ptr<!cir.ptr<!void>>
116116
// CIR: cir.call @_ZN1CC2Ev(%[[C_PTR]], %[[VTT_D_TO_C]]) : (!cir.ptr<!rec_C>, !cir.ptr<!cir.ptr<!void>>) -> ()
117117

@@ -120,12 +120,12 @@ int f() {
120120
// CIR: cir.store{{.*}} %{{[0-9]+}}, %{{[0-9]+}} : !cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>, !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>>
121121
// CIR: %{{[0-9]+}} = cir.vtable.address_point(@_ZTV1D, address_point = <index = 2, offset = 3>) : !cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>
122122

123-
// CIR: %{{[0-9]+}} = cir.base_class_addr(%{{[0-9]+}} : !cir.ptr<!rec_D> nonnull) [40] -> !cir.ptr<!rec_A>
123+
// CIR: %{{[0-9]+}} = cir.base_class_addr %{{[0-9]+}} : !cir.ptr<!rec_D> nonnull [40] -> !cir.ptr<!rec_A>
124124
// CIR: %{{[0-9]+}} = cir.cast(bitcast, %{{[0-9]+}} : !cir.ptr<!rec_A>), !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>>
125125
// CIR: cir.store{{.*}} %{{[0-9]+}}, %{{[0-9]+}} : !cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>, !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>>
126126
// CIR: %{{[0-9]+}} = cir.vtable.address_point(@_ZTV1D, address_point = <index = 1, offset = 3>) : !cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>
127127

128-
// CIR: cir.base_class_addr(%{{[0-9]+}} : !cir.ptr<!rec_D> nonnull) [16] -> !cir.ptr<!rec_C>
128+
// CIR: cir.base_class_addr %{{[0-9]+}} : !cir.ptr<!rec_D> nonnull [16] -> !cir.ptr<!rec_C>
129129
// CIR: cir.cast(bitcast, %{{[0-9]+}} : !cir.ptr<!rec_C>), !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>>
130130
// CIR: cir.store{{.*}} %{{[0-9]+}}, %{{[0-9]+}} : !cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>, !cir.ptr<!cir.ptr<!cir.ptr<!cir.func<() -> !u32i>>>>
131131
// CIR: cir.return
@@ -172,7 +172,7 @@ namespace other {
172172
// CIR: %[[VAL_2:.*]] = cir.load{{.*}} %[[VAL_1]] : !cir.ptr<!cir.ptr<!rec_other3A3AB>>, !cir.ptr<!rec_other3A3AB>
173173
// CIR: %[[VAL_3:.*]] = cir.vtt.address_point @_ZTTN5other1BE, offset = 0 -> !cir.ptr<!cir.ptr<!void>>
174174
// CIR: cir.call @_ZN5other1BD2Ev(%[[VAL_2]], %[[VAL_3]]) : (!cir.ptr<!rec_other3A3AB>, !cir.ptr<!cir.ptr<!void>>) -> ()
175-
// CIR: %[[VAL_4:.*]] = cir.base_class_addr(%[[VAL_2]] : !cir.ptr<!rec_other3A3AB> nonnull) [0] -> !cir.ptr<!rec_other3A3AA>
175+
// CIR: %[[VAL_4:.*]] = cir.base_class_addr %[[VAL_2]] : !cir.ptr<!rec_other3A3AB> nonnull [0] -> !cir.ptr<!rec_other3A3AA>
176176
// CIR: cir.call @_ZN5other1AD2Ev(%[[VAL_4]]) : (!cir.ptr<!rec_other3A3AA>) -> ()
177177
// CIR: cir.return
178178
// CIR: }

0 commit comments

Comments
 (0)