From 6f9fad55b06f2ed42b16cc1024205336c19b6128 Mon Sep 17 00:00:00 2001 From: Christopher Lamb Date: Thu, 2 Aug 2007 01:18:14 +0000 Subject: Teach BasicAA about noalias parameter attributes, but do it correctly this time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40711 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Analysis/BasicAA/2007-08-01-NoAliasAndCalls.ll | 10 ++++++++++ test/Analysis/BasicAA/2007-08-01-NoAliasAndGEP.ll | 17 +++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 test/Analysis/BasicAA/2007-08-01-NoAliasAndCalls.ll create mode 100644 test/Analysis/BasicAA/2007-08-01-NoAliasAndGEP.ll (limited to 'test') diff --git a/test/Analysis/BasicAA/2007-08-01-NoAliasAndCalls.ll b/test/Analysis/BasicAA/2007-08-01-NoAliasAndCalls.ll new file mode 100644 index 0000000..072bfd9 --- /dev/null +++ b/test/Analysis/BasicAA/2007-08-01-NoAliasAndCalls.ll @@ -0,0 +1,10 @@ +; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output &| grep 'MayAlias: i32* %y, i32* %x' + +declare i32* @unclear(i32* %a) + +define void @foo(i32* noalias %x) { + %y = call i32* @unclear(i32* %x) + store i32 0, i32* %x + store i32 0, i32* %y + ret void +} diff --git a/test/Analysis/BasicAA/2007-08-01-NoAliasAndGEP.ll b/test/Analysis/BasicAA/2007-08-01-NoAliasAndGEP.ll new file mode 100644 index 0000000..8cc9f06 --- /dev/null +++ b/test/Analysis/BasicAA/2007-08-01-NoAliasAndGEP.ll @@ -0,0 +1,17 @@ +; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output &| grep '9 no alias' +; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output &| grep '6 may alias' +; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output &| grep 'MayAlias: i32* %pj, i32* %pi' + +define void @foo(i32* noalias %p, i32* noalias %q, i32 %i, i32 %j) { + %pi = getelementptr i32* %p, i32 %i + %qi = getelementptr i32* %q, i32 %i + %pj = getelementptr i32* %p, i32 %j + %qj = getelementptr i32* %q, i32 %j + store i32 0, i32* %p + store i32 0, i32* %pi + store i32 0, i32* %pj + store i32 0, i32* %q + store i32 0, i32* %qi + store i32 0, i32* %qj + ret void +} -- cgit v1.1