From: Chris Lattner Date: Sat, 19 Apr 2008 22:32:52 +0000 (+0000) Subject: rename *.llx -> *.ll, last batch. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=5ae21fb23a55427738132a39c8df550c9c1d0771;p=oota-llvm.git rename *.llx -> *.ll, last batch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49971 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Analysis/BasicAA/2004-01-29-InvariantMemory.ll b/test/Analysis/BasicAA/2004-01-29-InvariantMemory.ll new file mode 100644 index 00000000000..692c6f8693a --- /dev/null +++ b/test/Analysis/BasicAA/2004-01-29-InvariantMemory.ll @@ -0,0 +1,13 @@ +; RUN: llvm-as < %s | opt -load-vn -gcse -instcombine | \ +; RUN: llvm-dis | not grep load + +@X = constant [2 x i32] [i32 4, i32 5] + +define i32 @test(i32* %Y, i64 %idx) { + %P = getelementptr [2 x i32]* @X, i64 0, i64 %idx + %A = load i32* %P ; Load from invariant memory + store i32 4, i32* %Y ; Store could not be to @X + %B = load i32* %P + %C = sub i32 %A, %B + ret i32 %C +} diff --git a/test/Analysis/BasicAA/2004-01-29-InvariantMemory.llx b/test/Analysis/BasicAA/2004-01-29-InvariantMemory.llx deleted file mode 100644 index 692c6f8693a..00000000000 --- a/test/Analysis/BasicAA/2004-01-29-InvariantMemory.llx +++ /dev/null @@ -1,13 +0,0 @@ -; RUN: llvm-as < %s | opt -load-vn -gcse -instcombine | \ -; RUN: llvm-dis | not grep load - -@X = constant [2 x i32] [i32 4, i32 5] - -define i32 @test(i32* %Y, i64 %idx) { - %P = getelementptr [2 x i32]* @X, i64 0, i64 %idx - %A = load i32* %P ; Load from invariant memory - store i32 4, i32* %Y ; Store could not be to @X - %B = load i32* %P - %C = sub i32 %A, %B - ret i32 %C -} diff --git a/test/Analysis/BasicAA/2004-07-28-MustAliasbug.ll b/test/Analysis/BasicAA/2004-07-28-MustAliasbug.ll new file mode 100644 index 00000000000..407932c9d6c --- /dev/null +++ b/test/Analysis/BasicAA/2004-07-28-MustAliasbug.ll @@ -0,0 +1,10 @@ +; RUN: llvm-as < %s | opt -dse | llvm-dis | grep {store i32 0} + +define void @test({i32,i32 }* %P) { + %Q = getelementptr {i32,i32}* %P, i32 1 + %X = getelementptr {i32,i32}* %Q, i32 0, i32 1 + %Y = getelementptr {i32,i32}* %Q, i32 1, i32 1 + store i32 0, i32* %X + store i32 1, i32* %Y + ret void +} diff --git a/test/Analysis/BasicAA/2004-07-28-MustAliasbug.llx b/test/Analysis/BasicAA/2004-07-28-MustAliasbug.llx deleted file mode 100644 index 407932c9d6c..00000000000 --- a/test/Analysis/BasicAA/2004-07-28-MustAliasbug.llx +++ /dev/null @@ -1,10 +0,0 @@ -; RUN: llvm-as < %s | opt -dse | llvm-dis | grep {store i32 0} - -define void @test({i32,i32 }* %P) { - %Q = getelementptr {i32,i32}* %P, i32 1 - %X = getelementptr {i32,i32}* %Q, i32 0, i32 1 - %Y = getelementptr {i32,i32}* %Q, i32 1, i32 1 - store i32 0, i32* %X - store i32 1, i32* %Y - ret void -} diff --git a/test/ExecutionEngine/2003-05-06-LivenessClobber.ll b/test/ExecutionEngine/2003-05-06-LivenessClobber.ll new file mode 100644 index 00000000000..57fe95b2d91 --- /dev/null +++ b/test/ExecutionEngine/2003-05-06-LivenessClobber.ll @@ -0,0 +1,19 @@ +; This testcase shoudl return with an exit code of 1. +; +; RUN: llvm-as < %s | not lli + +@test = global i64 0 ; [#uses=1] + +define internal i64 @test.upgrd.1() { + %tmp.0 = load i64* @test ; [#uses=1] + %tmp.1 = add i64 %tmp.0, 1 ; [#uses=1] + ret i64 %tmp.1 +} + +define i32 @main() { + %L = call i64 @test.upgrd.1( ) ; [#uses=1] + %I = trunc i64 %L to i32 ; [#uses=1] + ret i32 %I +} + + diff --git a/test/ExecutionEngine/2003-05-06-LivenessClobber.llx b/test/ExecutionEngine/2003-05-06-LivenessClobber.llx deleted file mode 100644 index 57fe95b2d91..00000000000 --- a/test/ExecutionEngine/2003-05-06-LivenessClobber.llx +++ /dev/null @@ -1,19 +0,0 @@ -; This testcase shoudl return with an exit code of 1. -; -; RUN: llvm-as < %s | not lli - -@test = global i64 0 ; [#uses=1] - -define internal i64 @test.upgrd.1() { - %tmp.0 = load i64* @test ; [#uses=1] - %tmp.1 = add i64 %tmp.0, 1 ; [#uses=1] - ret i64 %tmp.1 -} - -define i32 @main() { - %L = call i64 @test.upgrd.1( ) ; [#uses=1] - %I = trunc i64 %L to i32 ; [#uses=1] - ret i32 %I -} - - diff --git a/test/ExecutionEngine/2003-05-07-ArgumentTest.ll b/test/ExecutionEngine/2003-05-07-ArgumentTest.ll new file mode 100644 index 00000000000..fa15d7110c3 --- /dev/null +++ b/test/ExecutionEngine/2003-05-07-ArgumentTest.ll @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | lli - test + +declare i32 @puts(i8*) + +define i32 @main(i32 %argc.1, i8** %argv.1) { + %tmp.5 = getelementptr i8** %argv.1, i64 1 ; [#uses=1] + %tmp.6 = load i8** %tmp.5 ; [#uses=1] + %tmp.0 = call i32 @puts( i8* %tmp.6 ) ; [#uses=0] + ret i32 0 +} + diff --git a/test/ExecutionEngine/2003-05-07-ArgumentTest.llx b/test/ExecutionEngine/2003-05-07-ArgumentTest.llx deleted file mode 100644 index fa15d7110c3..00000000000 --- a/test/ExecutionEngine/2003-05-07-ArgumentTest.llx +++ /dev/null @@ -1,11 +0,0 @@ -; RUN: llvm-as < %s | lli - test - -declare i32 @puts(i8*) - -define i32 @main(i32 %argc.1, i8** %argv.1) { - %tmp.5 = getelementptr i8** %argv.1, i64 1 ; [#uses=1] - %tmp.6 = load i8** %tmp.5 ; [#uses=1] - %tmp.0 = call i32 @puts( i8* %tmp.6 ) ; [#uses=0] - ret i32 0 -} - diff --git a/test/Transforms/ADCE/2003-12-19-MergeReturn.ll b/test/Transforms/ADCE/2003-12-19-MergeReturn.ll new file mode 100644 index 00000000000..b2c294b1df0 --- /dev/null +++ b/test/Transforms/ADCE/2003-12-19-MergeReturn.ll @@ -0,0 +1,27 @@ +; This testcase was failing because without merging the return blocks, ADCE +; didn't know that it could get rid of the then.0 block. + +; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep load + + +define void @main(i32 %argc, i8** %argv) { +entry: + call void @__main( ) + %tmp.1 = icmp ule i32 %argc, 5 ; [#uses=1] + br i1 %tmp.1, label %then.0, label %return + +then.0: ; preds = %entry + %tmp.8 = load i8** %argv ; [#uses=1] + %tmp.10 = load i8* %tmp.8 ; [#uses=1] + %tmp.11 = icmp eq i8 %tmp.10, 98 ; [#uses=1] + br i1 %tmp.11, label %then.1, label %return + +then.1: ; preds = %then.0 + ret void + +return: ; preds = %then.0, %entry + ret void +} + +declare void @__main() + diff --git a/test/Transforms/ADCE/2003-12-19-MergeReturn.llx b/test/Transforms/ADCE/2003-12-19-MergeReturn.llx deleted file mode 100644 index b2c294b1df0..00000000000 --- a/test/Transforms/ADCE/2003-12-19-MergeReturn.llx +++ /dev/null @@ -1,27 +0,0 @@ -; This testcase was failing because without merging the return blocks, ADCE -; didn't know that it could get rid of the then.0 block. - -; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep load - - -define void @main(i32 %argc, i8** %argv) { -entry: - call void @__main( ) - %tmp.1 = icmp ule i32 %argc, 5 ; [#uses=1] - br i1 %tmp.1, label %then.0, label %return - -then.0: ; preds = %entry - %tmp.8 = load i8** %argv ; [#uses=1] - %tmp.10 = load i8* %tmp.8 ; [#uses=1] - %tmp.11 = icmp eq i8 %tmp.10, 98 ; [#uses=1] - br i1 %tmp.11, label %then.1, label %return - -then.1: ; preds = %then.0 - ret void - -return: ; preds = %then.0, %entry - ret void -} - -declare void @__main() - diff --git a/test/Transforms/ADCE/2004-05-04-UnreachableBlock.ll b/test/Transforms/ADCE/2004-05-04-UnreachableBlock.ll new file mode 100644 index 00000000000..87a1550e9d4 --- /dev/null +++ b/test/Transforms/ADCE/2004-05-04-UnreachableBlock.ll @@ -0,0 +1,16 @@ +; RUN: llvm-as < %s | opt -adce -disable-output + +define void @test() { +entry: + br label %UnifiedReturnBlock + +UnifiedReturnBlock: ; preds = %invoke_catch.0, %entry + ret void + +invoke_catch.0: ; No predecessors! + br i1 false, label %UnifiedUnwindBlock, label %UnifiedReturnBlock + +UnifiedUnwindBlock: ; preds = %invoke_catch.0 + unwind +} + diff --git a/test/Transforms/ADCE/2004-05-04-UnreachableBlock.llx b/test/Transforms/ADCE/2004-05-04-UnreachableBlock.llx deleted file mode 100644 index 87a1550e9d4..00000000000 --- a/test/Transforms/ADCE/2004-05-04-UnreachableBlock.llx +++ /dev/null @@ -1,16 +0,0 @@ -; RUN: llvm-as < %s | opt -adce -disable-output - -define void @test() { -entry: - br label %UnifiedReturnBlock - -UnifiedReturnBlock: ; preds = %invoke_catch.0, %entry - ret void - -invoke_catch.0: ; No predecessors! - br i1 false, label %UnifiedUnwindBlock, label %UnifiedReturnBlock - -UnifiedUnwindBlock: ; preds = %invoke_catch.0 - unwind -} - diff --git a/test/Transforms/DeadStoreElimination/alloca.ll b/test/Transforms/DeadStoreElimination/alloca.ll new file mode 100644 index 00000000000..7a2c94ffca6 --- /dev/null +++ b/test/Transforms/DeadStoreElimination/alloca.ll @@ -0,0 +1,9 @@ +; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD + +define void @test(i32* %Q) { + %P = alloca i32 ; [#uses=1] + %DEAD = load i32* %Q ; [#uses=1] + store i32 %DEAD, i32* %P + ret void +} + diff --git a/test/Transforms/DeadStoreElimination/alloca.llx b/test/Transforms/DeadStoreElimination/alloca.llx deleted file mode 100644 index 7a2c94ffca6..00000000000 --- a/test/Transforms/DeadStoreElimination/alloca.llx +++ /dev/null @@ -1,9 +0,0 @@ -; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD - -define void @test(i32* %Q) { - %P = alloca i32 ; [#uses=1] - %DEAD = load i32* %Q ; [#uses=1] - store i32 %DEAD, i32* %P - ret void -} - diff --git a/test/Transforms/DeadStoreElimination/context-sensitive.ll b/test/Transforms/DeadStoreElimination/context-sensitive.ll new file mode 100644 index 00000000000..266fdbc647e --- /dev/null +++ b/test/Transforms/DeadStoreElimination/context-sensitive.ll @@ -0,0 +1,14 @@ +; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD + +declare void @ext() + +define i32* @caller() { + %P = malloc i32 ; [#uses=4] + %DEAD = load i32* %P ; [#uses=1] + %DEAD2 = add i32 %DEAD, 1 ; [#uses=1] + store i32 %DEAD2, i32* %P + call void @ext( ) + store i32 0, i32* %P + ret i32* %P +} + diff --git a/test/Transforms/DeadStoreElimination/context-sensitive.llx b/test/Transforms/DeadStoreElimination/context-sensitive.llx deleted file mode 100644 index 266fdbc647e..00000000000 --- a/test/Transforms/DeadStoreElimination/context-sensitive.llx +++ /dev/null @@ -1,14 +0,0 @@ -; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD - -declare void @ext() - -define i32* @caller() { - %P = malloc i32 ; [#uses=4] - %DEAD = load i32* %P ; [#uses=1] - %DEAD2 = add i32 %DEAD, 1 ; [#uses=1] - store i32 %DEAD2, i32* %P - call void @ext( ) - store i32 0, i32* %P - ret i32* %P -} - diff --git a/test/Transforms/DeadStoreElimination/free.ll b/test/Transforms/DeadStoreElimination/free.ll new file mode 100644 index 00000000000..e0611d310b8 --- /dev/null +++ b/test/Transforms/DeadStoreElimination/free.ll @@ -0,0 +1,8 @@ +; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD + +define void @test(i32* %Q, i32* %P) { + %DEAD = load i32* %Q ; [#uses=1] + store i32 %DEAD, i32* %P + free i32* %P + ret void +} diff --git a/test/Transforms/DeadStoreElimination/free.llx b/test/Transforms/DeadStoreElimination/free.llx deleted file mode 100644 index e0611d310b8..00000000000 --- a/test/Transforms/DeadStoreElimination/free.llx +++ /dev/null @@ -1,8 +0,0 @@ -; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD - -define void @test(i32* %Q, i32* %P) { - %DEAD = load i32* %Q ; [#uses=1] - store i32 %DEAD, i32* %P - free i32* %P - ret void -} diff --git a/test/Transforms/DeadStoreElimination/simple.ll b/test/Transforms/DeadStoreElimination/simple.ll new file mode 100644 index 00000000000..594671d0f0f --- /dev/null +++ b/test/Transforms/DeadStoreElimination/simple.ll @@ -0,0 +1,9 @@ +; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD + +define void @test(i32* %Q, i32* %P) { + %DEAD = load i32* %Q ; [#uses=1] + store i32 %DEAD, i32* %P + store i32 0, i32* %P + ret void +} + diff --git a/test/Transforms/DeadStoreElimination/simple.llx b/test/Transforms/DeadStoreElimination/simple.llx deleted file mode 100644 index 594671d0f0f..00000000000 --- a/test/Transforms/DeadStoreElimination/simple.llx +++ /dev/null @@ -1,9 +0,0 @@ -; RUN: llvm-as < %s | opt -dse | llvm-dis | not grep DEAD - -define void @test(i32* %Q, i32* %P) { - %DEAD = load i32* %Q ; [#uses=1] - store i32 %DEAD, i32* %P - store i32 0, i32* %P - ret void -} - diff --git a/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll b/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll new file mode 100644 index 00000000000..5f784e065fb --- /dev/null +++ b/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll @@ -0,0 +1,17 @@ +; RUN: llvm-as < %s | opt -globalopt + +@V = global float 1.200000e+01 ; [#uses=1] +@G = internal global i32* null ; [#uses=2] + +define i32 @user() { + %P = load i32** @G ; [#uses=1] + %Q = load i32* %P ; [#uses=1] + ret i32 %Q +} + +define void @setter() { + %Vi = bitcast float* @V to i32* ; [#uses=1] + store i32* %Vi, i32** @G + ret void +} + diff --git a/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.llx b/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.llx deleted file mode 100644 index 5f784e065fb..00000000000 --- a/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.llx +++ /dev/null @@ -1,17 +0,0 @@ -; RUN: llvm-as < %s | opt -globalopt - -@V = global float 1.200000e+01 ; [#uses=1] -@G = internal global i32* null ; [#uses=2] - -define i32 @user() { - %P = load i32** @G ; [#uses=1] - %Q = load i32* %P ; [#uses=1] - ret i32 %Q -} - -define void @setter() { - %Vi = bitcast float* @V to i32* ; [#uses=1] - store i32* %Vi, i32** @G - ret void -} - diff --git a/test/Transforms/GlobalOpt/basictest.ll b/test/Transforms/GlobalOpt/basictest.ll new file mode 100644 index 00000000000..1c3bdbbc495 --- /dev/null +++ b/test/Transforms/GlobalOpt/basictest.ll @@ -0,0 +1,9 @@ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global + +@X = internal global i32 4 ; [#uses=1] + +define i32 @foo() { + %V = load i32* @X ; [#uses=1] + ret i32 %V +} + diff --git a/test/Transforms/GlobalOpt/basictest.llx b/test/Transforms/GlobalOpt/basictest.llx deleted file mode 100644 index 1c3bdbbc495..00000000000 --- a/test/Transforms/GlobalOpt/basictest.llx +++ /dev/null @@ -1,9 +0,0 @@ -; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global - -@X = internal global i32 4 ; [#uses=1] - -define i32 @foo() { - %V = load i32* @X ; [#uses=1] - ret i32 %V -} - diff --git a/test/Transforms/GlobalOpt/deadglobal.ll b/test/Transforms/GlobalOpt/deadglobal.ll new file mode 100644 index 00000000000..7a47b8ea30b --- /dev/null +++ b/test/Transforms/GlobalOpt/deadglobal.ll @@ -0,0 +1,9 @@ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep internal + +@G = internal global i32 123 ; [#uses=1] + +define void @foo() { + store i32 1, i32* @G + ret void +} + diff --git a/test/Transforms/GlobalOpt/deadglobal.llx b/test/Transforms/GlobalOpt/deadglobal.llx deleted file mode 100644 index 7a47b8ea30b..00000000000 --- a/test/Transforms/GlobalOpt/deadglobal.llx +++ /dev/null @@ -1,9 +0,0 @@ -; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep internal - -@G = internal global i32 123 ; [#uses=1] - -define void @foo() { - store i32 1, i32* @G - ret void -} - diff --git a/test/Transforms/GlobalOpt/globalsra-partial.ll b/test/Transforms/GlobalOpt/globalsra-partial.ll new file mode 100644 index 00000000000..e52e7feab16 --- /dev/null +++ b/test/Transforms/GlobalOpt/globalsra-partial.ll @@ -0,0 +1,23 @@ +; In this case, the global can only be broken up by one level. + +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep 12345 + +@G = internal global { i32, [4 x float] } zeroinitializer ; <{ i32, [4 x float] }*> [#uses=3] + +define void @onlystore() { + store i32 12345, i32* getelementptr ({ i32, [4 x float] }* @G, i32 0, i32 0) + ret void +} + +define void @storeinit(i32 %i) { + %Ptr = getelementptr { i32, [4 x float] }* @G, i32 0, i32 1, i32 %i ; [#uses=1] + store float 1.000000e+00, float* %Ptr + ret void +} + +define float @readval(i32 %i) { + %Ptr = getelementptr { i32, [4 x float] }* @G, i32 0, i32 1, i32 %i ; [#uses=1] + %V = load float* %Ptr ; [#uses=1] + ret float %V +} + diff --git a/test/Transforms/GlobalOpt/globalsra-partial.llx b/test/Transforms/GlobalOpt/globalsra-partial.llx deleted file mode 100644 index e52e7feab16..00000000000 --- a/test/Transforms/GlobalOpt/globalsra-partial.llx +++ /dev/null @@ -1,23 +0,0 @@ -; In this case, the global can only be broken up by one level. - -; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep 12345 - -@G = internal global { i32, [4 x float] } zeroinitializer ; <{ i32, [4 x float] }*> [#uses=3] - -define void @onlystore() { - store i32 12345, i32* getelementptr ({ i32, [4 x float] }* @G, i32 0, i32 0) - ret void -} - -define void @storeinit(i32 %i) { - %Ptr = getelementptr { i32, [4 x float] }* @G, i32 0, i32 1, i32 %i ; [#uses=1] - store float 1.000000e+00, float* %Ptr - ret void -} - -define float @readval(i32 %i) { - %Ptr = getelementptr { i32, [4 x float] }* @G, i32 0, i32 1, i32 %i ; [#uses=1] - %V = load float* %Ptr ; [#uses=1] - ret float %V -} - diff --git a/test/Transforms/GlobalOpt/globalsra.ll b/test/Transforms/GlobalOpt/globalsra.ll new file mode 100644 index 00000000000..36235552ae8 --- /dev/null +++ b/test/Transforms/GlobalOpt/globalsra.ll @@ -0,0 +1,23 @@ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global + +@G = internal global { i32, float, { double } } { + i32 1, + float 1.000000e+00, + { double } { double 1.727000e+01 } } ; <{ i32, float, { double } }*> [#uses=3] + +define void @onlystore() { + store i32 123, i32* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 0) + ret void +} + +define float @storeinit() { + store float 1.000000e+00, float* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 1) + %X = load float* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 1) ; [#uses=1] + ret float %X +} + +define double @constantize() { + %X = load double* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 2, i32 0) ; [#uses=1] + ret double %X +} + diff --git a/test/Transforms/GlobalOpt/globalsra.llx b/test/Transforms/GlobalOpt/globalsra.llx deleted file mode 100644 index 36235552ae8..00000000000 --- a/test/Transforms/GlobalOpt/globalsra.llx +++ /dev/null @@ -1,23 +0,0 @@ -; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global - -@G = internal global { i32, float, { double } } { - i32 1, - float 1.000000e+00, - { double } { double 1.727000e+01 } } ; <{ i32, float, { double } }*> [#uses=3] - -define void @onlystore() { - store i32 123, i32* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 0) - ret void -} - -define float @storeinit() { - store float 1.000000e+00, float* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 1) - %X = load float* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 1) ; [#uses=1] - ret float %X -} - -define double @constantize() { - %X = load double* getelementptr ({ i32, float, { double } }* @G, i32 0, i32 2, i32 0) ; [#uses=1] - ret double %X -} - diff --git a/test/Transforms/GlobalOpt/iterate.ll b/test/Transforms/GlobalOpt/iterate.ll new file mode 100644 index 00000000000..d764c5d31b4 --- /dev/null +++ b/test/Transforms/GlobalOpt/iterate.ll @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep %G + +@G = internal global i32 0 ; [#uses=1] +@H = internal global { i32* } { i32* @G } ; <{ i32* }*> [#uses=1] + +define i32 @loadg() { + %G = load i32** getelementptr ({ i32* }* @H, i32 0, i32 0) ; [#uses=1] + %GV = load i32* %G ; [#uses=1] + ret i32 %GV +} + diff --git a/test/Transforms/GlobalOpt/iterate.llx b/test/Transforms/GlobalOpt/iterate.llx deleted file mode 100644 index d764c5d31b4..00000000000 --- a/test/Transforms/GlobalOpt/iterate.llx +++ /dev/null @@ -1,11 +0,0 @@ -; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep %G - -@G = internal global i32 0 ; [#uses=1] -@H = internal global { i32* } { i32* @G } ; <{ i32* }*> [#uses=1] - -define i32 @loadg() { - %G = load i32** getelementptr ({ i32* }* @H, i32 0, i32 0) ; [#uses=1] - %GV = load i32* %G ; [#uses=1] - ret i32 %GV -} - diff --git a/test/Transforms/GlobalOpt/load-store-global.ll b/test/Transforms/GlobalOpt/load-store-global.ll new file mode 100644 index 00000000000..d89d2263955 --- /dev/null +++ b/test/Transforms/GlobalOpt/load-store-global.ll @@ -0,0 +1,15 @@ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep G + +@G = internal global i32 17 ; [#uses=3] + +define void @foo() { + %V = load i32* @G ; [#uses=1] + store i32 %V, i32* @G + ret void +} + +define i32 @bar() { + %X = load i32* @G ; [#uses=1] + ret i32 %X +} + diff --git a/test/Transforms/GlobalOpt/load-store-global.llx b/test/Transforms/GlobalOpt/load-store-global.llx deleted file mode 100644 index d89d2263955..00000000000 --- a/test/Transforms/GlobalOpt/load-store-global.llx +++ /dev/null @@ -1,15 +0,0 @@ -; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep G - -@G = internal global i32 17 ; [#uses=3] - -define void @foo() { - %V = load i32* @G ; [#uses=1] - store i32 %V, i32* @G - ret void -} - -define i32 @bar() { - %X = load i32* @G ; [#uses=1] - ret i32 %X -} - diff --git a/test/Transforms/GlobalOpt/malloc-promote-1.ll b/test/Transforms/GlobalOpt/malloc-promote-1.ll new file mode 100644 index 00000000000..fea4dbdd65c --- /dev/null +++ b/test/Transforms/GlobalOpt/malloc-promote-1.ll @@ -0,0 +1,18 @@ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global + +@G = internal global i32* null ; [#uses=3] + +define void @init() { + %P = malloc i32 ; [#uses=1] + store i32* %P, i32** @G + %GV = load i32** @G ; [#uses=1] + store i32 0, i32* %GV + ret void +} + +define i32 @get() { + %GV = load i32** @G ; [#uses=1] + %V = load i32* %GV ; [#uses=1] + ret i32 %V +} + diff --git a/test/Transforms/GlobalOpt/malloc-promote-1.llx b/test/Transforms/GlobalOpt/malloc-promote-1.llx deleted file mode 100644 index fea4dbdd65c..00000000000 --- a/test/Transforms/GlobalOpt/malloc-promote-1.llx +++ /dev/null @@ -1,18 +0,0 @@ -; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global - -@G = internal global i32* null ; [#uses=3] - -define void @init() { - %P = malloc i32 ; [#uses=1] - store i32* %P, i32** @G - %GV = load i32** @G ; [#uses=1] - store i32 0, i32* %GV - ret void -} - -define i32 @get() { - %GV = load i32** @G ; [#uses=1] - %V = load i32* %GV ; [#uses=1] - ret i32 %V -} - diff --git a/test/Transforms/GlobalOpt/malloc-promote-2.ll b/test/Transforms/GlobalOpt/malloc-promote-2.ll new file mode 100644 index 00000000000..1b336329542 --- /dev/null +++ b/test/Transforms/GlobalOpt/malloc-promote-2.ll @@ -0,0 +1,20 @@ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep malloc + +@G = internal global i32* null ; [#uses=3] + +define void @init() { + %P = malloc i32, i32 100 ; [#uses=1] + store i32* %P, i32** @G + %GV = load i32** @G ; [#uses=1] + %GVe = getelementptr i32* %GV, i32 40 ; [#uses=1] + store i32 20, i32* %GVe + ret void +} + +define i32 @get() { + %GV = load i32** @G ; [#uses=1] + %GVe = getelementptr i32* %GV, i32 40 ; [#uses=1] + %V = load i32* %GVe ; [#uses=1] + ret i32 %V +} + diff --git a/test/Transforms/GlobalOpt/malloc-promote-2.llx b/test/Transforms/GlobalOpt/malloc-promote-2.llx deleted file mode 100644 index 1b336329542..00000000000 --- a/test/Transforms/GlobalOpt/malloc-promote-2.llx +++ /dev/null @@ -1,20 +0,0 @@ -; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep malloc - -@G = internal global i32* null ; [#uses=3] - -define void @init() { - %P = malloc i32, i32 100 ; [#uses=1] - store i32* %P, i32** @G - %GV = load i32** @G ; [#uses=1] - %GVe = getelementptr i32* %GV, i32 40 ; [#uses=1] - store i32 20, i32* %GVe - ret void -} - -define i32 @get() { - %GV = load i32** @G ; [#uses=1] - %GVe = getelementptr i32* %GV, i32 40 ; [#uses=1] - %V = load i32* %GVe ; [#uses=1] - ret i32 %V -} - diff --git a/test/Transforms/GlobalOpt/malloc-promote-3.ll b/test/Transforms/GlobalOpt/malloc-promote-3.ll new file mode 100644 index 00000000000..26ce8fd6f85 --- /dev/null +++ b/test/Transforms/GlobalOpt/malloc-promote-3.ll @@ -0,0 +1,26 @@ +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep malloc + +@G = internal global i32* null ; [#uses=4] + +define void @init() { + %P = malloc i32, i32 100 ; [#uses=1] + store i32* %P, i32** @G + %GV = load i32** @G ; [#uses=1] + %GVe = getelementptr i32* %GV, i32 40 ; [#uses=1] + store i32 20, i32* %GVe + ret void +} + +define i32 @get() { + %GV = load i32** @G ; [#uses=1] + %GVe = getelementptr i32* %GV, i32 40 ; [#uses=1] + %V = load i32* %GVe ; [#uses=1] + ret i32 %V +} + +define i1 @check() { + %GV = load i32** @G ; [#uses=1] + %V = icmp eq i32* %GV, null ; [#uses=1] + ret i1 %V +} + diff --git a/test/Transforms/GlobalOpt/malloc-promote-3.llx b/test/Transforms/GlobalOpt/malloc-promote-3.llx deleted file mode 100644 index 26ce8fd6f85..00000000000 --- a/test/Transforms/GlobalOpt/malloc-promote-3.llx +++ /dev/null @@ -1,26 +0,0 @@ -; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep malloc - -@G = internal global i32* null ; [#uses=4] - -define void @init() { - %P = malloc i32, i32 100 ; [#uses=1] - store i32* %P, i32** @G - %GV = load i32** @G ; [#uses=1] - %GVe = getelementptr i32* %GV, i32 40 ; [#uses=1] - store i32 20, i32* %GVe - ret void -} - -define i32 @get() { - %GV = load i32** @G ; [#uses=1] - %GVe = getelementptr i32* %GV, i32 40 ; [#uses=1] - %V = load i32* %GVe ; [#uses=1] - ret i32 %V -} - -define i1 @check() { - %GV = load i32** @G ; [#uses=1] - %V = icmp eq i32* %GV, null ; [#uses=1] - ret i1 %V -} - diff --git a/test/Transforms/GlobalOpt/phi-select.ll b/test/Transforms/GlobalOpt/phi-select.ll new file mode 100644 index 00000000000..da1314f7619 --- /dev/null +++ b/test/Transforms/GlobalOpt/phi-select.ll @@ -0,0 +1,31 @@ +; Test that PHI nodes and select instructions do not necessarily make stuff +; non-constant. + +; RUN: llvm-as < %s | opt -globalopt | llvm-dis | not grep global + +@X = internal global i32 4 ; [#uses=2] +@Y = internal global i32 5 ; [#uses=2] + +define i32 @test1(i1 %C) { + %P = select i1 %C, i32* @X, i32* @Y ; [#uses=1] + %V = load i32* %P ; [#uses=1] + ret i32 %V +} + +define i32 @test2(i1 %C) { +;