Skip to content

Commit 102bad0

Browse files
committed
Revert "[IR] Convert from nocapture to captures(none) (llvm#123181)"
This reverts commit 29441e4.
1 parent 2aa3273 commit 102bad0

File tree

389 files changed

+3519
-3636
lines changed

Some content is hidden

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

389 files changed

+3519
-3636
lines changed

clang/lib/CodeGen/CGCall.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2882,7 +2882,7 @@ void CodeGenModule::ConstructAttributeList(StringRef Name,
28822882
}
28832883

28842884
if (FI.getExtParameterInfo(ArgNo).isNoEscape())
2885-
Attrs.addCapturesAttr(llvm::CaptureInfo::none());
2885+
Attrs.addAttribute(llvm::Attribute::NoCapture);
28862886

28872887
if (Attrs.hasAttributes()) {
28882888
unsigned FirstIRArg, NumIRArgs;

clang/lib/CodeGen/CGObjCGNU.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -773,9 +773,7 @@ class CGObjCGNUstep : public CGObjCGNU {
773773

774774
// The lookup function is guaranteed not to capture the receiver pointer.
775775
if (auto *LookupFn2 = dyn_cast<llvm::Function>(LookupFn.getCallee()))
776-
LookupFn2->addParamAttr(
777-
0, llvm::Attribute::getWithCaptureInfo(CGF.getLLVMContext(),
778-
llvm::CaptureInfo::none()));
776+
LookupFn2->addParamAttr(0, llvm::Attribute::NoCapture);
779777

780778
llvm::Value *args[] = {
781779
EnforceType(Builder, ReceiverPtr.getPointer(), PtrToIdTy),

clang/test/CodeGen/AArch64/pure-scalable-args.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ void test_argpass_simple(PST *p) {
6767
void argpass_simple_callee(PST);
6868
argpass_simple_callee(*p);
6969
}
70-
// CHECK-AAPCS: define dso_local void @test_argpass_simple(ptr noundef readonly captures(none) %p)
70+
// CHECK-AAPCS: define dso_local void @test_argpass_simple(ptr nocapture noundef readonly %p)
7171
// CHECK-AAPCS-NEXT: entry:
7272
// CHECK-AAPCS-NEXT: %0 = load <2 x i8>, ptr %p, align 16
7373
// CHECK-AAPCS-NEXT: %cast.scalable = tail call <vscale x 2 x i8> @llvm.vector.insert.nxv2i8.v2i8(<vscale x 2 x i8> poison, <2 x i8> %0, i64 0)
@@ -292,24 +292,24 @@ PST test_return(PST *p) {
292292
return *p;
293293
}
294294
// CHECK-AAPCS: define dso_local <{ <vscale x 16 x i1>, <vscale x 2 x double>, <vscale x 4 x float>, <vscale x 4 x float>, <vscale x 16 x i8>, <vscale x 16 x i1> }> @test_return(ptr
295-
// CHECK-DARWIN: define void @test_return(ptr dead_on_unwind noalias writable writeonly sret(%struct.PST) align 16 captures(none) initializes((0, 96)) %agg.result, ptr noundef readonly captures(none) %p)
295+
// CHECK-DARWIN: define void @test_return(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.PST) align 16 initializes((0, 96)) %agg.result, ptr nocapture noundef readonly %p)
296296

297297
// Corner case of 1-element aggregate
298298
// p->x -> q0
299299
SmallPST test_return_small_pst(SmallPST *p) {
300300
return *p;
301301
}
302302
// CHECK-AAPCS: define dso_local <vscale x 4 x float> @test_return_small_pst(ptr
303-
// CHECK-DARWIN: define i128 @test_return_small_pst(ptr noundef readonly captures(none) %p)
303+
// CHECK-DARWIN: define i128 @test_return_small_pst(ptr nocapture noundef readonly %p)
304304

305305

306306
// Big PST, returned indirectly
307307
// *p -> *x8
308308
BigPST test_return_big_pst(BigPST *p) {
309309
return *p;
310310
}
311-
// CHECK-AAPCS: define dso_local void @test_return_big_pst(ptr dead_on_unwind noalias writable writeonly sret(%struct.BigPST) align 16 captures(none) initializes((0, 176)) %agg.result, ptr noundef readonly captures(none) %p)
312-
// CHECK-DARWIN: define void @test_return_big_pst(ptr dead_on_unwind noalias writable writeonly sret(%struct.BigPST) align 16 captures(none) initializes((0, 176)) %agg.result, ptr noundef readonly captures(none) %p)
311+
// CHECK-AAPCS: define dso_local void @test_return_big_pst(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.BigPST) align 16 initializes((0, 176)) %agg.result, ptr nocapture noundef readonly %p)
312+
// CHECK-DARWIN: define void @test_return_big_pst(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.BigPST) align 16 initializes((0, 176)) %agg.result, ptr nocapture noundef readonly %p)
313313

314314
// Variadic arguments are unnamed, PST passed indirectly.
315315
// (Passing SVE types to a variadic function currently unsupported by

clang/test/CodeGen/AArch64/sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ typedef int8_t vec_int8 __attribute__((vector_size(N / 8)));
5959
// CHECK128-NEXT: ret <16 x i8> [[CASTFIXEDSVE]]
6060

6161
// CHECK-LABEL: define{{.*}} void @f2(
62-
// CHECK-SAME: ptr dead_on_unwind noalias writable writeonly sret(<[[#div(VBITS,8)]] x i8>) align 16 captures(none) initializes((0, [[#div(VBITS,8)]])) %agg.result, ptr noundef readonly captures(none) %0)
62+
// CHECK-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret(<[[#div(VBITS,8)]] x i8>) align 16 initializes((0, [[#div(VBITS,8)]])) %agg.result, ptr nocapture noundef readonly %0)
6363
// CHECK-NEXT: entry:
6464
// CHECK-NEXT: [[X:%.*]] = load <[[#div(VBITS,8)]] x i8>, ptr [[TMP0:%.*]], align 16, [[TBAA6:!tbaa !.*]]
6565
// CHECK-NEXT: [[TMP1:%.*]] = tail call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31)

clang/test/CodeGen/PowerPC/aix-vaargs.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ void testva (int n, ...) {
6868

6969
// CHECK: declare void @llvm.va_start.p0(ptr)
7070

71-
// AIX32: declare void @llvm.memcpy.p0.p0.i32(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i32, i1 immarg)
72-
// AIX64: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg)
71+
// AIX32: declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg)
72+
// AIX64: declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg)
7373

7474
// CHECK: declare void @llvm.va_copy.p0(ptr, ptr)
7575
// CHECK: declare void @llvm.va_end.p0(ptr)

clang/test/CodeGen/SystemZ/systemz-inline-asm.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ double test_f64(double f, double g) {
123123
long double test_f128(long double f, long double g) {
124124
asm("axbr %0, %2" : "=f" (f) : "0" (f), "f" (g));
125125
return f;
126-
// CHECK: define{{.*}} void @test_f128(ptr dead_on_unwind noalias writable writeonly sret(fp128) align 8 captures(none) initializes((0, 16)) [[DEST:%.*]], ptr noundef readonly captures(none) %0, ptr noundef readonly captures(none) %1)
126+
// CHECK: define{{.*}} void @test_f128(ptr dead_on_unwind noalias nocapture writable writeonly sret(fp128) align 8 initializes((0, 16)) [[DEST:%.*]], ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1)
127127
// CHECK: %f = load fp128, ptr %0
128128
// CHECK: %g = load fp128, ptr %1
129129
// CHECK: [[RESULT:%.*]] = tail call fp128 asm "axbr $0, $2", "=f,0,f"(fp128 %f, fp128 %g)

clang/test/CodeGen/arm-cmse-attr.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ void f4(void) __attribute__((cmse_nonsecure_entry))
2929
{
3030
}
3131

32-
// CHECK: define{{.*}} void @f1(ptr noundef readonly captures(none) %fptr) {{[^#]*}}#0 {
32+
// CHECK: define{{.*}} void @f1(ptr nocapture noundef readonly %fptr) {{[^#]*}}#0 {
3333
// CHECK: call void %fptr() #2
34-
// CHECK: define{{.*}} void @f2(ptr noundef readonly captures(none) %fptr) {{[^#]*}}#0 {
34+
// CHECK: define{{.*}} void @f2(ptr nocapture noundef readonly %fptr) {{[^#]*}}#0 {
3535
// CHECK: call void %fptr() #2
3636
// CHECK: define{{.*}} void @f3() {{[^#]*}}#1 {
3737
// CHECK: define{{.*}} void @f4() {{[^#]*}}#1 {

clang/test/CodeGen/arm-vfp16-arguments.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,6 @@ void test_hfa(hfa_t a) {}
7171

7272
hfa_t ghfa;
7373
hfa_t test_ret_hfa(void) { return ghfa; }
74-
// CHECK-SOFT: define{{.*}} void @test_ret_hfa(ptr dead_on_unwind noalias writable writeonly sret(%struct.hfa_t) align 8 captures(none) initializes((0, 16)) %agg.result)
74+
// CHECK-SOFT: define{{.*}} void @test_ret_hfa(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.hfa_t) align 8 initializes((0, 16)) %agg.result)
7575
// CHECK-HARD: define{{.*}} arm_aapcs_vfpcc [2 x <2 x i32>] @test_ret_hfa()
7676
// CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.hfa_t @test_ret_hfa()

clang/test/CodeGen/arm-vfp16-arguments2.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -37,27 +37,27 @@ struct S5 : B1 {
3737
B1 M[1];
3838
};
3939

40-
// CHECK-SOFT: define{{.*}} void @_Z2f12S1(ptr dead_on_unwind noalias writable writeonly sret(%struct.S1) align 8 captures(none) initializes((0, 16)) %agg.result, [2 x i64] %s1.coerce)
40+
// CHECK-SOFT: define{{.*}} void @_Z2f12S1(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S1) align 8 initializes((0, 16)) %agg.result, [2 x i64] %s1.coerce)
4141
// CHECK-HARD: define{{.*}} arm_aapcs_vfpcc [2 x <2 x i32>] @_Z2f12S1([2 x <2 x i32>] returned %s1.coerce)
4242
// CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.S1 @_Z2f12S1(%struct.S1 returned %s1.coerce)
4343
struct S1 f1(struct S1 s1) { return s1; }
4444

45-
// CHECK-SOFT: define{{.*}} void @_Z2f22S2(ptr dead_on_unwind noalias writable writeonly sret(%struct.S2) align 8 captures(none) initializes((0, 16)) %agg.result, [4 x i32] %s2.coerce)
45+
// CHECK-SOFT: define{{.*}} void @_Z2f22S2(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S2) align 8 initializes((0, 16)) %agg.result, [4 x i32] %s2.coerce)
4646
// CHECK-HARD: define{{.*}} arm_aapcs_vfpcc [2 x <2 x i32>] @_Z2f22S2([2 x <2 x i32>] returned %s2.coerce)
4747
// CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.S2 @_Z2f22S2(%struct.S2 %s2.coerce)
4848
struct S2 f2(struct S2 s2) { return s2; }
4949

50-
// CHECK-SOFT: define{{.*}} void @_Z2f32S3(ptr dead_on_unwind noalias writable writeonly sret(%struct.S3) align 8 captures(none) initializes((0, 16)) %agg.result, [2 x i64] %s3.coerce)
50+
// CHECK-SOFT: define{{.*}} void @_Z2f32S3(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S3) align 8 initializes((0, 16)) %agg.result, [2 x i64] %s3.coerce)
5151
// CHECK-HARD: define{{.*}} arm_aapcs_vfpcc [2 x <2 x i32>] @_Z2f32S3([2 x <2 x i32>] returned %s3.coerce)
5252
// CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.S3 @_Z2f32S3(%struct.S3 %s3.coerce)
5353
struct S3 f3(struct S3 s3) { return s3; }
5454

55-
// CHECK-SOFT: define{{.*}} void @_Z2f42S4(ptr dead_on_unwind noalias writable writeonly sret(%struct.S4) align 8 captures(none) initializes((0, 16)) %agg.result, [2 x i64] %s4.coerce)
55+
// CHECK-SOFT: define{{.*}} void @_Z2f42S4(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S4) align 8 initializes((0, 16)) %agg.result, [2 x i64] %s4.coerce)
5656
// CHECK-HARD: define{{.*}} arm_aapcs_vfpcc [2 x <2 x i32>] @_Z2f42S4([2 x <2 x i32>] returned %s4.coerce)
5757
// CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.S4 @_Z2f42S4(%struct.S4 %s4.coerce)
5858
struct S4 f4(struct S4 s4) { return s4; }
5959

60-
// CHECK-SOFT: define{{.*}} void @_Z2f52S5(ptr dead_on_unwind noalias writable writeonly sret(%struct.S5) align 8 captures(none) initializes((0, 16)) %agg.result, [2 x i64] %s5.coerce)
60+
// CHECK-SOFT: define{{.*}} void @_Z2f52S5(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S5) align 8 initializes((0, 16)) %agg.result, [2 x i64] %s5.coerce)
6161
// CHECK-HARD: define{{.*}} arm_aapcs_vfpcc %struct.S5 @_Z2f52S5(%struct.S5 %s5.coerce)
6262
// CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.S5 @_Z2f52S5(%struct.S5 %s5.coerce)
6363
struct S5 f5(struct S5 s5) { return s5; }

clang/test/CodeGen/attr-counted-by-pr110385.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ struct bucket2 {
2626
void init(void * __attribute__((pass_dynamic_object_size(0))));
2727

2828
// CHECK-LABEL: define dso_local void @test1(
29-
// CHECK-SAME: ptr noundef readonly captures(none) [[FOO:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
29+
// CHECK-SAME: ptr nocapture noundef readonly [[FOO:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
3030
// CHECK-NEXT: entry:
3131
// CHECK-NEXT: [[GROWABLE:%.*]] = getelementptr inbounds nuw i8, ptr [[FOO]], i64 8
3232
// CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[GROWABLE]], align 8, !tbaa [[TBAA2:![0-9]+]]

0 commit comments

Comments
 (0)