Skip to content

Commit f8ff51e

Browse files
committed
[Inliner] Add tests for not propagating writable if readonly is present; NFC
1 parent 70b79a9 commit f8ff51e

File tree

1 file changed

+44
-1
lines changed

1 file changed

+44
-1
lines changed

llvm/test/Transforms/Inline/access-attributes-prop.ll

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
declare void @bar1(ptr %p)
77
declare void @bar2(ptr %p, ptr %p2)
8-
8+
declare void @bar3(ptr writable %p)
99
define dso_local void @foo1_rdonly(ptr readonly %p) {
1010
; CHECK-LABEL: define {{[^@]+}}@foo1_rdonly
1111
; CHECK-SAME: (ptr readonly [[P:%.*]]) {
@@ -26,6 +26,27 @@ define dso_local void @foo1(ptr %p) {
2626
ret void
2727
}
2828

29+
define dso_local void @foo1_writable(ptr %p) {
30+
; CHECK-LABEL: define {{[^@]+}}@foo1_writable
31+
; CHECK-SAME: (ptr [[P:%.*]]) {
32+
; CHECK-NEXT: call void @bar1(ptr writable [[P]])
33+
; CHECK-NEXT: ret void
34+
;
35+
call void @bar1(ptr writable %p)
36+
ret void
37+
}
38+
39+
define dso_local void @foo3_writable(ptr %p) {
40+
; CHECK-LABEL: define {{[^@]+}}@foo3_writable
41+
; CHECK-SAME: (ptr [[P:%.*]]) {
42+
; CHECK-NEXT: call void @bar3(ptr [[P]])
43+
; CHECK-NEXT: ret void
44+
;
45+
call void @bar3(ptr %p)
46+
ret void
47+
}
48+
49+
2950
define dso_local void @foo1_bar_aligned64_deref512(ptr %p) {
3051
; CHECK-LABEL: define {{[^@]+}}@foo1_bar_aligned64_deref512
3152
; CHECK-SAME: (ptr [[P:%.*]]) {
@@ -496,3 +517,25 @@ define void @prop_cb_def_mustprogress(ptr %p) {
496517
call void @foo1(ptr %p) mustprogress
497518
ret void
498519
}
520+
521+
define void @prop_no_conflict_writable(ptr %p) {
522+
; CHECK-LABEL: define {{[^@]+}}@prop_no_conflict_writable
523+
; CHECK-SAME: (ptr [[P:%.*]]) {
524+
; CHECK-NEXT: call void @bar1(ptr writable [[P]])
525+
; CHECK-NEXT: ret void
526+
;
527+
call void @foo1_writable(ptr readonly %p)
528+
ret void
529+
}
530+
531+
532+
define void @prop_no_conflict_writable2(ptr %p) {
533+
; CHECK-LABEL: define {{[^@]+}}@prop_no_conflict_writable2
534+
; CHECK-SAME: (ptr [[P:%.*]]) {
535+
; CHECK-NEXT: call void @bar3(ptr [[P]])
536+
; CHECK-NEXT: ret void
537+
;
538+
call void @foo3_writable(ptr readnone %p)
539+
ret void
540+
}
541+

0 commit comments

Comments
 (0)