Skip to content

Commit dcea163

Browse files
committed
[CIR] Refactor cir.cast to use uniform assembly form w/o parens, commas
This mirrors incubator changes from llvm/clangir#1922
1 parent fe9fba8 commit dcea163

File tree

97 files changed

+773
-773
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+773
-773
lines changed

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

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -209,18 +209,18 @@ def CIR_CastOp : CIR_Op<"cast", [
209209
Example:
210210

211211
```mlir
212-
%4 = cir.cast(int_to_bool, %3 : i32), !cir.bool
212+
%4 = cir.cast int_to_bool %3 : i32 -> !cir.bool
213213
...
214-
%x = cir.cast(array_to_ptrdecay, %0 : !cir.ptr<!cir.array<i32 x 10>>), !cir.ptr<i32>
214+
%x = cir.cast array_to_ptrdecay %0
215+
: !cir.ptr<!cir.array<i32 x 10>> -> !cir.ptr<i32>
215216
```
216217
}];
217218

218219
let arguments = (ins CIR_CastKind:$kind, CIR_AnyType:$src);
219220
let results = (outs CIR_AnyType:$result);
220221

221222
let assemblyFormat = [{
222-
`(` $kind `,` $src `:` type($src) `)`
223-
`,` type($result) attr-dict
223+
$kind $src `:` qualified(type($src)) `->` qualified(type($result)) attr-dict
224224
}];
225225

226226
// The input and output types should match the cast kind.
@@ -1176,7 +1176,7 @@ def CIR_GotoOp : CIR_Op<"goto", [Terminator]> {
11761176
```mlir
11771177
cir.scope { // REGION #1
11781178
%2 = cir.load %0 : !cir.ptr<!s32i>, !s32i
1179-
%3 = cir.cast(int_to_bool, %2 : !s32i), !cir.bool
1179+
%3 = cir.cast int_to_bool %2 : !s32i -> !cir.bool
11801180
cir.if %3 {
11811181
cir.goto "label"
11821182
}
@@ -3994,9 +3994,9 @@ def CIR_VAStartOp : CIR_Op<"va_start"> {
39943994

39953995
```mlir
39963996
// %args : !cir.ptr<!cir.array<!rec___va_list_tag x 1>>
3997-
%p = cir.cast(array_to_ptrdecay, %args
3998-
: !cir.ptr<!cir.array<!rec___va_list_tag x 1>>),
3999-
!cir.ptr<!rec___va_list_tag>
3997+
%p = cir.cast array_to_ptrdecay %args
3998+
: !cir.ptr<!cir.array<!rec___va_list_tag x 1>>)
3999+
-> !cir.ptr<!rec___va_list_tag>
40004000
%count = cir.load %0 : !cir.ptr<!s32i>, !s32i
40014001
cir.va_start %p %count : !cir.ptr<!rec___va_list_tag>, !s32i
40024002
```
@@ -4033,9 +4033,9 @@ def CIR_VAEndOp : CIR_Op<"va_end"> {
40334033
Example:
40344034
```mlir
40354035
// %args : !cir.ptr<!cir.array<!rec___va_list_tag x 1>>
4036-
%p = cir.cast(array_to_ptrdecay, %args
4037-
: !cir.ptr<!cir.array<!rec___va_list_tag x 1>>),
4038-
!cir.ptr<!rec___va_list_tag>
4036+
%p = cir.cast array_to_ptrdecay %args
4037+
: !cir.ptr<!cir.array<!rec___va_list_tag x 1>>
4038+
-> !cir.ptr<!rec___va_list_tag>
40394039
cir.va_end %p : !cir.ptr<!rec___va_list_tag>
40404040
```
40414041
}];
@@ -4068,9 +4068,9 @@ def CIR_VAArgOp : CIR_Op<"va_arg"> {
40684068
Example:
40694069
```mlir
40704070
// %args : !cir.ptr<!cir.array<!rec___va_list_tag x 1>>
4071-
%p = cir.cast(array_to_ptrdecay, %args
4072-
: !cir.ptr<!cir.array<!rec___va_list_tag x 1>>),
4073-
!cir.ptr<!rec___va_list_tag>
4071+
%p = cir.cast array_to_ptrdecay %args
4072+
: !cir.ptr<!cir.array<!rec___va_list_tag x 1>>
4073+
-> !cir.ptr<!rec___va_list_tag>
40744074
cir.va.start %p : !cir.ptr<!rec___va_list_tag>
40754075

