Skip to content

Commit f602aa0

Browse files
committed
[rebranch][test] IRGen: Adjust getelementptr checks that are now nuw
Per 7eca38ce76d5d1915f4ab7e665964062c0b37697 (llvm-project).
1 parent 8de3359 commit f602aa0

File tree

98 files changed

+663
-663
lines changed

Some content is hidden

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

98 files changed

+663
-663
lines changed

test/AutoDiff/SIL/differentiability_witness_function_inst.sil

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,14 @@ bb0:
9595

9696
// IRGEN: [[PTR1:%.*]] = load ptr, ptr @fooWJrSUUpSr, align [[PTR_ALIGNMENT]]
9797

98-
// IRGEN: [[PTR2:%.*]] = load ptr, ptr getelementptr inbounds (%swift.differentiability_witness, ptr @fooWJrSSUpSr, i32 0, i32 1), align [[PTR_ALIGNMENT]]
98+
// IRGEN: [[PTR2:%.*]] = load ptr, ptr getelementptr inbounds nuw (%swift.differentiability_witness, ptr @fooWJrSSUpSr, i32 0, i32 1), align [[PTR_ALIGNMENT]]
9999

100100
// IRGEN: [[PTR3:%.*]] = load ptr, ptr @barWJrSUUpSUr, align [[PTR_ALIGNMENT]]
101101

102-
// IRGEN: [[PTR4:%.*]] = load ptr, ptr getelementptr inbounds (%swift.differentiability_witness, ptr @barWJrSSUpSSr, i32 0, i32 1), align [[PTR_ALIGNMENT]]
102+
// IRGEN: [[PTR4:%.*]] = load ptr, ptr getelementptr inbounds nuw (%swift.differentiability_witness, ptr @barWJrSSUpSSr, i32 0, i32 1), align [[PTR_ALIGNMENT]]
103103

104104
// IRGEN: [[PTR5:%.*]] = load ptr, ptr @generic16_Differentiation14DifferentiableRzlWJrSUpSr, align [[PTR_ALIGNMENT]]
105105

106-
// IRGEN: [[PTR6:%.*]] = load ptr, ptr getelementptr inbounds (%swift.differentiability_witness, ptr @generics18AdditiveArithmeticRz16_Differentiation14DifferentiableRzlWJrSSpSr, i32 0, i32 1), align [[PTR_ALIGNMENT]]
106+
// IRGEN: [[PTR6:%.*]] = load ptr, ptr getelementptr inbounds nuw (%swift.differentiability_witness, ptr @generics18AdditiveArithmeticRz16_Differentiation14DifferentiableRzlWJrSSpSr, i32 0, i32 1), align [[PTR_ALIGNMENT]]
107107

108-
// IRGEN: [[PTR7:%.*]] = load ptr, ptr getelementptr inbounds (%swift.differentiability_witness, ptr @generic16_Differentiation14DifferentiableRz13TangentVector{{.*}}WJrSSpSr, i32 0, i32 1), align [[PTR_ALIGNMENT]]
108+
// IRGEN: [[PTR7:%.*]] = load ptr, ptr getelementptr inbounds nuw (%swift.differentiability_witness, ptr @generic16_Differentiation14DifferentiableRz13TangentVector{{.*}}WJrSSpSr, i32 0, i32 1), align [[PTR_ALIGNMENT]]

