Remove alloca tracking from nocapture analysis. Not only
[oota-llvm.git] / test / Transforms / FunctionAttrs / 2009-01-02-LocalStores.ll
index 17b443980b7a833b6c6a58b0b3db3eaa011f309a..68a232f5ff3b0b3cde81980789bd6b22a47d7148 100644 (file)
@@ -1,23 +1,14 @@
 ; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | not grep {nocapture *%%q}
 ; RUN: llvm-as < %s | opt -functionattrs | llvm-dis | grep {nocapture *%%p}
 
-@g = external global i32**
-
-define i32 @f(i32* %p, i32* %q) {
-       %a1 = alloca i32*
-       %a2 = alloca i32**
-       store i32* %p, i32** %a1
-       store i32** %a1, i32*** %a2
-       %reload1 = load i32*** %a2
-       %reload2 = load i32** %reload1
-       %load_p = load i32* %reload2
-       store i32 0, i32* %reload2
+define i32* @a(i32** %p) {
+       %tmp = load i32** %p
+       ret i32* %tmp
+}
 
-       %b1 = alloca i32*
-       %b2 = alloca i32**
-       store i32* %q, i32** %b1
-       store i32** %b1, i32*** %b2
-       %reload3 = load i32*** %b2
-       store i32** %reload3, i32*** @g
-       ret i32 %load_p
+define i32* @b(i32 *%q) {
+       %mem = alloca i32*
+       store i32* %q, i32** %mem
+       %tmp = call i32* @a(i32** %mem)
+       ret i32* %tmp
 }