40764076
// Fetch an `int` from the vararg list.

clang/lib/CIR/CodeGen/CIRGenRecordLayout.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ namespace clang::CIRGen {
5757
/// cir.func @store_field() {
5858
/// %0 = cir.alloca !rec_S, !cir.ptr<!rec_S>, ["s"] {alignment = 4 : i64}
5959
/// %1 = cir.const #cir.int<2> : !s32i
60-
/// %2 = cir.cast(integral, %1 : !s32i), !u32i
60+
/// %2 = cir.cast integral %1 : !s32i -> !u32i
6161
/// %3 = cir.get_member %0[3] {name = "more_bits"} : !cir.ptr<!rec_S> ->
6262
/// !cir.ptr<!u16i>
6363
/// %4 = cir.set_bitfield(#bfi_more_bits, %3 :

clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2420,7 +2420,7 @@ static void prepareTypeConverter(mlir::LLVMTypeConverter &converter,
24202420
// For instance, this CIR code:
24212421
//
24222422
// cir.func @foo(%arg0: !s32i) -> !s32i {
2423-
// %4 = cir.cast(int_to_bool, %arg0 : !s32i), !cir.bool
2423+
// %4 = cir.cast int_to_bool %arg0 : !s32i -> !cir.bool
24242424
// cir.if %4 {
24252425
// %5 = cir.const #cir.int<1> : !s32i
24262426
// cir.return %5 : !s32i

clang/test/CIR/CodeGen/aapcs-volatile-bitfields.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ int check_load(st1 *s1) {
8686
// CIR: [[LOAD:%.*]] = cir.load align(8) {{.*}} : !cir.ptr<!cir.ptr<!rec_st1>>, !cir.ptr<!rec_st1>
8787
// CIR: [[MEMBER:%.*]] = cir.get_member [[LOAD]][0] {name = "b"} : !cir.ptr<!rec_st1> -> !cir.ptr<!u16i>
8888
// CIR: [[BITFI:%.*]] = cir.get_bitfield align(4) (#bfi_b, [[MEMBER]] {is_volatile} : !cir.ptr<!u16i>) -> !u32i
89-
// CIR: [[CAST:%.*]] = cir.cast(integral, [[BITFI]] : !u32i), !s32i
89+
// CIR: [[CAST:%.*]] = cir.cast integral [[BITFI]] : !u32i -> !s32i
9090
// CIR: cir.store [[CAST]], [[RETVAL:%.*]] : !s32i, !cir.ptr<!s32i>
9191
// CIR: [[RET:%.*]] = cir.load [[RETVAL]] : !cir.ptr<!s32i>, !s32i
9292
// CIR: cir.return [[RET]] : !s32i
@@ -118,7 +118,7 @@ int check_load_exception(st3 *s3) {
118118
// CIR: [[LOAD:%.*]] = cir.load align(8) {{.*}} : !cir.ptr<!cir.ptr<!rec_st3>>, !cir.ptr<!rec_st3>
119119
// CIR: [[MEMBER:%.*]] = cir.get_member [[LOAD]][2] {name = "b"} : !cir.ptr<!rec_st3> -> !cir.ptr<!u8i>
120120
// CIR: [[BITFI:%.*]] = cir.get_bitfield align(4) (#bfi_b1, [[MEMBER]] {is_volatile} : !cir.ptr<!u8i>) -> !u32i
121-
// CIR: [[CAST:%.*]] = cir.cast(integral, [[BITFI]] : !u32i), !s32i
121+
// CIR: [[CAST:%.*]] = cir.cast integral [[BITFI]] : !u32i -> !s32i
122122
// CIR: cir.store [[CAST]], [[RETVAL:%.*]] : !s32i, !cir.ptr<!s32i>
123123
// CIR: [[RET:%.*]] = cir.load [[RETVAL]] : !cir.ptr<!s32i>, !s32i
124124
// CIR: cir.return [[RET]] : !s32i
@@ -180,7 +180,7 @@ void check_store(st2 *s2) {
180180

181181
// CIR: cir.func dso_local @check_store
182182
// CIR: [[CONST:%.*]] = cir.const #cir.int<1> : !s32i
183-
// CIR: [[CAST:%.*]] = cir.cast(integral, [[CONST]] : !s32i), !s16i
183+
// CIR: [[CAST:%.*]] = cir.cast integral [[CONST]] : !s32i -> !s16i
184184
// CIR: [[LOAD:%.*]] = cir.load align(8) {{.*}} : !cir.ptr<!cir.ptr<!rec_st2>>, !cir.ptr<!rec_st2>
185185
// CIR: [[MEMBER:%.*]] = cir.get_member [[LOAD]][0] {name = "a"} : !cir.ptr<!rec_st2> -> !cir.ptr<!u32i>
186186
// CIR: [[SETBF:%.*]] = cir.set_bitfield align(8) (#bfi_a, [[MEMBER]] : !cir.ptr<!u32i>, [[CAST]] : !s16i) {is_volatile} -> !s16i
@@ -211,7 +211,7 @@ void check_store_exception(st3 *s3) {
211211

212212
// CIR: cir.func dso_local @check_store_exception
213213
// CIR: [[CONST:%.*]] = cir.const #cir.int<2> : !s32i
214-
// CIR: [[CAST:%.*]] = cir.cast(integral, [[CONST]] : !s32i), !u32i
214+
// CIR: [[CAST:%.*]] = cir.cast integral [[CONST]] : !s32i -> !u32i
215215
// CIR: [[LOAD:%.*]] = cir.load align(8) {{.*}} : !cir.ptr<!cir.ptr<!rec_st3>>, !cir.ptr<!rec_st3>
216216
// CIR: [[MEMBER:%.*]] = cir.get_member [[LOAD]][2] {name = "b"} : !cir.ptr<!rec_st3> -> !cir.ptr<!u8i>
217217
// CIR: [[SETBF:%.*]] = cir.set_bitfield align(4) (#bfi_b1, [[MEMBER]] : !cir.ptr<!u8i>, [[CAST]] : !u32i) {is_volatile} -> !u32i
@@ -263,7 +263,7 @@ void check_store_second_member (st4 *s4) {
263263

264264
// CIR: cir.func dso_local @check_store_second_member
265265
// CIR: [[ONE:%.*]] = cir.const #cir.int<1> : !s32i
266-
// CIR: [[CAST:%.*]] = cir.cast(integral, [[ONE]] : !s32i), !u64i
266+
// CIR: [[CAST:%.*]] = cir.cast integral [[ONE]] : !s32i -> !u64i
267267
// CIR: [[LOAD:%.*]] = cir.load align(8) {{.*}} : !cir.ptr<!cir.ptr<!rec_st4>>, !cir.ptr<!rec_st4>
268268
// CIR: [[MEMBER:%.*]] = cir.get_member [[LOAD]][2] {name = "b"} : !cir.ptr<!rec_st4> -> !cir.ptr<!u16i>
269269
// CIR: cir.set_bitfield align(8) (#bfi_b2, [[MEMBER]] : !cir.ptr<!u16i>, [[CAST]] : !u64i) {is_volatile} -> !u64i

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ void foo() {
2727
// CIR: cir.func dso_local @_Z3foov()
2828
// CIR: %[[ARRAY:.*]] = cir.alloca !cir.array<!rec_S x 42>, !cir.ptr<!cir.array<!rec_S x 42>>, ["s", init]
2929
// CIR: %[[CONST42:.*]] = cir.const #cir.int<42> : !u64i
30-
// CIR: %[[DECAY:.*]] = cir.cast(array_to_ptrdecay, %[[ARRAY]] : !cir.ptr<!cir.array<!rec_S x 42>>), !cir.ptr<!rec_S>
30+
// CIR: %[[DECAY:.*]] = cir.cast array_to_ptrdecay %[[ARRAY]] : !cir.ptr<!cir.array<!rec_S x 42>> -> !cir.ptr<!rec_S>
3131
// CIR: %[[END_PTR:.*]] = cir.ptr_stride(%[[DECAY]] : !cir.ptr<!rec_S>, %[[CONST42]] : !u64i), !cir.ptr<!rec_S>
3232
// CIR: %[[ITER:.*]] = cir.alloca !cir.ptr<!rec_S>, !cir.ptr<!cir.ptr<!rec_S>>, ["__array_idx"]
3333
// CIR: cir.store %[[DECAY]], %[[ITER]] : !cir.ptr<!rec_S>, !cir.ptr<!cir.ptr<!rec_S>>
@@ -111,7 +111,7 @@ void multi_dimensional() {
111111

112112
// CIR-BEFORE-LPP: cir.func{{.*}} @_Z17multi_dimensionalv()
113113
// CIR-BEFORE-LPP: %[[S:.*]] = cir.alloca !cir.array<!cir.array<!rec_S x 5> x 3>, !cir.ptr<!cir.array<!cir.array<!rec_S x 5> x 3>>, ["s", init]
114-
// CIR-BEFORE-LPP: %[[FLAT:.*]] = cir.cast(bitcast, %[[S]] : !cir.ptr<!cir.array<!cir.array<!rec_S x 5> x 3>>), !cir.ptr<!cir.array<!rec_S x 15>>
114+
// CIR-BEFORE-LPP: %[[FLAT:.*]] = cir.cast bitcast %[[S]] : !cir.ptr<!cir.array<!cir.array<!rec_S x 5> x 3>> -> !cir.ptr<!cir.array<!rec_S x 15>>
115115
// CIR-BEFORE-LPP: cir.array.ctor %[[FLAT]] : !cir.ptr<!cir.array<!rec_S x 15>> {
116116
// CIR-BEFORE-LPP: ^bb0(%[[ARG:.*]]: !cir.ptr<!rec_S>):
117117
// CIR-BEFORE-LPP: cir.call @_ZN1SC1Ev(%[[ARG]]) : (!cir.ptr<!rec_S>) -> ()
@@ -122,7 +122,7 @@ void multi_dimensional() {
122122
// CIR: cir.func{{.*}} @_Z17multi_dimensionalv()
123123
// CIR: %[[S:.*]] = cir.alloca !cir.array<!cir.array<!rec_S x 5> x 3>, !cir.ptr<!cir.array<!cir.array<!rec_S x 5> x 3>>, ["s", init]
124124
// CIR: %[[CONST15:.*]] = cir.const #cir.int<15> : !u64i
125-
// CIR: %[[DECAY:.*]] = cir.cast(array_to_ptrdecay, {{.*}} : !cir.ptr<!cir.array<!rec_S x 15>>), !cir.ptr<!rec_S>
125+
// CIR: %[[DECAY:.*]] = cir.cast array_to_ptrdecay {{.*}} : !cir.ptr<!cir.array<!rec_S x 15>> -> !cir.ptr<!rec_S>
126126
// CIR: %[[END_PTR:.*]] = cir.ptr_stride(%[[DECAY]] : !cir.ptr<!rec_S>, %[[CONST15]] : !u64i), !cir.ptr<!rec_S>
127127
// CIR: %[[ITER:.*]] = cir.alloca !cir.ptr<!rec_S>, !cir.ptr<!cir.ptr<!rec_S>>, ["__array_idx"]
128128
// CIR: cir.store %[[DECAY]], %[[ITER]] : !cir.ptr<!rec_S>, !cir.ptr<!cir.ptr<!rec_S>>

clang/test/CIR/CodeGen/array-dtor.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ void test_cleanup_array() {
2626
// CIR: cir.func{{.*}} @_Z18test_cleanup_arrayv()
2727
// CIR: %[[S:.*]] = cir.alloca !cir.array<!rec_S x 42>, !cir.ptr<!cir.array<!rec_S x 42>>, ["s"]
2828
// CIR: %[[CONST41:.*]] = cir.const #cir.int<41> : !u64i
29-
// CIR: %[[DECAY:.*]] = cir.cast(array_to_ptrdecay, %[[S]] : !cir.ptr<!cir.array<!rec_S x 42>>), !cir.ptr<!rec_S>
29+
// CIR: %[[DECAY:.*]] = cir.cast array_to_ptrdecay %[[S]] : !cir.ptr<!cir.array<!rec_S x 42>> -> !cir.ptr<!rec_S>
3030
// CIR: %[[END_PTR:.*]] = cir.ptr_stride(%[[DECAY]] : !cir.ptr<!rec_S>, %[[CONST41]] : !u64i), !cir.ptr<!rec_S>
3131
// CIR: %[[ITER:.*]] = cir.alloca !cir.ptr<!rec_S>, !cir.ptr<!cir.ptr<!rec_S>>, ["__array_idx"]
3232
// CIR: cir.store %[[END_PTR]], %[[ITER]] : !cir.ptr<!rec_S>, !cir.ptr<!cir.ptr<!rec_S>>
@@ -109,7 +109,7 @@ void multi_dimensional() {
109109

110110
// CIR-BEFORE-LPP: cir.func{{.*}} @_Z17multi_dimensionalv()
111111
// CIR-BEFORE-LPP: %[[S:.*]] = cir.alloca !cir.array<!cir.array<!rec_S x 5> x 3>, !cir.ptr<!cir.array<!cir.array<!rec_S x 5> x 3>>, ["s"]
112-
// CIR-BEFORE-LPP: %[[FLAT:.*]] = cir.cast(bitcast, %[[S]] : !cir.ptr<!cir.array<!cir.array<!rec_S x 5> x 3>>), !cir.ptr<!cir.array<!rec_S x 15>>
112+
// CIR-BEFORE-LPP: %[[FLAT:.*]] = cir.cast bitcast %[[S]] : !cir.ptr<!cir.array<!cir.array<!rec_S x 5> x 3>> -> !cir.ptr<!cir.array<!rec_S x 15>>
113113
// CIR-BEFORE-LPP: cir.array.dtor %[[FLAT]] : !cir.ptr<!cir.array<!rec_S x 15>> {
114114
// CIR-BEFORE-LPP: ^bb0(%[[ARG:.*]]: !cir.ptr<!rec_S>):
115115
// CIR-BEFORE-LPP: cir.call @_ZN1SD1Ev(%[[ARG]]) nothrow : (!cir.ptr<!rec_S>) -> ()
@@ -119,9 +119,9 @@ void multi_dimensional() {
119119

120120
// CIR: cir.func{{.*}} @_Z17multi_dimensionalv()
121121
// CIR: %[[S:.*]] = cir.alloca !cir.array<!cir.array<!rec_S x 5> x 3>, !cir.ptr<!cir.array<!cir.array<!rec_S x 5> x 3>>, ["s"]
122-
// CIR: %[[FLAT:.*]] = cir.cast(bitcast, %[[S]] : !cir.ptr<!cir.array<!cir.array<!rec_S x 5> x 3>>), !cir.ptr<!cir.array<!rec_S x 15>>
122+
// CIR: %[[FLAT:.*]] = cir.cast bitcast %[[S]] : !cir.ptr<!cir.array<!cir.array<!rec_S x 5> x 3>> -> !cir.ptr<!cir.array<!rec_S x 15>>
123123
// CIR: %[[CONST14:.*]] = cir.const #cir.int<14> : !u64i
124-
// CIR: %[[DECAY:.*]] = cir.cast(array_to_ptrdecay, %[[FLAT]] : !cir.ptr<!cir.array<!rec_S x 15>>), !cir.ptr<!rec_S>
124+
// CIR: %[[DECAY:.*]] = cir.cast array_to_ptrdecay %[[FLAT]] : !cir.ptr<!cir.array<!rec_S x 15>> -> !cir.ptr<!rec_S>
125125
// CIR: %[[END_PTR:.*]] = cir.ptr_stride(%[[DECAY]] : !cir.ptr<!rec_S>, %[[CONST14]] : !u64i), !cir.ptr<!rec_S>
126126
// CIR: %[[ITER:.*]] = cir.alloca !cir.ptr<!rec_S>, !cir.ptr<!cir.ptr<!rec_S>>, ["__array_idx"]
127127
// CIR: cir.store %[[END_PTR]], %[[ITER]] : !cir.ptr<!rec_S>, !cir.ptr<!cir.ptr<!rec_S>>

0 commit comments

Comments
 (0)