From: Rafael Espindola Date: Mon, 24 Nov 2014 20:35:59 +0000 (+0000) Subject: Pass the .ll files to llvm-link directly. NFC. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=d8e637eecfd9e7bbcf3b6a1f7d2c072f4ab9dea5;p=oota-llvm.git Pass the .ll files to llvm-link directly. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222681 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Linker/Inputs/testlink.ll b/test/Linker/Inputs/testlink.ll new file mode 100644 index 00000000000..a5a10310022 --- /dev/null +++ b/test/Linker/Inputs/testlink.ll @@ -0,0 +1,54 @@ +%intlist = type { %intlist*, i32 } + + +%Ty1 = type { %Ty2* } +%Ty2 = type opaque + +%VecSize = type { <10 x i32> } + +@GVTy1 = global %Ty1* null +@GVTy2 = external global %Ty2* + + +@MyVar = global i32 4 +@MyIntList = external global %intlist +@AConst = constant i32 1234 + +;; Intern in both testlink[12].ll +@Intern1 = internal constant i32 52 + +;; Intern in one but not in other +@Intern2 = constant i32 12345 + +@MyIntListPtr = constant { %intlist* } { %intlist* @MyIntList } +@MyVarPtr = linkonce global { i32* } { i32* @MyVar } +@0 = constant i32 412 + +; Provides definition of Struct1 and of S1GV. +%Struct1 = type { i32 } +@S1GV = global %Struct1* null + +define i32 @foo(i32 %blah) { + store i32 %blah, i32* @MyVar + %idx = getelementptr %intlist* @MyIntList, i64 0, i32 1 + store i32 12, i32* %idx + %ack = load i32* @0 + %fzo = add i32 %ack, %blah + ret i32 %fzo +} + +declare void @unimp(float, double) + +define internal void @testintern() { + ret void +} + +define void @Testintern() { + ret void +} + +define internal void @testIntern() { + ret void +} + +declare void @VecSizeCrash1(%VecSize) diff --git a/test/Linker/testlink.ll b/test/Linker/testlink.ll new file mode 100644 index 00000000000..a24d67f7e55 --- /dev/null +++ b/test/Linker/testlink.ll @@ -0,0 +1,99 @@ +; RUN: llvm-link %s %S/Inputs/testlink.ll -S | FileCheck %s + +; CHECK: %Ty2 = type { %Ty1* } +; CHECK: %Ty1 = type { %Ty2* } +%Ty1 = type opaque +%Ty2 = type { %Ty1* } + +; CHECK: %intlist = type { %intlist*, i32 } +%intlist = type { %intlist*, i32 } + +; The uses of intlist in the other file should be remapped. +; CHECK-NOT: {{%intlist.[0-9]}} + +; CHECK: %VecSize = type { <5 x i32> } +; CHECK: %VecSize.{{[0-9]}} = type { <10 x i32> } +%VecSize = type { <5 x i32> } + +%Struct1 = type opaque +@S1GV = external global %Struct1* + + +@GVTy1 = external global %Ty1* +@GVTy2 = global %Ty2* null + + +; This should stay the same +; CHECK: @MyIntList = global %intlist { %intlist* null, i32 17 } +@MyIntList = global %intlist { %intlist* null, i32 17 } + + +; Nothing to link here. + +; CHECK: @0 = external global i32 +@0 = external global i32 +; CHECK: @Inte = global i32 1 +@Inte = global i32 1 + +; Intern1 is intern in both files, rename testlink2's. +; CHECK: @Intern1 = internal constant i32 42 +@Intern1 = internal constant i32 42 + +; This should get renamed since there is a definition that is non-internal in +; the other module. +; CHECK: @Intern2{{[0-9]+}} = internal constant i32 792 +@Intern2 = internal constant i32 792 + + +; CHECK: @MyVarPtr = linkonce global { i32* } { i32* @MyVar } +@MyVarPtr = linkonce global { i32* } { i32* @MyVar } + +; CHECK: @MyVar = global i32 4 +@MyVar = external global i32 + +; Take value from other module. +; CHECK: AConst = constant i32 1234 +@AConst = linkonce constant i32 123 + +; Renamed version of Intern1. +; CHECK: @Intern1{{[0-9]+}} = internal constant i32 52 + + +; Globals linked from testlink2. +; CHECK: @Intern2 = constant i32 12345 + +; CHECK: @MyIntListPtr = constant +; CHECK: @1 = constant i32 412 + + +declare i32 @foo(i32) + +declare void @print(i32) + +define void @main() { + %v1 = load i32* @MyVar + call void @print(i32 %v1) + %idx = getelementptr %intlist* @MyIntList, i64 0, i32 1 + %v2 = load i32* %idx + call void @print(i32 %v2) + %1 = call i32 @foo(i32 5) + %v3 = load i32* @MyVar + call void @print(i32 %v3) + %v4 = load i32* %idx + call void @print(i32 %v4) + ret void +} + +define internal void @testintern() { + ret void +} + +define internal void @Testintern() { + ret void +} + +define void @testIntern() { + ret void +} + +declare void @VecSizeCrash(%VecSize) diff --git a/test/Linker/testlink1.ll b/test/Linker/testlink1.ll deleted file mode 100644 index 6ba6fd5fd7e..00000000000 --- a/test/Linker/testlink1.ll +++ /dev/null @@ -1,101 +0,0 @@ -; RUN: llvm-as < %s > %t.bc -; RUN: llvm-as < %p/testlink2.ll > %t2.bc -; RUN: llvm-link %t.bc %t2.bc -S | FileCheck %s - -; CHECK: %Ty2 = type { %Ty1* } -; CHECK: %Ty1 = type { %Ty2* } -%Ty1 = type opaque -%Ty2 = type { %Ty1* } - -; CHECK: %intlist = type { %intlist*, i32 } -%intlist = type { %intlist*, i32 } - -; The uses of intlist in the other file should be remapped. -; CHECK-NOT: {{%intlist.[0-9]}} - -; CHECK: %VecSize = type { <5 x i32> } -; CHECK: %VecSize.{{[0-9]}} = type { <10 x i32> } -%VecSize = type { <5 x i32> } - -%Struct1 = type opaque -@S1GV = external global %Struct1* - - -@GVTy1 = external global %Ty1* -@GVTy2 = global %Ty2* null - - -; This should stay the same -; CHECK: @MyIntList = global %intlist { %intlist* null, i32 17 } -@MyIntList = global %intlist { %intlist* null, i32 17 } - - -; Nothing to link here. - -; CHECK: @0 = external global i32 -@0 = external global i32 -; CHECK: @Inte = global i32 1 -@Inte = global i32 1 - -; Intern1 is intern in both files, rename testlink2's. -; CHECK: @Intern1 = internal constant i32 42 -@Intern1 = internal constant i32 42 - -; This should get renamed since there is a definition that is non-internal in -; the other module. -; CHECK: @Intern2{{[0-9]+}} = internal constant i32 792 -@Intern2 = internal constant i32 792 - - -; CHECK: @MyVarPtr = linkonce global { i32* } { i32* @MyVar } -@MyVarPtr = linkonce global { i32* } { i32* @MyVar } - -; CHECK: @MyVar = global i32 4 -@MyVar = external global i32 - -; Take value from other module. -; CHECK: AConst = constant i32 1234 -@AConst = linkonce constant i32 123 - -; Renamed version of Intern1. -; CHECK: @Intern1{{[0-9]+}} = internal constant i32 52 - - -; Globals linked from testlink2. -; CHECK: @Intern2 = constant i32 12345 - -; CHECK: @MyIntListPtr = constant -; CHECK: @1 = constant i32 412 - - -declare i32 @foo(i32) - -declare void @print(i32) - -define void @main() { - %v1 = load i32* @MyVar - call void @print(i32 %v1) - %idx = getelementptr %intlist* @MyIntList, i64 0, i32 1 - %v2 = load i32* %idx - call void @print(i32 %v2) - %1 = call i32 @foo(i32 5) - %v3 = load i32* @MyVar - call void @print(i32 %v3) - %v4 = load i32* %idx - call void @print(i32 %v4) - ret void -} - -define internal void @testintern() { - ret void -} - -define internal void @Testintern() { - ret void -} - -define void @testIntern() { - ret void -} - -declare void @VecSizeCrash(%VecSize) diff --git a/test/Linker/testlink2.ll b/test/Linker/testlink2.ll deleted file mode 100644 index ff8e5299869..00000000000 --- a/test/Linker/testlink2.ll +++ /dev/null @@ -1,58 +0,0 @@ -; This file is used by testlink1.ll, so it doesn't actually do anything itself -; -; RUN: true - -%intlist = type { %intlist*, i32 } - - -%Ty1 = type { %Ty2* } -%Ty2 = type opaque - -%VecSize = type { <10 x i32> } - -@GVTy1 = global %Ty1* null -@GVTy2 = external global %Ty2* - - -@MyVar = global i32 4 -@MyIntList = external global %intlist -@AConst = constant i32 1234 - -;; Intern in both testlink[12].ll -@Intern1 = internal constant i32 52 - -;; Intern in one but not in other -@Intern2 = constant i32 12345 - -@MyIntListPtr = constant { %intlist* } { %intlist* @MyIntList } -@MyVarPtr = linkonce global { i32* } { i32* @MyVar } -@0 = constant i32 412 - -; Provides definition of Struct1 and of S1GV. -%Struct1 = type { i32 } -@S1GV = global %Struct1* null - -define i32 @foo(i32 %blah) { - store i32 %blah, i32* @MyVar - %idx = getelementptr %intlist* @MyIntList, i64 0, i32 1 - store i32 12, i32* %idx - %ack = load i32* @0 - %fzo = add i32 %ack, %blah - ret i32 %fzo -} - -declare void @unimp(float, double) - -define internal void @testintern() { - ret void -} - -define void @Testintern() { - ret void -} - -define internal void @testIntern() { - ret void -} - -declare void @VecSizeCrash1(%VecSize) diff --git a/test/Linker/weakextern.ll b/test/Linker/weakextern.ll index b9f2584c7ee..8d479a0d39b 100644 --- a/test/Linker/weakextern.ll +++ b/test/Linker/weakextern.ll @@ -1,5 +1,5 @@ ; RUN: llvm-as < %s > %t.bc -; RUN: llvm-as < %p/testlink1.ll > %t2.bc +; RUN: llvm-as < %p/testlink.ll > %t2.bc ; RUN: llvm-link %t.bc %t.bc %t2.bc -o %t1.bc ; RUN: llvm-dis < %t1.bc | FileCheck %s ; CHECK: kallsyms_names = extern_weak