From 1ab143408b07c3834c89230cadabad59dfae10cc Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 23 Mar 2005 01:46:59 +0000 Subject: [PATCH] new testcase to verify that we have field sensitive alias analysis info. This test cannot be satisfied without interprocedural information. llvm-svn: 20778 --- .../Analysis/DSGraph/field-sensitive.ll | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/Regression/Analysis/DSGraph/field-sensitive.ll diff --git a/test/Regression/Analysis/DSGraph/field-sensitive.ll b/test/Regression/Analysis/DSGraph/field-sensitive.ll new file mode 100644 index 00000000000..dc3fc22dfb8 --- /dev/null +++ b/test/Regression/Analysis/DSGraph/field-sensitive.ll @@ -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 +} +