Skip to content

Commit 6425e33

Browse files
committed
Updated the tests with and without datalayout string
1 parent 4351f10 commit 6425e33

16 files changed

+1461
-8552
lines changed

llvm/lib/Analysis/ValueTracking.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3099,12 +3099,10 @@ bool isKnownNonZero(const Value *V, const APInt &DemandedElts,
30993099

31003100
if (PointerType *PtrTy = dyn_cast<PointerType>(Ty)) {
31013101
const DataLayout &DL = Q.DL;
3102-
if (DL.isSentinelValueDefined() && PtrTy) {
3102+
if (DL.isSentinelValueDefined()) {
31033103
unsigned AddrSpace = PtrTy->getPointerAddressSpace();
31043104

3105-
if (DL.getSentinelPointerValue(AddrSpace) == 0)
3106-
return false;
3107-
return true;
3105+
return (DL.getSentinelPointerValue(AddrSpace) != 0);
31083106
}
31093107

31103108
// A byval, inalloca may not be null in a non-default addres space. A

llvm/test/Transforms/Attributor/ArgumentPromotion/array-dl-sentinel.ll

Lines changed: 0 additions & 56 deletions
This file was deleted.

llvm/test/Transforms/Attributor/IPConstantProp/pthreads-dl-sentinel.ll

Lines changed: 56 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-attributes --check-globals
2-
; RUN: opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefixes=CHECK,TUNIT
32
; RUN: opt -aa-pipeline=basic-aa -passes=attributor-cgscc -attributor-manifest-internal -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefixes=CHECK,CGSCC
3+
; RUN: opt -aa-pipeline=basic-aa -passes=attributor-cgscc -attributor-manifest-internal -attributor-annotate-decl-cs -data-layout=z0:1-z2:neg1-z3:neg1-z5:neg1 -S < %s | FileCheck %s --check-prefixes=CHECK-DL,CGSCC-DL
44
;
55
; #include <pthread.h>
66
;
@@ -19,7 +19,6 @@
1919
; Verify the constant values NULL and &GlobalVPtr are propagated into foo and
2020
; bar, respectively.
2121
;
22-
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-z0:1-z2:neg1-z3:neg1-z5:neg1-S128"
2322

2423
%union.pthread_attr_t = type { i64, [48 x i8] }
2524

@@ -31,24 +30,26 @@ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-z0:1-z2:neg1-z3:neg1-z5:ne
3130
;.
3231
; CHECK: @GlobalVPtr = common dso_local global ptr null, align 8
3332
;.
33+
; CHECK-DL: @GlobalVPtr = common dso_local global ptr null, align 8
34+
;.
3435
define dso_local i32 @main() {
35-
; TUNIT-LABEL: define {{[^@]+}}@main() {
36-
; TUNIT-NEXT: entry:
37-
; TUNIT-NEXT: [[ALLOC11:%.*]] = alloca i8, i32 0, align 8
38-
; TUNIT-NEXT: [[ALLOC22:%.*]] = alloca i8, i32 0, align 8
39-
; TUNIT-NEXT: [[THREAD:%.*]] = alloca i64, align 8
40-
; TUNIT-NEXT: [[CALL:%.*]] = call i32 @pthread_create(ptr noundef nonnull align 8 dereferenceable(8) [[THREAD]], ptr noundef align 4294967296 null, ptr noundef nonnull @foo, ptr nofree readnone align 4294967296 undef)
41-
; TUNIT-NEXT: [[CALL1:%.*]] = call i32 @pthread_create(ptr noundef nonnull align 8 dereferenceable(8) [[THREAD]], ptr noundef align 4294967296 null, ptr noundef nonnull @bar, ptr noalias nocapture nofree nonnull readnone align 8 dereferenceable(8) undef)
42-
; TUNIT-NEXT: [[CALL2:%.*]] = call i32 @pthread_create(ptr noundef nonnull align 8 dereferenceable(8) [[THREAD]], ptr noundef align 4294967296 null, ptr noundef nonnull @baz, ptr noalias nocapture nofree noundef nonnull readnone align 8 dereferenceable(1) [[ALLOC11]])
43-
; TUNIT-NEXT: [[CALL3:%.*]] = call i32 @pthread_create(ptr noundef nonnull align 8 dereferenceable(8) [[THREAD]], ptr noundef align 4294967296 null, ptr noundef nonnull @buz, ptr noalias nofree noundef nonnull readnone align 8 dereferenceable(1) "no-capture-maybe-returned" [[ALLOC22]])
44-
; TUNIT-NEXT: ret i32 0
45-
;
46-
; CGSCC-LABEL: define {{[^@]+}}@main() {
47-
; CGSCC-NEXT: entry:
48-
; CGSCC-NEXT: [[ALLOC1:%.*]] = alloca i8, align 8
49-
; CGSCC-NEXT: [[ALLOC2:%.*]] = alloca i8, align 8
50-
; CGSCC-NEXT: [[THREAD:%.*]] = alloca i64, align 8
51-
; CGSCC-NEXT: unreachable
36+
; CHECK-LABEL: define {{[^@]+}}@main() {
37+
; CHECK-NEXT: entry:
38+
; CHECK-NEXT: [[ALLOC1:%.*]] = alloca i8, align 8
39+
; CHECK-NEXT: [[ALLOC2:%.*]] = alloca i8, align 8
40+
; CHECK-NEXT: [[THREAD:%.*]] = alloca i64, align 8
41+
; CHECK-NEXT: [[CALL:%.*]] = call i32 @pthread_create(ptr noundef nonnull align 8 dereferenceable(8) [[THREAD]], ptr noundef align 4294967296 null, ptr noundef nonnull @foo, ptr nofree noundef readnone align 4294967296 null)
42+
; CHECK-NEXT: [[CALL1:%.*]] = call i32 @pthread_create(ptr noundef nonnull align 8 dereferenceable(8) [[THREAD]], ptr noundef align 4294967296 null, ptr noundef nonnull @bar, ptr noalias nocapture nofree noundef nonnull readnone align 8 dereferenceable(8) @GlobalVPtr)
43+
; CHECK-NEXT: [[CALL2:%.*]] = call i32 @pthread_create(ptr noundef nonnull align 8 dereferenceable(8) [[THREAD]], ptr noundef align 4294967296 null, ptr noundef nonnull @baz, ptr noalias nocapture nofree noundef nonnull readnone align 8 dereferenceable(1) [[ALLOC1]])
44+
; CHECK-NEXT: [[CALL3:%.*]] = call i32 @pthread_create(ptr noundef nonnull align 8 dereferenceable(8) [[THREAD]], ptr noundef align 4294967296 null, ptr noundef nonnull @buz, ptr noalias nofree noundef nonnull readnone align 8 dereferenceable(1) [[ALLOC2]])
45+
; CHECK-NEXT: ret i32 0
46+
;
47+
; CHECK-DL-LABEL: define {{[^@]+}}@main() {
48+
; CHECK-DL-NEXT: entry:
49+
; CHECK-DL-NEXT: [[ALLOC1:%.*]] = alloca i8, align 8
50+
; CHECK-DL-NEXT: [[ALLOC2:%.*]] = alloca i8, align 8
51+
; CHECK-DL-NEXT: [[THREAD:%.*]] = alloca i64, align 8
52+
; CHECK-DL-NEXT: unreachable
5253
;
5354
entry:
5455
%alloc1 = alloca i8, align 8
@@ -66,21 +67,34 @@ declare !callback !0 dso_local i32 @pthread_create(ptr, ptr, ptr, ptr)
6667
define internal ptr @foo(ptr %arg) {
6768
; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
6869
; CHECK-LABEL: define {{[^@]+}}@foo
69-
; CHECK-SAME: (ptr noalias nocapture nofree nonnull readnone align 4294967296 [[ARG:%.*]]) #[[ATTR0:[0-9]+]] {
70+
; CHECK-SAME: (ptr noalias nocapture nofree readnone align 4294967296 [[ARG:%.*]]) #[[ATTR0:[0-9]+]] {
7071
; CHECK-NEXT: entry:
71-
; CHECK-NEXT: unreachable
72+
; CHECK-NEXT: ret ptr null
73+
;
74+
; CHECK-DL: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
75+
; CHECK-DL-LABEL: define {{[^@]+}}@foo
76+
; CHECK-DL-SAME: (ptr noalias nocapture nofree nonnull readnone align 4294967296 [[ARG:%.*]]) #[[ATTR0:[0-9]+]] {
77+
; CHECK-DL-NEXT: entry:
78+
; CHECK-DL-NEXT: unreachable
7279
;
7380
entry:
7481
ret ptr %arg
7582
}
7683

84+
7785
define internal ptr @bar(ptr %arg) {
7886
; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
7987
; CHECK-LABEL: define {{[^@]+}}@bar
8088
; CHECK-SAME: (ptr noalias nocapture nofree nonnull readnone align 8 dereferenceable(8) [[ARG:%.*]]) #[[ATTR0]] {
8189
; CHECK-NEXT: entry:
8290
; CHECK-NEXT: ret ptr @GlobalVPtr
8391
;
92+
; CHECK-DL: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
93+
; CHECK-DL-LABEL: define {{[^@]+}}@bar
94+
; CHECK-DL-SAME: (ptr noalias nocapture nofree nonnull readnone align 8 dereferenceable(8) [[ARG:%.*]]) #[[ATTR0]] {
95+
; CHECK-DL-NEXT: entry:
96+
; CHECK-DL-NEXT: ret ptr @GlobalVPtr
97+
;
8498
entry:
8599
ret ptr %arg
86100
}
@@ -92,6 +106,12 @@ define internal ptr @baz(ptr %arg) {
92106
; CHECK-NEXT: entry:
93107
; CHECK-NEXT: ret ptr [[ARG]]
94108
;
109+
; CHECK-DL: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
110+
; CHECK-DL-LABEL: define {{[^@]+}}@baz
111+
; CHECK-DL-SAME: (ptr noalias nofree noundef nonnull readnone returned align 8 dereferenceable(1) "no-capture-maybe-returned" [[ARG:%.*]]) #[[ATTR0]] {
112+
; CHECK-DL-NEXT: entry:
113+
; CHECK-DL-NEXT: ret ptr [[ARG]]
114+
;
95115
entry:
96116
ret ptr %arg
97117
}
@@ -103,20 +123,29 @@ define internal ptr @buz(ptr %arg) {
103123
; CHECK-NEXT: entry:
104124
; CHECK-NEXT: ret ptr [[ARG]]
105125
;
126+
; CHECK-DL: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
127+
; CHECK-DL-LABEL: define {{[^@]+}}@buz
128+
; CHECK-DL-SAME: (ptr noalias nofree noundef nonnull readnone returned align 8 dereferenceable(1) "no-capture-maybe-returned" [[ARG:%.*]]) #[[ATTR0]] {
129+
; CHECK-DL-NEXT: entry:
130+
; CHECK-DL-NEXT: ret ptr [[ARG]]
131+
;
106132
entry:
107133
ret ptr %arg
108134
}
109135

110136
!1 = !{i64 2, i64 3, i1 false}
111137
!0 = !{!1}
112138
;.
113-
; TUNIT: attributes #[[ATTR0]] = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) }
139+
; CHECK: attributes #[[ATTR0]] = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) }
114140
;.
115-
; CGSCC: attributes #[[ATTR0]] = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) }
141+
; CHECK-DL: attributes #[[ATTR0]] = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) }
116142
;.
117-
; TUNIT: [[META0:![0-9]+]] = !{[[META1:![0-9]+]]}
118-
; TUNIT: [[META1]] = !{i64 2, i64 3, i1 false}
143+
; CHECK: [[META0:![0-9]+]] = !{[[META1:![0-9]+]]}
144+
; CHECK: [[META1]] = !{i64 2, i64 3, i1 false}
119145
;.
120-
; CGSCC: [[META0:![0-9]+]] = !{[[META1:![0-9]+]]}
121-
; CGSCC: [[META1]] = !{i64 2, i64 3, i1 false}
146+
; CHECK-DL: [[META0:![0-9]+]] = !{[[META1:![0-9]+]]}
147+
; CHECK-DL: [[META1]] = !{i64 2, i64 3, i1 false}
122148
;.
149+
;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
150+
; CGSCC: {{.*}}
151+
; CGSCC-DL: {{.*}}

0 commit comments

Comments
 (0)