summaryrefslogtreecommitdiff
path: root/test/Analysis/CFLAliasAnalysis/Andersen/basic-interproc.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Analysis/CFLAliasAnalysis/Andersen/basic-interproc.ll')
-rw-r--r--test/Analysis/CFLAliasAnalysis/Andersen/basic-interproc.ll22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/Analysis/CFLAliasAnalysis/Andersen/basic-interproc.ll b/test/Analysis/CFLAliasAnalysis/Andersen/basic-interproc.ll
new file mode 100644
index 000000000000..9ec52521a046
--- /dev/null
+++ b/test/Analysis/CFLAliasAnalysis/Andersen/basic-interproc.ll
@@ -0,0 +1,22 @@
+; This testcase ensures that CFL AA won't be too conservative when trying to do
+; interprocedural analysis on simple callee
+
+; RUN: opt < %s -disable-basicaa -cfl-anders-aa -aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s
+; RUN: opt < %s -aa-pipeline=cfl-anders-aa -passes=aa-eval -print-all-alias-modref-info -disable-output 2>&1 | FileCheck %s
+
+; CHECK-LABEL: Function: noop_callee
+; CHECK: MayAlias: i32* %arg1, i32* %arg2
+define void @noop_callee(i32* %arg1, i32* %arg2) {
+ store i32 0, i32* %arg1
+ store i32 0, i32* %arg2
+ ret void
+}
+; CHECK-LABEL: Function: test_noop
+; CHECK: NoAlias: i32* %a, i32* %b
+define void @test_noop() {
+ %a = alloca i32, align 4
+ %b = alloca i32, align 4
+ call void @noop_callee(i32* %a, i32* %b)
+
+ ret void
+}