[llvm] f8ff51e - [Inliner] Add tests for not propagating `writable` if `readonly` is present; NFC
Noah Goldstein via llvm-commits
llvm-commits at lists.llvm.org
Fri May 3 12:10:40 PDT 2024
Author: Noah Goldstein
Date: 2024-05-03T14:10:24-05:00
New Revision: f8ff51e1b08643b23f90e1a39c3fb55a23d2dc84
URL: https://github.com/llvm/llvm-project/commit/f8ff51e1b08643b23f90e1a39c3fb55a23d2dc84
DIFF: https://github.com/llvm/llvm-project/commit/f8ff51e1b08643b23f90e1a39c3fb55a23d2dc84.diff
LOG: [Inliner] Add tests for not propagating `writable` if `readonly` is present; NFC
Added:
Modified:
llvm/test/Transforms/Inline/access-attributes-prop.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/Inline/access-attributes-prop.ll b/llvm/test/Transforms/Inline/access-attributes-prop.ll
index 3b4a59897c5694..c242472f083df9 100644
--- a/llvm/test/Transforms/Inline/access-attributes-prop.ll
+++ b/llvm/test/Transforms/Inline/access-attributes-prop.ll
@@ -5,7 +5,7 @@
declare void @bar1(ptr %p)
declare void @bar2(ptr %p, ptr %p2)
-
+declare void @bar3(ptr writable %p)
define dso_local void @foo1_rdonly(ptr readonly %p) {
; CHECK-LABEL: define {{[^@]+}}@foo1_rdonly
; CHECK-SAME: (ptr readonly [[P:%.*]]) {
@@ -26,6 +26,27 @@ define dso_local void @foo1(ptr %p) {
ret void
}
+define dso_local void @foo1_writable(ptr %p) {
+; CHECK-LABEL: define {{[^@]+}}@foo1_writable
+; CHECK-SAME: (ptr [[P:%.*]]) {
+; CHECK-NEXT: call void @bar1(ptr writable [[P]])
+; CHECK-NEXT: ret void
+;
+ call void @bar1(ptr writable %p)
+ ret void
+}
+
+define dso_local void @foo3_writable(ptr %p) {
+; CHECK-LABEL: define {{[^@]+}}@foo3_writable
+; CHECK-SAME: (ptr [[P:%.*]]) {
+; CHECK-NEXT: call void @bar3(ptr [[P]])
+; CHECK-NEXT: ret void
+;
+ call void @bar3(ptr %p)
+ ret void
+}
+
+
define dso_local void @foo1_bar_aligned64_deref512(ptr %p) {
; CHECK-LABEL: define {{[^@]+}}@foo1_bar_aligned64_deref512
; CHECK-SAME: (ptr [[P:%.*]]) {
@@ -496,3 +517,25 @@ define void @prop_cb_def_mustprogress(ptr %p) {
call void @foo1(ptr %p) mustprogress
ret void
}
+
+define void @prop_no_conflict_writable(ptr %p) {
+; CHECK-LABEL: define {{[^@]+}}@prop_no_conflict_writable
+; CHECK-SAME: (ptr [[P:%.*]]) {
+; CHECK-NEXT: call void @bar1(ptr writable [[P]])
+; CHECK-NEXT: ret void
+;
+ call void @foo1_writable(ptr readonly %p)
+ ret void
+}
+
+
+define void @prop_no_conflict_writable2(ptr %p) {
+; CHECK-LABEL: define {{[^@]+}}@prop_no_conflict_writable2
+; CHECK-SAME: (ptr [[P:%.*]]) {
+; CHECK-NEXT: call void @bar3(ptr [[P]])
+; CHECK-NEXT: ret void
+;
+ call void @foo3_writable(ptr readnone %p)
+ ret void
+}
+
More information about the llvm-commits
mailing list