diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Analysis/Dominators/2006-10-02-BreakCritEdges.ll | 5 | ||||
-rw-r--r-- | test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll | 4 | ||||
-rw-r--r-- | test/Analysis/GlobalsModRef/aliastest.ll | 7 | ||||
-rw-r--r-- | test/Analysis/GlobalsModRef/chaining-analysis.ll | 6 | ||||
-rw-r--r-- | test/Analysis/GlobalsModRef/indirect-global.ll | 5 | ||||
-rw-r--r-- | test/Analysis/GlobalsModRef/modreftest.ll | 7 | ||||
-rw-r--r-- | test/Analysis/GlobalsModRef/purecse.ll | 8 |
7 files changed, 31 insertions, 11 deletions
diff --git a/test/Analysis/Dominators/2006-10-02-BreakCritEdges.ll b/test/Analysis/Dominators/2006-10-02-BreakCritEdges.ll index e31f4165b6..45efc42381 100644 --- a/test/Analysis/Dominators/2006-10-02-BreakCritEdges.ll +++ b/test/Analysis/Dominators/2006-10-02-BreakCritEdges.ll @@ -1,7 +1,8 @@ -; RUN: opt < %s -domtree -break-crit-edges -analyze \ -; RUN: -domtree | grep {3.*%brtrue } +; RUN: opt < %s -domtree -break-crit-edges -analyze -domtree | FileCheck %s ; PR932 +; CHECK: [3] %brtrue {1,2} + declare void @use1(i32) define void @f(i32 %i, i1 %c) { diff --git a/test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll b/test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll index 17ace8a950..d51c159a91 100644 --- a/test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll +++ b/test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -globalsmodref-aa -gvn -S | grep call | count 2 +; RUN: opt < %s -globalsmodref-aa -gvn -S | FileCheck %s @g = internal global i32 0 ; <i32*> [#uses=2] @@ -8,6 +8,8 @@ define i32 @r() { } define i32 @f() { +; CHECK: call i32 @e() +; CHECK: call i32 @e() entry: %tmp = call i32 @e( ) ; <i32> [#uses=1] store i32 %tmp, i32* @g diff --git a/test/Analysis/GlobalsModRef/aliastest.ll b/test/Analysis/GlobalsModRef/aliastest.ll index 75af4dc5b9..4cfed71bfb 100644 --- a/test/Analysis/GlobalsModRef/aliastest.ll +++ b/test/Analysis/GlobalsModRef/aliastest.ll @@ -1,7 +1,12 @@ -; RUN: opt < %s -basicaa -globalsmodref-aa -gvn -S | not grep load +; RUN: opt < %s -basicaa -globalsmodref-aa -gvn -S | FileCheck %s + @X = internal global i32 4 ; <i32*> [#uses=1] define i32 @test(i32* %P) { +; CHECK: @test +; CHECK-NEXT: store i32 7, i32* %P +; CHECK-NEXT: store i32 12, i32* @X +; CHECK-NEXT: ret i32 7 store i32 7, i32* %P store i32 12, i32* @X %V = load i32* %P ; <i32> [#uses=1] diff --git a/test/Analysis/GlobalsModRef/chaining-analysis.ll b/test/Analysis/GlobalsModRef/chaining-analysis.ll index 431b2a68cf..aeb76e42d2 100644 --- a/test/Analysis/GlobalsModRef/chaining-analysis.ll +++ b/test/Analysis/GlobalsModRef/chaining-analysis.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -basicaa -globalsmodref-aa -gvn -S | not grep load +; RUN: opt < %s -basicaa -globalsmodref-aa -gvn -S | FileCheck %s ; This test requires the use of previous analyses to determine that ; doesnotmodX does not modify X (because 'sin' doesn't). @@ -8,6 +8,10 @@ declare double @sin(double) readnone define i32 @test(i32* %P) { +; CHECK: @test +; CHECK-NEXT: store i32 12, i32* @X +; CHECK-NEXT: call double @doesnotmodX(double 1.000000e+00) +; CHECK-NEXT: ret i32 12 store i32 12, i32* @X call double @doesnotmodX( double 1.000000e+00 ) ; <double>:1 [#uses=0] %V = load i32* @X ; <i32> [#uses=1] diff --git a/test/Analysis/GlobalsModRef/indirect-global.ll b/test/Analysis/GlobalsModRef/indirect-global.ll index 826f55c8d1..48ac6dd1d1 100644 --- a/test/Analysis/GlobalsModRef/indirect-global.ll +++ b/test/Analysis/GlobalsModRef/indirect-global.ll @@ -1,9 +1,7 @@ -; RUN: opt < %s -basicaa -globalsmodref-aa -gvn -instcombine -S | \ -; RUN: grep {ret i32 0} +; RUN: opt < %s -basicaa -globalsmodref-aa -gvn -instcombine -S | FileCheck %s @G = internal global i32* null ; <i32**> [#uses=3] - declare i8* @malloc(i32) define void @test() { %a = call i8* @malloc(i32 4) @@ -13,6 +11,7 @@ define void @test() { } define i32 @test1(i32* %P) { +; CHECK: ret i32 0 %g1 = load i32** @G ; <i32*> [#uses=2] %h1 = load i32* %g1 ; <i32> [#uses=1] store i32 123, i32* %P diff --git a/test/Analysis/GlobalsModRef/modreftest.ll b/test/Analysis/GlobalsModRef/modreftest.ll index 3a02a94a99..3eed916e83 100644 --- a/test/Analysis/GlobalsModRef/modreftest.ll +++ b/test/Analysis/GlobalsModRef/modreftest.ll @@ -1,7 +1,12 @@ -; RUN: opt < %s -basicaa -globalsmodref-aa -gvn -S | not grep load +; RUN: opt < %s -basicaa -globalsmodref-aa -gvn -S | FileCheck %s + @X = internal global i32 4 ; <i32*> [#uses=2] define i32 @test(i32* %P) { +; CHECK: @test +; CHECK-NEXT: store i32 12, i32* @X +; CHECK-NEXT: call void @doesnotmodX() +; CHECK-NEXT: ret i32 12 store i32 12, i32* @X call void @doesnotmodX( ) %V = load i32* @X ; <i32> [#uses=1] diff --git a/test/Analysis/GlobalsModRef/purecse.ll b/test/Analysis/GlobalsModRef/purecse.ll index 994aff8d4c..e030417f95 100644 --- a/test/Analysis/GlobalsModRef/purecse.ll +++ b/test/Analysis/GlobalsModRef/purecse.ll @@ -1,6 +1,5 @@ ; Test that pure functions are cse'd away -; RUN: opt < %s -globalsmodref-aa -gvn -instcombine | \ -; RUN: llvm-dis | not grep sub +; RUN: opt < %s -globalsmodref-aa -gvn -instcombine -S | FileCheck %s define i32 @pure(i32 %X) { %Y = add i32 %X, 1 ; <i32> [#uses=1] @@ -8,6 +7,8 @@ define i32 @pure(i32 %X) { } define i32 @test1(i32 %X) { +; CHECK: %A = call i32 @pure(i32 %X) +; CHECK-NEXT: ret i32 0 %A = call i32 @pure( i32 %X ) ; <i32> [#uses=1] %B = call i32 @pure( i32 %X ) ; <i32> [#uses=1] %C = sub i32 %A, %B ; <i32> [#uses=1] @@ -15,6 +16,9 @@ define i32 @test1(i32 %X) { } define i32 @test2(i32 %X, i32* %P) { +; CHECK: %A = call i32 @pure(i32 %X) +; CHECK-NEXT: store i32 %X, i32* %P +; CHECK-NEXT: ret i32 0 %A = call i32 @pure( i32 %X ) ; <i32> [#uses=1] store i32 %X, i32* %P ;; Does not invalidate 'pure' call. %B = call i32 @pure( i32 %X ) ; <i32> [#uses=1] |