summaryrefslogtreecommitdiff
path: root/test/Analysis/CFLAliasAnalysis/Andersen/basic-interproc.ll
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-01-02 19:17:04 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-01-02 19:17:04 +0000
commitb915e9e0fc85ba6f398b3fab0db6a81a8913af94 (patch)
tree98b8f811c7aff2547cab8642daf372d6c59502fb /test/Analysis/CFLAliasAnalysis/Andersen/basic-interproc.ll
parent6421cca32f69ac849537a3cff78c352195e99f1b (diff)
Notes
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
+}