test/DebugInfo/debug_scope_distinct.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212
//
1313
// CHECK: %[[ARG0:.*]] = load {{.*}} %[[ARG_PTR]]
1414
// CHECK: #dbg_value({{.*}} %[[ARG0]], ![[VAR1:[0-9]+]], !DIExpression(DW_OP_LLVM_fragment, 0, 64), ![[LOC1:[0-9]+]]
15-
// CHECK: %[[ARG1_GEP:.*]] = getelementptr inbounds i8, ptr %[[ARG_PTR]], i64 8
15+
// CHECK: %[[ARG1_GEP:.*]] = getelementptr inbounds nuw i8, ptr %[[ARG_PTR]], i64 8
1616
// CHECK: %[[ARG1:.*]] = load {{.*}} %[[ARG1_GEP]]
1717
// CHECK: #dbg_value({{.*}} %[[ARG1]], ![[VAR1]], !DIExpression(DW_OP_LLVM_fragment, 64, 8), ![[LOC1]]
1818
//
19-
// CHECK: %[[ARG2_GEP:.*]] = getelementptr inbounds i8, ptr %[[ARG_PTR]], i64 32
19+
// CHECK: %[[ARG2_GEP:.*]] = getelementptr inbounds nuw i8, ptr %[[ARG_PTR]], i64 32
2020
// CHECK: %[[ARG2:.*]] = load {{.*}} %[[ARG2_GEP]]
2121
// CHECK: #dbg_value({{.*}} %[[ARG2]], ![[VAR1]], !DIExpression(DW_OP_LLVM_fragment, 0, 64), ![[LOC2:[0-9]+]]
22-
// CHECK: %[[ARG3_GEP:.*]] = getelementptr inbounds i8, ptr %[[ARG_PTR]], i64 40
22+
// CHECK: %[[ARG3_GEP:.*]] = getelementptr inbounds nuw i8, ptr %[[ARG_PTR]], i64 40
2323
// CHECK: %[[ARG3:.*]] = load {{.*}} %[[ARG3_GEP]]
2424
// CHECK: #dbg_value({{.*}} %[[ARG3]], ![[VAR1]], !DIExpression(DW_OP_LLVM_fragment, 64, 8), ![[LOC2]]
2525

