summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-03-25 06:14:26 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-03-25 06:14:26 +0000
commit273bff4713735f8a2324addf876d9b59e4243023 (patch)
tree78ecb023d6998334dc46c6ac1be21c6d2870bf6e /llvm/test
parent3ffe4dd67f004ff4fa9d563f957889288519a243 (diff)
downloadbcm5719-llvm-273bff4713735f8a2324addf876d9b59e4243023.tar.gz
bcm5719-llvm-273bff4713735f8a2324addf876d9b59e4243023.zip
WinCOFF: Add support for -fdata-sections
This is a pretty straight forward translation for COFF, we just need to stick the data in a COMDAT section marked as IMAGE_COMDAT_SELECT_NODUPLICATES. N.B. We must be careful to avoid sticking entities with private linkage in COMDAT groups. COFF is pretty hostile to the renaming of entities so we must be careful to disallow GlobalVariables with unstable names. llvm-svn: 204703
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/X86/global-sections.ll22
1 files changed, 16 insertions, 6 deletions
diff --git a/llvm/test/CodeGen/X86/global-sections.ll b/llvm/test/CodeGen/X86/global-sections.ll
index c768c303c87..5ad504719fc 100644
--- a/llvm/test/CodeGen/X86/global-sections.ll
+++ b/llvm/test/CodeGen/X86/global-sections.ll
@@ -3,8 +3,14 @@
; RUN: llc < %s -mtriple=i386-apple-darwin10 -relocation-model=static | FileCheck %s -check-prefix=DARWIN-STATIC
; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck %s -check-prefix=DARWIN64
; RUN: llc < %s -mtriple=i386-unknown-linux-gnu -fdata-sections | FileCheck %s -check-prefix=LINUX-SECTIONS
-; RUN: llc < %s -mtriple=i686-pc-win32 -ffunction-sections | FileCheck %s -check-prefix=WIN32-SECTIONS
+; RUN: llc < %s -mtriple=i686-pc-win32 -fdata-sections -ffunction-sections | FileCheck %s -check-prefix=WIN32-SECTIONS
+define void @F1() {
+ ret void
+}
+
+; WIN32-SECTIONS: .section .text,"xr",one_only,_F1
+; WIN32-SECTIONS: .globl _F1
; int G1;
@G1 = common global i32 0
@@ -42,6 +48,9 @@
; LINUX-SECTIONS: .section .rodata.G3,"a",@progbits
; LINUX-SECTIONS: .globl G3
+; WIN32-SECTIONS: .section .rdata,"r",one_only,_G3
+; WIN32-SECTIONS: .globl _G3
+
; _Complex long long const G4 = 34;
@G4 = unnamed_addr constant {i64,i64} { i64 34, i64 0 }
@@ -118,6 +127,9 @@
; LINUX-SECTIONS: .section .rodata.G7,"aMS",@progbits,1
; LINUX-SECTIONS: .globl G7
+; WIN32-SECTIONS: .section .rdata,"r",one_only,_G7
+; WIN32-SECTIONS: .globl _G7
+
@G8 = unnamed_addr constant [4 x i16] [ i16 1, i16 2, i16 3, i16 0 ]
@@ -178,9 +190,7 @@
; LINUX-SECTIONS: .asciz "foo"
; LINUX-SECTIONS: .size .LG14, 4
-define void @G15() {
- ret void
-}
+; WIN32-SECTIONS: .section .rdata,"r"
+; WIN32-SECTIONS: L_G14:
+; WIN32-SECTIONS: .asciz "foo"
-; WIN32-SECTIONS: .section .text,"xr",one_only,_G15
-; WIN32-SECTIONS: .globl _G15
OpenPOWER on IntegriCloud