diff options
Diffstat (limited to 'test/Transforms/ConstantMerge')
4 files changed, 39 insertions, 0 deletions
diff --git a/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll b/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll new file mode 100644 index 0000000..b7b05cf --- /dev/null +++ b/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll @@ -0,0 +1,13 @@ +; RUN: opt < %s -constmerge > /dev/null + +@foo.upgrd.1 = internal constant { i32 } { i32 7 } ; <{ i32 }*> [#uses=1] +@bar = internal constant { i32 } { i32 7 } ; <{ i32 }*> [#uses=1] + +declare i32 @test(i32*) + +define void @foo() { + call i32 @test( i32* getelementptr ({ i32 }* @foo.upgrd.1, i64 0, i32 0) ) ; <i32>:1 [#uses=0] + call i32 @test( i32* getelementptr ({ i32 }* @bar, i64 0, i32 0) ) ; <i32>:2 [#uses=0] + ret void +} + diff --git a/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll b/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll new file mode 100644 index 0000000..ce79e3b --- /dev/null +++ b/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll @@ -0,0 +1,7 @@ +; RUN: opt -S -constmerge %s | FileCheck %s + +; CHECK: @foo = constant i32 6 +; CHECK: @bar = constant i32 6 +@foo = constant i32 6 ; <i32*> [#uses=0] +@bar = constant i32 6 ; <i32*> [#uses=0] + diff --git a/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll b/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll new file mode 100644 index 0000000..cea18a0 --- /dev/null +++ b/test/Transforms/ConstantMerge/2006-03-07-DontMergeDiffSections.ll @@ -0,0 +1,16 @@ +; RUN: opt < %s -constmerge -S | grep foo +; RUN: opt < %s -constmerge -S | grep bar + +; Don't merge constants in different sections. + +@G1 = internal constant i32 1, section "foo" ; <i32*> [#uses=1] +@G2 = internal constant i32 1, section "bar" ; <i32*> [#uses=1] +@G3 = internal constant i32 1, section "bar" ; <i32*> [#uses=1] + +define void @test(i32** %P1, i32** %P2, i32** %P3) { + store i32* @G1, i32** %P1 + store i32* @G2, i32** %P2 + store i32* @G3, i32** %P3 + ret void +} + diff --git a/test/Transforms/ConstantMerge/dg.exp b/test/Transforms/ConstantMerge/dg.exp new file mode 100644 index 0000000..f200589 --- /dev/null +++ b/test/Transforms/ConstantMerge/dg.exp @@ -0,0 +1,3 @@ +load_lib llvm.exp + +RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]] |