diff options
author | Nico Rieck <nico.rieck@gmail.com> | 2014-01-14 12:38:32 +0000 |
---|---|---|
committer | Nico Rieck <nico.rieck@gmail.com> | 2014-01-14 12:38:32 +0000 |
commit | 55463f4ec19618207dcf07016ad6aa1def429dc4 (patch) | |
tree | 0b3bb45fe7076f7ca661939a405b8c49c3a18631 /test | |
parent | 62b811443db32e55b37370b421e0f34454417b47 (diff) | |
download | llvm-55463f4ec19618207dcf07016ad6aa1def429dc4.tar.gz llvm-55463f4ec19618207dcf07016ad6aa1def429dc4.tar.bz2 llvm-55463f4ec19618207dcf07016ad6aa1def429dc4.tar.xz |
Revert "Decouple dllexport/dllimport from linkage"
Revert this for now until I fix an issue in Clang with it.
This reverts commit r199204.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199207 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/Bitcode/linkage-types-3.2.ll | 2 | ||||
-rw-r--r-- | test/CodeGen/X86/dll-linkage.ll | 14 | ||||
-rw-r--r-- | test/CodeGen/X86/dllexport-x86_64.ll | 79 | ||||
-rw-r--r-- | test/CodeGen/X86/dllexport.ll | 100 | ||||
-rw-r--r-- | test/CodeGen/X86/dllimport-x86_64.ll | 48 | ||||
-rw-r--r-- | test/CodeGen/X86/dllimport.ll | 59 |
6 files changed, 21 insertions, 281 deletions
diff --git a/test/Bitcode/linkage-types-3.2.ll b/test/Bitcode/linkage-types-3.2.ll index 8bacb124ee..65c31dd128 100644 --- a/test/Bitcode/linkage-types-3.2.ll +++ b/test/Bitcode/linkage-types-3.2.ll @@ -50,7 +50,7 @@ ; CHECK: @dllexport.var = dllexport global i32 0 @dllimport.var = dllimport global i32 -; CHECK: @dllimport.var = external dllimport global i32 +; CHECK: @dllimport.var = dllimport global i32 define private void @private() ; CHECK: define private void @private diff --git a/test/CodeGen/X86/dll-linkage.ll b/test/CodeGen/X86/dll-linkage.ll new file mode 100644 index 0000000000..a0c2a54a99 --- /dev/null +++ b/test/CodeGen/X86/dll-linkage.ll @@ -0,0 +1,14 @@ +; RUN: llc < %s -mtriple=i386-pc-mingw32 | FileCheck %s + +; RUN: llc < %s -mtriple=i386-pc-mingw32 -O0 | FileCheck %s -check-prefix=FAST +; PR6275 + +declare dllimport void @foo() + +define void @bar() nounwind { +; CHECK: calll *__imp__foo +; FAST: movl __imp__foo, [[R:%[a-z]{3}]] +; FAST: calll *[[R]] + call void @foo() + ret void +} diff --git a/test/CodeGen/X86/dllexport-x86_64.ll b/test/CodeGen/X86/dllexport-x86_64.ll deleted file mode 100644 index 6bf73aa536..0000000000 --- a/test/CodeGen/X86/dllexport-x86_64.ll +++ /dev/null @@ -1,79 +0,0 @@ -; RUN: llc -mtriple x86_64-pc-win32 < %s | FileCheck -check-prefix=CHECK -check-prefix=WIN32 %s -; RUN: llc -mtriple x86_64-pc-mingw32 < %s | FileCheck -check-prefix=CHECK -check-prefix=MINGW %s - -; CHECK: .text - -define void @notExported() { - ret void -} - -; CHECK: .globl f1 -define dllexport void @f1() { - ret void -} - -; CHECK: .globl f2 -define dllexport void @f2() unnamed_addr { - ret void -} - -; CHECK: .section .text,"xr",discard,lnk1 -; CHECK: .globl lnk1 -define linkonce_odr dllexport void @lnk1() { - ret void -} - -; CHECK: .section .text,"xr",discard,lnk2 -; CHECK: .globl lnk2 -define linkonce_odr dllexport void @lnk2() alwaysinline { - ret void -} - -; CHECK: .section .text,"xr",discard,weak1 -; CHECK: .globl weak1 -define weak_odr dllexport void @weak1() { - ret void -} - - -; CHECK: .data -; CHECK: .globl Var1 -@Var1 = dllexport global i32 1, align 4 - -; CHECK: .rdata,"r" -; CHECK: .globl Var2 -@Var2 = dllexport unnamed_addr constant i32 1 - -; CHECK: .comm Var3 -@Var3 = common dllexport global i32 0, align 4 - -; CHECK: .section .data,"w",discard,WeakVar1 -; CHECK: .globl WeakVar1 -@WeakVar1 = weak_odr dllexport global i32 1, align 4 - -; CHECK: .section .rdata,"r",discard,WeakVar2 -; CHECK: .globl WeakVar2 -@WeakVar2 = weak_odr dllexport unnamed_addr constant i32 1 - - -; CHECK: .section .drectve -; WIN32: /EXPORT:Var1,DATA -; WIN32: /EXPORT:Var2,DATA -; WIN32: /EXPORT:Var3,DATA -; WIN32: /EXPORT:WeakVar1,DATA -; WIN32: /EXPORT:WeakVar2,DATA -; WIN32: /EXPORT:f1 -; WIN32: /EXPORT:f2 -; WIN32: /EXPORT:lnk1 -; WIN32: /EXPORT:lnk2 -; WIN32: /EXPORT:weak1 -; MINGW: -export:Var1,data -; MINGW: -export:Var2,data -; MINGW: -export:Var3,data -; MINGW: -export:WeakVar1,data -; MINGW: -export:WeakVar2,data -; MINGW: -export:f1 -; MINGW: -export:f2 -; MINGW: -export:lnk1 -; MINGW: -export:lnk2 -; MINGW: -export:weak1 diff --git a/test/CodeGen/X86/dllexport.ll b/test/CodeGen/X86/dllexport.ll index 1d99212597..bf57e78f35 100644 --- a/test/CodeGen/X86/dllexport.ll +++ b/test/CodeGen/X86/dllexport.ll @@ -1,100 +1,12 @@ -; RUN: llc -mtriple i386-pc-win32 < %s | FileCheck -check-prefix=CHECK -check-prefix=WIN32 %s -; RUN: llc -mtriple i386-pc-mingw32 < %s | FileCheck -check-prefix=CHECK -check-prefix=MINGW %s +; RUN: llc < %s | FileCheck %s +; PR2936 -; CHECK: .text +target triple = "i386-pc-mingw32" -define void @notExported() { - ret void -} - -; CHECK: .globl _f1 -define dllexport void @f1() { - ret void -} - -; CHECK: .globl _f2 -define dllexport void @f2() unnamed_addr { - ret void -} - -; CHECK: .globl _stdfun@0 -define dllexport x86_stdcallcc void @stdfun() nounwind { - ret void -} - -; CHECK: .globl @fastfun@0 -define dllexport x86_fastcallcc i32 @fastfun() nounwind { +define dllexport x86_fastcallcc i32 @foo() nounwind { +entry: ret i32 0 } -; CHECK: .globl _thisfun -define dllexport x86_thiscallcc void @thisfun() nounwind { - ret void -} - -; CHECK: .section .text,"xr",discard,_lnk1 -; CHECK: .globl _lnk1 -define linkonce_odr dllexport void @lnk1() { - ret void -} - -; CHECK: .section .text,"xr",discard,_lnk2 -; CHECK: .globl _lnk2 -define linkonce_odr dllexport void @lnk2() alwaysinline { - ret void -} - -; CHECK: .section .text,"xr",discard,_weak1 -; CHECK: .globl _weak1 -define weak_odr dllexport void @weak1() { - ret void -} - - -; CHECK: .data -; CHECK: .globl _Var1 -@Var1 = dllexport global i32 1, align 4 - -; CHECK: .rdata,"r" -; CHECK: .globl _Var2 -@Var2 = dllexport unnamed_addr constant i32 1 - -; CHECK: .comm _Var3 -@Var3 = common dllexport global i32 0, align 4 - -; CHECK: .section .data,"w",discard,_WeakVar1 -; CHECK: .globl _WeakVar1 -@WeakVar1 = weak_odr dllexport global i32 1, align 4 - -; CHECK: .section .rdata,"r",discard,_WeakVar2 -; CHECK: .globl _WeakVar2 -@WeakVar2 = weak_odr dllexport unnamed_addr constant i32 1 - - ; CHECK: .section .drectve -; WIN32: /EXPORT:_Var1,DATA -; WIN32: /EXPORT:_Var2,DATA -; WIN32: /EXPORT:_Var3,DATA -; WIN32: /EXPORT:_WeakVar1,DATA -; WIN32: /EXPORT:_WeakVar2,DATA -; WIN32: /EXPORT:_f1 -; WIN32: /EXPORT:_f2 -; WIN32: /EXPORT:_stdfun@0 -; WIN32: /EXPORT:@fastfun@0 -; WIN32: /EXPORT:_thisfun -; WIN32: /EXPORT:_lnk1 -; WIN32: /EXPORT:_lnk2 -; WIN32: /EXPORT:_weak1 -; MINGW: -export:_Var1,data -; MINGW: -export:_Var2,data -; MINGW: -export:_Var3,data -; MINGW: -export:_WeakVar1,data -; MINGW: -export:_WeakVar2,data -; MINGW: -export:_f1 -; MINGW: -export:_f2 -; MINGW: -export:_stdfun@0 -; MINGW: -export:@fastfun@0 -; MINGW: -export:_thisfun -; MINGW: -export:_lnk1 -; MINGW: -export:_lnk2 -; MINGW: -export:_weak1 +; CHECK: -export:@foo@0 diff --git a/test/CodeGen/X86/dllimport-x86_64.ll b/test/CodeGen/X86/dllimport-x86_64.ll deleted file mode 100644 index 666409fd4c..0000000000 --- a/test/CodeGen/X86/dllimport-x86_64.ll +++ /dev/null @@ -1,48 +0,0 @@ -; RUN: llc -mtriple x86_64-pc-win32 < %s | FileCheck %s -; RUN: llc -mtriple x86_64-pc-mingw32 < %s | FileCheck %s -; -; RUN: llc -mtriple x86_64-pc-mingw32 -O0 < %s | FileCheck %s -check-prefix=FAST -; PR6275 -; -; RUN: opt -mtriple x86_64-pc-win32 -std-compile-opts -S < %s | FileCheck %s -check-prefix=OPT - -@Var1 = external dllimport global i32 -@Var2 = available_externally dllimport unnamed_addr constant i32 1 - -declare dllimport void @fun() - -define available_externally dllimport void @inline1() { - ret void -} - -define available_externally dllimport void @inline2() { - ret void -} - -declare void @dummy(...) - -define void @use() nounwind { -; CHECK: callq *__imp_fun(%rip) -; FAST: movq __imp_fun(%rip), [[R:%[a-z]{3}]] -; FAST-NEXT: callq *[[R]] - call void @fun() - -; CHECK: callq *__imp_inline1(%rip) -; CHECK: callq *__imp_inline2(%rip) - call void @inline1() - call void @inline2() - -; available_externally uses go away -; OPT-NOT: call void @inline1() -; OPT-NOT: call void @inline2() -; OPT-NOT: load i32* @Var2 -; OPT: call void (...)* @dummy(i32 %1, i32 1) - -; CHECK-DAG: movq __imp_Var1(%rip), [[R1:%[a-z]{3}]] -; CHECK-DAG: movq __imp_Var2(%rip), [[R2:%[a-z]{3}]] - %1 = load i32* @Var1 - %2 = load i32* @Var2 - call void(...)* @dummy(i32 %1, i32 %2) - - ret void -} diff --git a/test/CodeGen/X86/dllimport.ll b/test/CodeGen/X86/dllimport.ll deleted file mode 100644 index 695bfce821..0000000000 --- a/test/CodeGen/X86/dllimport.ll +++ /dev/null @@ -1,59 +0,0 @@ -; RUN: llc -mtriple i386-pc-win32 < %s | FileCheck %s -; RUN: llc -mtriple i386-pc-mingw32 < %s | FileCheck %s -; -; RUN: llc -mtriple i386-pc-mingw32 -O0 < %s | FileCheck %s -check-prefix=FAST -; PR6275 -; -; RUN: opt -mtriple i386-pc-win32 -std-compile-opts -S < %s | FileCheck %s -check-prefix=OPT - -@Var1 = external dllimport global i32 -@Var2 = available_externally dllimport unnamed_addr constant i32 1 - -declare dllimport void @fun() - -define available_externally dllimport void @inline1() { - ret void -} - -define available_externally dllimport void @inline2() alwaysinline { - ret void -} - -declare dllimport x86_stdcallcc void @stdfun() nounwind -declare dllimport x86_fastcallcc void @fastfun() nounwind -declare dllimport x86_thiscallcc void @thisfun() nounwind - -declare void @dummy(...) - -define void @use() nounwind { -; CHECK: calll *__imp__fun -; FAST: movl __imp__fun, [[R:%[a-z]{3}]] -; FAST-NEXT: calll *[[R]] - call void @fun() - -; CHECK: calll *__imp__inline1 -; CHECK: calll *__imp__inline2 - call void @inline1() - call void @inline2() - -; CHECK: calll *__imp__stdfun@0 -; CHECK: calll *__imp_@fastfun@0 -; CHECK: calll *__imp__thisfun - call void @stdfun() - call void @fastfun() - call void @thisfun() - -; available_externally uses go away -; OPT-NOT: call void @inline1() -; OPT-NOT: call void @inline2() -; OPT-NOT: load i32* @Var2 -; OPT: call void (...)* @dummy(i32 %1, i32 1) - -; CHECK-DAG: movl __imp__Var1, [[R1:%[a-z]{3}]] -; CHECK-DAG: movl __imp__Var2, [[R2:%[a-z]{3}]] - %1 = load i32* @Var1 - %2 = load i32* @Var2 - call void(...)* @dummy(i32 %1, i32 %2) - - ret void -} |