diff options
Diffstat (limited to 'test/Transforms/ArgumentPromotion')
14 files changed, 36 insertions, 13 deletions
diff --git a/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll b/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll index 67c061f..e740b29 100644 --- a/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll +++ b/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | grep nounwind | count 2 +; RUN: opt < %s -argpromotion -S | grep nounwind | count 2 define internal i32 @deref(i32* %x) nounwind { entry: diff --git a/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll b/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll index 11bcb28..d7d5eb5 100644 --- a/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll +++ b/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion | llvm-dis > %t +; RUN: opt < %s -argpromotion -S > %t ; RUN: cat %t | grep {define.*@callee(.*i32\\*} ; PR2498 diff --git a/test/Transforms/ArgumentPromotion/2008-09-07-CGUpdate.ll b/test/Transforms/ArgumentPromotion/2008-09-07-CGUpdate.ll index 047ff0a..7ee6654 100644 --- a/test/Transforms/ArgumentPromotion/2008-09-07-CGUpdate.ll +++ b/test/Transforms/ArgumentPromotion/2008-09-07-CGUpdate.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -inline -argpromotion -disable-output +; RUN: opt < %s -inline -argpromotion -disable-output define internal fastcc i32 @hash(i32* %ts, i32 %mod) nounwind { entry: diff --git a/test/Transforms/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll b/test/Transforms/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll index d406165..aff917c 100644 --- a/test/Transforms/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll +++ b/test/Transforms/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion -disable-output +; RUN: opt < %s -argpromotion -disable-output define internal fastcc i32 @term_SharingList(i32* %Term, i32* %List) nounwind { entry: diff --git a/test/Transforms/ArgumentPromotion/aggregate-promote.ll b/test/Transforms/ArgumentPromotion/aggregate-promote.ll index 62b1a07..6a60e61 100644 --- a/test/Transforms/ArgumentPromotion/aggregate-promote.ll +++ b/test/Transforms/ArgumentPromotion/aggregate-promote.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion -instcombine | llvm-dis | not grep load +; RUN: opt < %s -argpromotion -instcombine -S | not grep load %QuadTy = type { i32, i32, i32, i32 } @G = constant %QuadTy { diff --git a/test/Transforms/ArgumentPromotion/attrs.ll b/test/Transforms/ArgumentPromotion/attrs.ll index 0fb38be..49c0750 100644 --- a/test/Transforms/ArgumentPromotion/attrs.ll +++ b/test/Transforms/ArgumentPromotion/attrs.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | grep zeroext +; RUN: opt < %s -argpromotion -S | grep zeroext %struct.ss = type { i32, i64 } diff --git a/test/Transforms/ArgumentPromotion/basictest.ll b/test/Transforms/ArgumentPromotion/basictest.ll index 99697f4..87f6371 100644 --- a/test/Transforms/ArgumentPromotion/basictest.ll +++ b/test/Transforms/ArgumentPromotion/basictest.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion -mem2reg | llvm-dis | not grep alloca +; RUN: opt < %s -argpromotion -mem2reg -S | not grep alloca define internal i32 @test(i32* %X, i32* %Y) { %A = load i32* %X ; <i32> [#uses=1] %B = load i32* %Y ; <i32> [#uses=1] diff --git a/test/Transforms/ArgumentPromotion/byval-2.ll b/test/Transforms/ArgumentPromotion/byval-2.ll index d625357..bd62c68 100644 --- a/test/Transforms/ArgumentPromotion/byval-2.ll +++ b/test/Transforms/ArgumentPromotion/byval-2.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | grep -F {i32* byval} | count 2 +; RUN: opt < %s -argpromotion -S | grep -F {i32* byval} | count 2 ; Argpromote + scalarrepl should change this to passing the two integers by value. %struct.ss = type { i32, i64 } diff --git a/test/Transforms/ArgumentPromotion/byval.ll b/test/Transforms/ArgumentPromotion/byval.ll index 3a3458f..052528a 100644 --- a/test/Transforms/ArgumentPromotion/byval.ll +++ b/test/Transforms/ArgumentPromotion/byval.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion -scalarrepl | llvm-dis | not grep load +; RUN: opt < %s -argpromotion -scalarrepl -S | not grep load ; Argpromote + scalarrepl should change this to passing the two integers by value. %struct.ss = type { i32, i64 } diff --git a/test/Transforms/ArgumentPromotion/callgraph-update.ll b/test/Transforms/ArgumentPromotion/callgraph-update.ll new file mode 100644 index 0000000..989043d --- /dev/null +++ b/test/Transforms/ArgumentPromotion/callgraph-update.ll @@ -0,0 +1,23 @@ +; RUN: opt < %s -argpromotion -simplifycfg -constmerge | llvm-dis +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" +target triple = "i386-apple-darwin10.0" + +%struct.VEC2 = type { double, double, double } +%struct.VERTEX = type { %struct.VEC2, %struct.VERTEX*, %struct.VERTEX* } +%struct.edge_rec = type { %struct.VERTEX*, %struct.edge_rec*, i32, i8* } + +declare %struct.edge_rec* @alloc_edge() nounwind ssp + +define i64 @build_delaunay(%struct.VERTEX* %tree, %struct.VERTEX* %extra) nounwind ssp { +entry: + br i1 undef, label %bb11, label %bb12 + +bb11: ; preds = %bb10 + %a = call %struct.edge_rec* @alloc_edge() nounwind ; <%struct.edge_rec*> [#uses=0] + ret i64 123 + +bb12: ; preds = %bb10 + %b = call %struct.edge_rec* @alloc_edge() nounwind ; <%struct.edge_rec*> [#uses=1] + %c = ptrtoint %struct.edge_rec* %b to i64 + ret i64 %c +} diff --git a/test/Transforms/ArgumentPromotion/chained.ll b/test/Transforms/ArgumentPromotion/chained.ll index de5f6e5..5ccb752 100644 --- a/test/Transforms/ArgumentPromotion/chained.ll +++ b/test/Transforms/ArgumentPromotion/chained.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion -instcombine | llvm-dis | not grep load +; RUN: opt < %s -argpromotion -instcombine -S | not grep load @G1 = constant i32 0 ; <i32*> [#uses=1] @G2 = constant i32* @G1 ; <i32**> [#uses=1] diff --git a/test/Transforms/ArgumentPromotion/control-flow.ll b/test/Transforms/ArgumentPromotion/control-flow.ll index 76e8fd9..08ca6bc 100644 --- a/test/Transforms/ArgumentPromotion/control-flow.ll +++ b/test/Transforms/ArgumentPromotion/control-flow.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | \ +; RUN: opt < %s -argpromotion -S | \ ; RUN: not grep {load i32\* null} define internal i32 @callee(i1 %C, i32* %P) { diff --git a/test/Transforms/ArgumentPromotion/control-flow2.ll b/test/Transforms/ArgumentPromotion/control-flow2.ll index 5875013..79b44d4 100644 --- a/test/Transforms/ArgumentPromotion/control-flow2.ll +++ b/test/Transforms/ArgumentPromotion/control-flow2.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | \ +; RUN: opt < %s -argpromotion -S | \ ; RUN: grep {load i32\\* %A} define internal i32 @callee(i1 %C, i32* %P) { diff --git a/test/Transforms/ArgumentPromotion/pr3085.ll b/test/Transforms/ArgumentPromotion/pr3085.ll index e350370..3048c60 100644 --- a/test/Transforms/ArgumentPromotion/pr3085.ll +++ b/test/Transforms/ArgumentPromotion/pr3085.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -disable-output -loop-extract-single -loop-rotate -loop-reduce -argpromotion +; RUN: opt < %s -disable-output -loop-extract-single -loop-rotate -loop-reduce -argpromotion ; PR 3085 %struct.Lit = type { i8 } |