test/DebugInfo/shadowcopy-linetable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func foo(_ x: inout Int64) {
2424
// IRCHECK-NEXT: call void @llvm.memset.{{.*}}(ptr align {{(4|8)}} %[[X]], i8 0
2525
// IRCHECK: store ptr %0, ptr %[[X]], align {{(4|8)}}
2626
// IRCHECK-SAME: !dbg ![[LOC0:.*]]
27-
// IRCHECK-NEXT: %[[VALUE:.*]] = getelementptr inbounds %Ts5Int64V, ptr %0, i32 0, i32 0,
27+
// IRCHECK-NEXT: %[[VALUE:.*]] = getelementptr inbounds nuw %Ts5Int64V, ptr %0, i32 0, i32 0,
2828
// IRCHECK-SAME: !dbg ![[LOCLOAD:.*]]
2929
// IRCHECK-NEXT: load i64, ptr %[[VALUE]], align {{(4|8)}}
3030
// IRCHECK-SAME: !dbg ![[LOCLOAD]]

test/Distributed/distributed_actor_accessor_thunks_64bit.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,12 @@ public distributed actor MyOtherActor {
119119
// CHECK: call swiftcc void @"$s27FakeDistributedActorSystems0A17InvocationDecoderC18decodeNextArgumentxyKSeRzSERzlF"(ptr noalias sret(%swift.opaque) [[ARG_0_VALUE_BUF]], ptr %arg_type, ptr [[ENCODABLE_WITNESS]], ptr [[DECODABLE_WITNESS]], ptr swiftself [[DECODER]], ptr noalias captures(none) swifterror dereferenceable(8) %swifterror)
120120

121121
// CHECK: store ptr null, ptr %swifterror
122-
// CHECK-NEXT: %._value = getelementptr inbounds %TSi, ptr [[ARG_0_VALUE_BUF]], i32 0, i32 0
122+
// CHECK-NEXT: %._value = getelementptr inbounds nuw %TSi, ptr [[ARG_0_VALUE_BUF]], i32 0, i32 0
123123
// CHECK-NEXT: [[ARG_VAL:%.*]] = load i64, ptr %._value
124124

125125
/// Setup task context for async call to `simple1` thunk
126126

127-
// CHECK-DIRECT: [[CONTEXT_SIZE:%.*]] = load i32, ptr getelementptr inbounds (%swift.async_func_pointer, ptr @"$s27distributed_actor_accessors7MyActorC7simple1yySiYaKFTETu", i32 0, i32 1)
127+
// CHECK-DIRECT: [[CONTEXT_SIZE:%.*]] = load i32, ptr getelementptr inbounds nuw (%swift.async_func_pointer, ptr @"$s27distributed_actor_accessors7MyActorC7simple1yySiYaKFTETu", i32 0, i32 1)
128128
// CHECK-INDIRECT: [[ADDR:%[0-9]+]] = load ptr, ptr inttoptr (i64 and (i64 ptrtoint (ptr @"$s27distributed_actor_accessors7MyActorC7simple1yySiYaKFTETu" to i64), i64 -2) to ptr)
129129
// CHECK-INDIRECT-NEXT: [[SELECT:%[0-9]+]] = select i1 true, ptr @"$s27distributed_actor_accessors7MyActorC7simple1yySiYaKFTETu", ptr [[ADDR]]
130130
// CHECK-INDIRECT-NEXT: [[LOAD:%[0-9]+]] = getelementptr inbounds %swift.async_func_pointer, ptr [[SELECT]], i32 0, i32 1
@@ -156,7 +156,7 @@ public distributed actor MyOtherActor {
156156

157157
/// Setup task context for async call to `simple2` thunk
158158

159-
// CHECK-DIRECT: [[CONTEXT_SIZE:%.*]] = load i32, ptr getelementptr inbounds (%swift.async_func_pointer, ptr @"$s27distributed_actor_accessors7MyActorC7simple2ySSSiYaKFTETu", i32 0, i32 1)
159+
// CHECK-DIRECT: [[CONTEXT_SIZE:%.*]] = load i32, ptr getelementptr inbounds nuw (%swift.async_func_pointer, ptr @"$s27distributed_actor_accessors7MyActorC7simple2ySSSiYaKFTETu", i32 0, i32 1)
160160
// CHECK-INDIRECT: [[ADDR:%[0-9]+]] = load ptr, ptr inttoptr (i64 and (i64 ptrtoint (ptr @"$s27distributed_actor_accessors7MyActorC7simple2ySSSiYaKFTETu" to i64), i64 -2) to ptr), align 8
161161
// CHECK-INDIRECT-NEXT: [[SELECT:%[0-9]+]] = select i1 true, ptr @"$s27distributed_actor_accessors7MyActorC7simple2ySSSiYaKFTETu", ptr [[ADDR]]
162162
// CHECK-INDIRECT-NEXT: [[LOAD:%[0-9]+]] = getelementptr inbounds %swift.async_func_pointer, ptr [[SELECT]], i32 0, i32 1
@@ -199,7 +199,7 @@ public distributed actor MyOtherActor {
199199

200200
// CHECK: [[ARG_SIZE:%.*]] = and i64 {{.*}}, -16
201201
// CHECK: [[ARG_BUF:%.*]] = call swiftcc ptr @swift_task_alloc(i64 [[ARG_SIZE]])
202-
// CHECK: %._guts = getelementptr inbounds %TSS, ptr [[ARG_BUF]], i32 0, i32 0
202+
// CHECK: %._guts = getelementptr inbounds nuw %TSS, ptr [[ARG_BUF]], i32 0, i32 0
203203

204204
// CHECK: [[STR_SIZE:%.*]] = load i64, ptr %._guts._object._countAndFlagsBits._value
205205
// CHECK: [[STR_VAL:%.*]] = load ptr, ptr %._guts._object._object
@@ -210,7 +210,7 @@ public distributed actor MyOtherActor {
210210
// CHECK-INDIRECT-NEXT: [[SELECT:%[0-9]+]] = select i1 true, ptr @"$s27distributed_actor_accessors7MyActorC7simple3ySiSSYaKFTETu", ptr [[ADDR]]
211211
// CHECK-INDIRECT-NEXT: [[LOAD:%[0-9]+]] = getelementptr inbounds %swift.async_func_pointer, ptr [[SELECT]], i32 0, i32 1
212212
// CHECK-INDIRECT-NEXT: [[CONTEXT_SIZE:%.*]] = load i32, ptr [[LOAD]]
213-
// CHECK-DIRECT: [[CONTEXT_SIZE:%.*]] = load i32, ptr getelementptr inbounds (%swift.async_func_pointer, ptr @"$s27distributed_actor_accessors7MyActorC7simple3ySiSSYaKFTETu", i32 0, i32 1)
213+
// CHECK-DIRECT: [[CONTEXT_SIZE:%.*]] = load i32, ptr getelementptr inbounds nuw (%swift.async_func_pointer, ptr @"$s27distributed_actor_accessors7MyActorC7simple3ySiSSYaKFTETu", i32 0, i32 1)
214214
// CHECK-NEXT: [[CONTEXT_SIZE_64:%.*]] = zext i32 [[CONTEXT_SIZE]] to i64
215215
// CHECK-NEXT: [[THUNK_ASYNC_CONTEXT:%.*]] = call swiftcc ptr @swift_task_alloc(i64 [[CONTEXT_SIZE_64]])
216216

@@ -227,7 +227,7 @@ public distributed actor MyOtherActor {
227227
// CHECK-NEXT: [[CALLER_ASYNC_CTXT:%.*]] = load ptr, ptr [[TASK_REF]]
228228
// CHECK-NEXT: store ptr [[CALLER_ASYNC_CTXT]], ptr
229229
// CHECK: [[INT_RES:%.*]] = extractvalue { ptr, i64, ptr } [[THUNK_RESULT]], 1
230-
// CHECK: %._value = getelementptr inbounds %TSi, ptr [[RESULT_BUFF]], i32 0, i32 0
230+
// CHECK: %._value = getelementptr inbounds nuw %TSi, ptr [[RESULT_BUFF]], i32 0, i32 0
231231
// CHECK: store i64 [[INT_RES]], ptr %._value
232232
// CHECK: {{.*}} = call i1 (ptr, i1, ...) @llvm.coro.end.async({{.*}}, ptr {{.*}}, ptr {{.*}})
233233

@@ -258,7 +258,7 @@ public distributed actor MyOtherActor {
258258
// CHECK: [[ARG_1_SIZE:%.*]] = and i64 {{.*}}, -16
259259
// CHECK-NEXT: [[ARG_1_BUF:%.*]] = call swiftcc ptr @swift_task_alloc(i64 [[ARG_1_SIZE]])
260260

261-
// CHECK: %._value = getelementptr inbounds %TSi, ptr [[ARG_1_BUF]], i32 0, i32 0
261+
// CHECK: %._value = getelementptr inbounds nuw %TSi, ptr [[ARG_1_BUF]], i32 0, i32 0
262262
// CHECK-NEXT: [[NATIVE_INT_VAL:%.*]] = load i64, ptr %._value
263263

264264
/// Call distributed thunk with extracted arguments.
@@ -287,7 +287,7 @@ public distributed actor MyOtherActor {
287287
// CHECK: [[ARG_0_SIZE:%.*]] = and i64 {{.*}}, -16
288288
// CHECK-NEXT: [[ARG_0_BUF:%.*]] = call swiftcc ptr @swift_task_alloc(i64 [[ARG_0_SIZE]])
289289

290-
// CHECK: %._buffer = getelementptr inbounds %TSa, ptr [[ARG_0_BUF]], i32 0, i32 0
290+
// CHECK: %._buffer = getelementptr inbounds nuw %TSa, ptr [[ARG_0_BUF]], i32 0, i32 0
291291
// CHECK: [[NATIVE_ARR_VAL:%.*]] = load ptr, ptr %._buffer._storage
292292

293293
/// -> Obj
@@ -302,9 +302,9 @@ public distributed actor MyOtherActor {
302302
// CHECK: [[ARG_2_SIZE:%.*]] = and i64 {{.*}}, -16
303303
// CHECK-NEXT: [[ARG_2_BUF:%.*]] = call swiftcc ptr @swift_task_alloc(i64 [[ARG_2_SIZE]])
304304

305-
// CHECK: [[NATIVE_OPT_VAL_0_PTR:%.*]] = getelementptr inbounds { i64, i64 }, ptr [[ARG_2_BUF]], i32 0, i32 0
305+
// CHECK: [[NATIVE_OPT_VAL_0_PTR:%.*]] = getelementptr inbounds nuw { i64, i64 }, ptr [[ARG_2_BUF]], i32 0, i32 0
306306
// CHECK-NEXT: [[NATIVE_OPT_VAL_0:%.*]] = load i64, ptr [[NATIVE_OPT_VAL_0_PTR]]
307-
// CHECK-NEXT: [[NATIVE_OPT_VAL_1_PTR:%.*]] = getelementptr inbounds { i64, i64 }, ptr [[ARG_2_BUF]], i32 0, i32 1
307+
// CHECK-NEXT: [[NATIVE_OPT_VAL_1_PTR:%.*]] = getelementptr inbounds nuw { i64, i64 }, ptr [[ARG_2_BUF]], i32 0, i32 1
308308
// CHECK-NEXT: [[NATIVE_OPT_VAL_1:%.*]] = load i64, ptr [[NATIVE_OPT_VAL_1_PTR]]
309309

310310
/// -> LargeStruct (passed indirectly)
@@ -335,8 +335,8 @@ public distributed actor MyOtherActor {
335335
// CHECK: [[ARG_1_SIZE:%.*]] = and i64 {{.*}}, -16
336336
// CHECK-NEXT: [[ARG_1_BUF:%.*]] = call swiftcc ptr @swift_task_alloc(i64 [[ARG_1_SIZE]])
337337

338-
// CHECK: %._buffer = getelementptr inbounds %TSa, ptr [[ARG_1_BUF]], i32 0, i32 0
339-
// CHECK-NEXT: %._buffer._storage = getelementptr inbounds [[ARRAY_TYPE:%.*]], ptr %._buffer, i32 0, i32 0
338+
// CHECK: %._buffer = getelementptr inbounds nuw %TSa, ptr [[ARG_1_BUF]], i32 0, i32 0
339+
// CHECK-NEXT: %._buffer._storage = getelementptr inbounds nuw [[ARRAY_TYPE:%.*]], ptr %._buffer, i32 0, i32 0
340340
// CHECK: [[TYPED_ARG_1:%.*]] = load ptr, ptr %._buffer._storage
341341

342342
/// ---> Load generic argument substitutions from the caller-provided buffer
@@ -380,7 +380,7 @@ public distributed actor MyOtherActor {
380380
// CHECK-NEXT: {{.*}} = call ptr @llvm.coro.begin(token {{%.*}}, ptr null)
381381
// CHECK-NEXT: store ptr {{.*}}, ptr {{.*}}
382382
// CHECK-NEXT: store ptr null, ptr %swifterror
383-
// CHECK-DIRECT-NEXT: {{.*}} = load i32, ptr getelementptr inbounds (%swift.async_func_pointer, ptr @"$s27distributed_actor_accessors12MyOtherActorC5emptyyyYaKFTETu", i32 0, i32 1)
383+
// CHECK-DIRECT-NEXT: {{.*}} = load i32, ptr getelementptr inbounds nuw (%swift.async_func_pointer, ptr @"$s27distributed_actor_accessors12MyOtherActorC5emptyyyYaKFTETu", i32 0, i32 1)
384384
// CHECK-INDIRECT-NEXT: [[ADDR:%[0-9]+]] = load ptr, ptr inttoptr (i64 and (i64 ptrtoint (ptr @"$s27distributed_actor_accessors12MyOtherActorC5emptyyyYaKFTETu" to i64), i64 -2) to ptr), align 8
385385
// CHECK-INDIRECT-NEXT: [[SELECT:%[0-9]+]] = select i1 true, ptr @"$s27distributed_actor_accessors12MyOtherActorC5emptyyyYaKFTETu", ptr [[ADDR]]
386386
// CHECK-INDIRECT-NEXT: [[LOAD:%[0-9]+]] = getelementptr inbounds %swift.async_func_pointer, ptr [[SELECT]], i32 0, i32 1

test/Distributed/distributed_actor_to_actor.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func getAnyActor(distributedActor: isolated some DistributedActor) -> any Actor
3232

3333
// CHECK-IR-LABEL: define {{.*}} @"$s021distributed_actor_to_B011getAnyActor0aF0ScA_pxYi_t11Distributed0gF0RzlF
3434
// CHECK-IR: %conditional.requirement.buffer = alloca [1 x ptr]
35-
// CHECK-IR: [[CONDITIONAL_REQ_GEP:%[0-9]+]] = getelementptr inbounds [1 x ptr], ptr %conditional.requirement.buffer, i32 0, i32 0
35+
// CHECK-IR: [[CONDITIONAL_REQ_GEP:%[0-9]+]] = getelementptr inbounds nuw [1 x ptr], ptr %conditional.requirement.buffer, i32 0, i32 0
3636
// CHECK-IR-NEXT: [[SELF_DA_REQ:%.*]] = getelementptr inbounds ptr, ptr [[CONDITIONAL_REQ_GEP]], i32 0
3737
// CHECK-IR-NEXT: store ptr %"some DistributedActor.DistributedActor", ptr [[SELF_DA_REQ]]
3838
// CHECK-IR-NEXT: call ptr @swift_getWitnessTable(ptr @"$sxScA11DistributedMc{{(.ptrauth)?}}", ptr %"some DistributedActor", ptr [[CONDITIONAL_REQ_GEP]])

test/IRGen/abitypes_objc.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -567,35 +567,35 @@ class Foo {
567567
// We need to allocate enough memory on the stack to hold the argument value we load.
568568
// arm64-ios: define swiftcc void @"$s8abitypes14testBOOLStructyyF"()
569569
// arm64-ios: [[COERCED:%.*]] = alloca i64
570-
// arm64-ios: [[PTR0:%.*]] = getelementptr inbounds %TSo14FiveByteStructV, ptr [[COERCED]], {{i.*}} 0, {{i.*}} 0
571-
// arm64-ios: [[PTR1:%.*]] = getelementptr inbounds %T10ObjectiveC8ObjCBoolV, ptr [[PTR0]], {{i.*}} 0, {{i.*}} 0
572-
// arm64-ios: [[PTR2:%.*]] = getelementptr inbounds %TSb, ptr [[PTR1]], {{i.*}} 0, {{i.*}} 0
570+
// arm64-ios: [[PTR0:%.*]] = getelementptr inbounds nuw %TSo14FiveByteStructV, ptr [[COERCED]], {{i.*}} 0, {{i.*}} 0
571+
// arm64-ios: [[PTR1:%.*]] = getelementptr inbounds nuw %T10ObjectiveC8ObjCBoolV, ptr [[PTR0]], {{i.*}} 0, {{i.*}} 0
572+
// arm64-ios: [[PTR2:%.*]] = getelementptr inbounds nuw %TSb, ptr [[PTR1]], {{i.*}} 0, {{i.*}} 0
573573
// arm64-ios: store i8 0, ptr [[PTR2]], align 8
574574
// arm64-ios: [[ARG:%.*]] = load i64, ptr [[COERCED]]
575575
// arm64-ios: call void @objc_msgSend(ptr {{.*}}, ptr {{.*}}, i64 [[ARG]])
576576
//
577577
// arm64e-ios: define swiftcc void @"$s8abitypes14testBOOLStructyyF"()
578578
// arm64e-ios: [[COERCED:%.*]] = alloca i64
579-
// arm64e-ios: [[PTR0:%.*]] = getelementptr inbounds %TSo14FiveByteStructV, ptr [[COERCED]], {{i.*}} 0, {{i.*}} 0
580-
// arm64e-ios: [[PTR1:%.*]] = getelementptr inbounds %T10ObjectiveC8ObjCBoolV, ptr [[PTR0]], {{i.*}} 0, {{i.*}} 0
581-
// arm64e-ios: [[PTR2:%.*]] = getelementptr inbounds %TSb, ptr [[PTR1]], {{i.*}} 0, {{i.*}} 0
579+
// arm64e-ios: [[PTR0:%.*]] = getelementptr inbounds nuw %TSo14FiveByteStructV, ptr [[COERCED]], {{i.*}} 0, {{i.*}} 0
580+
// arm64e-ios: [[PTR1:%.*]] = getelementptr inbounds nuw %T10ObjectiveC8ObjCBoolV, ptr [[PTR0]], {{i.*}} 0, {{i.*}} 0
581+
// arm64e-ios: [[PTR2:%.*]] = getelementptr inbounds nuw %TSb, ptr [[PTR1]], {{i.*}} 0, {{i.*}} 0
582582
// arm64e-ios: store i8 0, ptr [[PTR2]], align 8
583583
// arm64e-ios: [[ARG:%.*]] = load i64, ptr [[COERCED]]
584584
// arm64e-ios: call void @objc_msgSend(ptr {{.*}}, ptr {{.*}}, i64 [[ARG]])
585585
// arm64-macosx: define swiftcc void @"$s8abitypes14testBOOLStructyyF"()
586586
// arm64-macosx: [[COERCED:%.*]] = alloca i64
587-
// arm64-macosx: [[PTR0:%.*]] = getelementptr inbounds %TSo14FiveByteStructV, ptr [[COERCED]], {{i.*}} 0, {{i.*}} 0
588-
// arm64-macosx: [[PTR1:%.*]] = getelementptr inbounds %T10ObjectiveC8ObjCBoolV, ptr [[PTR0]], {{i.*}} 0, {{i.*}} 0
589-
// arm64-macosx: [[PTR2:%.*]] = getelementptr inbounds %TSb, ptr [[PTR1]], {{i.*}} 0, {{i.*}} 0
587+
// arm64-macosx: [[PTR0:%.*]] = getelementptr inbounds nuw %TSo14FiveByteStructV, ptr [[COERCED]], {{i.*}} 0, {{i.*}} 0
588+
// arm64-macosx: [[PTR1:%.*]] = getelementptr inbounds nuw %T10ObjectiveC8ObjCBoolV, ptr [[PTR0]], {{i.*}} 0, {{i.*}} 0
589+
// arm64-macosx: [[PTR2:%.*]] = getelementptr inbounds nuw %TSb, ptr [[PTR1]], {{i.*}} 0, {{i.*}} 0
590590
// arm64-macosx: store i8 0, ptr [[PTR2]], align 8
591591
// arm64-macosx: [[ARG:%.*]] = load i64, ptr [[COERCED]]
592592
// arm64-macosx: call void @objc_msgSend(ptr {{.*}}, ptr {{.*}}, i64 [[ARG]])
593593
//
594594
// arm64-watchos: define swiftcc void @"$s8abitypes14testBOOLStructyyF"()
595595
// arm64-watchos: [[COERCED:%.*]] = alloca i64
596-
// arm64-watchos: [[PTR0:%.*]] = getelementptr inbounds %TSo14FiveByteStructV, ptr [[COERCED]], {{i.*}} 0, {{i.*}} 0
597-
// arm64-watchos: [[PTR1:%.*]] = getelementptr inbounds %T10ObjectiveC8ObjCBoolV, ptr [[PTR0]], {{i.*}} 0, {{i.*}} 0
598-
// arm64-watchos: [[PTR2:%.*]] = getelementptr inbounds %TSb, ptr [[PTR1]], {{i.*}} 0, {{i.*}} 0
596+
// arm64-watchos: [[PTR0:%.*]] = getelementptr inbounds nuw %TSo14FiveByteStructV, ptr [[COERCED]], {{i.*}} 0, {{i.*}} 0
597+
// arm64-watchos: [[PTR1:%.*]] = getelementptr inbounds nuw %T10ObjectiveC8ObjCBoolV, ptr [[PTR0]], {{i.*}} 0, {{i.*}} 0
598+
// arm64-watchos: [[PTR2:%.*]] = getelementptr inbounds nuw %TSb, ptr [[PTR1]], {{i.*}} 0, {{i.*}} 0
599599
// arm64-watchos: store i8 0, ptr [[PTR2]], align 8
600600
// arm64-watchos: [[ARG:%.*]] = load i64, ptr [[COERCED]]
601601
// arm64-watchos: call void @objc_msgSend(ptr {{.*}}, ptr {{.*}}, i64 [[ARG]])

test/IRGen/access_markers.sil

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ bb0(%0 : @guaranteed $A):
2626
// CHECK: [[SCRATCH1:%.*]] = alloca [[BUFFER:.* x i8.]], align
2727
// CHECK: [[SCRATCH2:%.*]] = alloca [[BUFFER]], align
2828

29-
// CHECK: [[PROPERTY:%.*]] = getelementptr inbounds [[C]], ptr %0, i32 0, i32 1
29+
// CHECK: [[PROPERTY:%.*]] = getelementptr inbounds nuw [[C]], ptr %0, i32 0, i32 1
3030
%2 = ref_element_addr %0 : $A, #A.property
3131

3232
// CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 {{.*}}, ptr [[SCRATCH1]])
3333
// CHECK-NEXT: call void @swift_beginAccess(ptr [[PROPERTY]], ptr [[SCRATCH1]], [[SIZE:i(32|64)]] 33, ptr null)
3434
%3 = begin_access [modify] [dynamic] %2 : $*Int64
3535

36-
// CHECK-NEXT: getelementptr inbounds %Ts5Int64V, ptr [[PROPERTY]], i32 0, i32 0
36+
// CHECK-NEXT: getelementptr inbounds nuw %Ts5Int64V, ptr [[PROPERTY]], i32 0, i32 0
3737
// CHECK-NEXT: load i64, ptr
3838
%4 = load [trivial] %3 : $*Int64
3939

@@ -45,7 +45,7 @@ bb0(%0 : @guaranteed $A):
4545
// CHECK-NEXT: call void @swift_beginAccess(ptr [[PROPERTY]], ptr [[SCRATCH2]], [[SIZE]] 32, ptr null)
4646
%6 = begin_access [read] [dynamic] %2 : $*Int64
4747

48-
// CHECK-NEXT: getelementptr inbounds %Ts5Int64V, ptr [[PROPERTY]], i32 0, i32 0
48+
// CHECK-NEXT: getelementptr inbounds nuw %Ts5Int64V, ptr [[PROPERTY]], i32 0, i32 0
4949
// CHECK-NEXT: load i64, ptr
5050
%7 = load [trivial] %6 : $*Int64
5151

@@ -65,7 +65,7 @@ bb0(%0 : $A):
6565
// CHECK: [[SCRATCH:%.*]] = alloca [[BUFFER:.* x i8.]], align
6666
%1 = alloc_stack $Builtin.UnsafeValueBuffer
6767

68-
// CHECK: [[PROPERTY:%.*]] = getelementptr inbounds [[C]], ptr %0, i32 0, i32 1
68+
// CHECK: [[PROPERTY:%.*]] = getelementptr inbounds nuw [[C]], ptr %0, i32 0, i32 1
6969
%2 = ref_element_addr %0 : $A, #A.property
7070

7171
// CHECK-NEXT: call void @swift_beginAccess(ptr [[PROPERTY]], ptr [[SCRATCH]], [[SIZE]] 33, ptr null)
@@ -131,7 +131,7 @@ bb0(%0 : $A):
131131
sil @testNontracking : $(@guaranteed A) -> () {
132132
bb0(%0 : $A):
133133
%1 = alloc_stack $Int64
134-
// CHECK: [[PROPERTY:%.*]] = getelementptr inbounds [[C]], ptr %0, i32 0, i32 1
134+
// CHECK: [[PROPERTY:%.*]] = getelementptr inbounds nuw [[C]], ptr %0, i32 0, i32 1
135135
%2 = ref_element_addr %0 : $A, #A.property
136136
// CHECK: call void @swift_beginAccess(ptr %{{.*}}, ptr %{{.*}}, [[SIZE]] 0, ptr null)
137137
%3 = begin_access [read] [dynamic] [no_nested_conflict] %2 : $*Int64

test/IRGen/access_markers_pc.sil

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ sil_vtable A {}
2121
// CHECK-LABEL: define {{.*}}void @testUnpairedExternal(
2222
sil @testUnpairedExternal : $(@guaranteed A, @inout Builtin.UnsafeValueBuffer) -> () {
2323
bb0(%0 : $A, %1 : $*Builtin.UnsafeValueBuffer):
24-
// CHECK: [[PROPERTY:%.*]] = getelementptr inbounds [[C]], ptr %0, i32 0, i32 1
24+
// CHECK: [[PROPERTY:%.*]] = getelementptr inbounds nuw [[C]], ptr %0, i32 0, i32 1
2525
%2 = ref_element_addr %0 : $A, #A.property
2626

2727
// CHECK-NEXT: [[PC:%.*]] = call ptr @llvm.returnaddress(i32 0)

test/IRGen/actor_class.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ public actor MyClass {
4141
}
4242

4343
// CHECK-LABEL: define {{.*}}@"$s11actor_class7MyClassC1xSivg"
44-
// CHECK: [[T0:%.*]] = getelementptr inbounds %T11actor_class7MyClassC, ptr %0, i32 0, i32 2
45-
// CHECK: [[T1:%.*]] = getelementptr inbounds %TSi, ptr [[T0]], i32 0, i32 0
44+
// CHECK: [[T0:%.*]] = getelementptr inbounds nuw %T11actor_class7MyClassC, ptr %0, i32 0, i32 2
45+
// CHECK: [[T1:%.*]] = getelementptr inbounds nuw %TSi, ptr [[T0]], i32 0, i32 0
4646
// CHECK: load [[INT]], ptr [[T1]], align
4747

4848
// CHECK-LABEL: define {{.*}}swiftcc ptr @"$s11actor_class7MyClassCACycfc"

0 commit comments

Comments
 (0)