summaryrefslogtreecommitdiffstats
path: root/llvm/test/LTO/Resolution
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2017-11-21 22:06:20 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2017-11-21 22:06:20 +0000
commit6c4846227609423e2a0922a5cefe3aac11cf2ee9 (patch)
treead0b9c865ca217703b2b87237fd79cb69fced1fc /llvm/test/LTO/Resolution
parentba40b0566ff0e835bc8234a4651e8cbf76181c3e (diff)
downloadbcm5719-llvm-6c4846227609423e2a0922a5cefe3aac11cf2ee9.tar.gz
bcm5719-llvm-6c4846227609423e2a0922a5cefe3aac11cf2ee9.zip
Object: Improve COFF irsymtab comdat representation.
Change the representation of COFF comdats so that a COFF linker is able to accurately resolve comdats between IR and native object files. Specifically, apply name mangling to comdat names consistently with native object files, and do not export comdats with an internal leader because they do not affect symbol resolution. Differential Revision: https://reviews.llvm.org/D40278 llvm-svn: 318805
Diffstat (limited to 'llvm/test/LTO/Resolution')
-rw-r--r--llvm/test/LTO/Resolution/X86/symtab.ll25
1 files changed, 21 insertions, 4 deletions
diff --git a/llvm/test/LTO/Resolution/X86/symtab.ll b/llvm/test/LTO/Resolution/X86/symtab.ll
index fecea0a1e7b..c43494a5b7e 100644
--- a/llvm/test/LTO/Resolution/X86/symtab.ll
+++ b/llvm/test/LTO/Resolution/X86/symtab.ll
@@ -17,6 +17,15 @@ define i32 @fun() {
ret i32 0
}
+; CHECK: D------X @fun2@8
+; CHECK-NEXT: comdat @fun2@8
+$fun2 = comdat any
+define x86_fastcallcc i32 @fun2(i32 inreg %a, i32 inreg %b) comdat {
+entry:
+ %add = add nsw i32 %b, %a
+ ret i32 %add
+}
+
; CHECK: H------- _g1
@g1 = hidden global i32 0
@@ -43,11 +52,19 @@ define i32 @fun() {
@g8 = common global i32 0, align 8
; CHECK: D------- _g9
-; CHECK-NEXT: comdat g9
+; CHECK-NEXT: comdat _g9
$g9 = comdat any
@g9 = global i32 0, comdat
-; CHECK: D--WI--- _g10
-; CHECK-NEXT: comdat g9
+; CHECK-NOT: _g10
+$g10 = comdat any
+@g10 = internal global i32 0, comdat
+
+; CHECK: D------- _g11
+; CHECK-NOT: comdat
+@g11 = global i32 0, comdat($g10)
+
+; CHECK: D--WI--- _a1
+; CHECK-NEXT: comdat _g9
; CHECK-NEXT: fallback _g9
-@g10 = weak alias i32, i32* @g9
+@a1 = weak alias i32, i32* @g9
OpenPOWER on IntegriCloud