new testcase to verify that we have field sensitive alias analysis info. This
authorChris Lattner <sabre@nondot.org>
Wed, 23 Mar 2005 01:46:59 +0000 (01:46 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 23 Mar 2005 01:46:59 +0000 (01:46 +0000)
test cannot be satisfied without interprocedural information.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20778 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/DSGraph/field-sensitive.ll [new file with mode: 0644]

diff --git a/test/Analysis/DSGraph/field-sensitive.ll b/test/Analysis/DSGraph/field-sensitive.ll
new file mode 100644 (file)
index 0000000..dc3fc22
--- /dev/null
@@ -0,0 +1,21 @@
+; Test that ds-aa can be used for queries that require field sensitive AA.
+; RUN: llvm-as < %s | opt -no-aa -ds-aa -load-vn -gcse | llvm-dis | not grep load
+
+%Pair = type { int, int }
+
+implementation
+
+%Pair* %id(%Pair* %P) { ret %Pair *%P }
+
+int %foo() {
+       %X = alloca %Pair
+       %XP = call %Pair* %id(%Pair* %X)
+
+       %F1 = getelementptr %Pair* %X, int 0, uint 0
+       %F2 = getelementptr %Pair* %XP, int 0, uint 1
+       store int 14, int* %F1
+       store int 0, int* %F2     ; no alias F1
+       %B = load int* %F1        ; Should eliminate load!
+       ret int %B
+}
+