summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/PowerPC/coal-sections.ll24
-rw-r--r--llvm/test/CodeGen/X86/coal-sections.ll23
-rw-r--r--llvm/test/CodeGen/X86/global-sections.ll7
-rw-r--r--llvm/test/MC/MachO/coal-sections-powerpc.s46
-rw-r--r--llvm/test/MC/MachO/coal-sections-x86_64.s48
5 files changed, 144 insertions, 4 deletions
diff --git a/llvm/test/CodeGen/PowerPC/coal-sections.ll b/llvm/test/CodeGen/PowerPC/coal-sections.ll
new file mode 100644
index 00000000000..377891c4714
--- /dev/null
+++ b/llvm/test/CodeGen/PowerPC/coal-sections.ll
@@ -0,0 +1,24 @@
+; RUN: llc < %s -mtriple powerpc-apple-darwin8 -march=ppc32 | FileCheck %s
+
+; Check that *coal* sections are emitted.
+
+; CHECK: .section __TEXT,__textcoal_nt,coalesced,pure_instructions
+; CHECK: .section __TEXT,__textcoal_nt,coalesced,pure_instructions
+; CHECK-NEXT: .globl _foo
+
+; CHECK: .section __TEXT,__const_coal,coalesced
+; CHECK-NEXT: .globl _a
+
+; CHECK: .section __DATA,__datacoal_nt,coalesced
+; CHECK-NEXT: .globl _b
+
+@a = weak_odr constant [4 x i32] [i32 1, i32 2, i32 3, i32 4], align 16
+@b = weak global i32 5, align 4
+@g = common global i32* null, align 8
+
+; Function Attrs: nounwind ssp uwtable
+define weak i32* @foo() {
+entry:
+ store i32* getelementptr inbounds ([4 x i32], [4 x i32]* @a, i64 0, i64 0), i32** @g, align 8
+ ret i32* @b
+}
diff --git a/llvm/test/CodeGen/X86/coal-sections.ll b/llvm/test/CodeGen/X86/coal-sections.ll
new file mode 100644
index 00000000000..05b2a8c8bf8
--- /dev/null
+++ b/llvm/test/CodeGen/X86/coal-sections.ll
@@ -0,0 +1,23 @@
+; RUN: llc < %s -mtriple x86_64-apple-darwin | FileCheck %s
+
+; Check that *coal* sections are not emitted.
+
+; CHECK: .section __TEXT,__text,regular,pure_instructions{{$}}
+; CHECK-NEXT: .globl _foo
+
+; CHECK: .section __TEXT,__const{{$}}
+; CHECK-NEXT: .globl _a
+
+; CHECK: .section __DATA,__data{{$}}
+; CHECK-NEXT: .globl _b
+
+@a = weak_odr constant [4 x i32] [i32 1, i32 2, i32 3, i32 4], align 16
+@b = weak global i32 5, align 4
+@g = common global i32* null, align 8
+
+; Function Attrs: nounwind ssp uwtable
+define weak i32* @foo() {
+entry:
+ store i32* getelementptr inbounds ([4 x i32], [4 x i32]* @a, i64 0, i64 0), i32** @g, align 8
+ ret i32* @b
+}
diff --git a/llvm/test/CodeGen/X86/global-sections.ll b/llvm/test/CodeGen/X86/global-sections.ll
index 82547a60674..92440f2b331 100644
--- a/llvm/test/CodeGen/X86/global-sections.ll
+++ b/llvm/test/CodeGen/X86/global-sections.ll
@@ -117,7 +117,7 @@ bb7:
; TODO: linux drops this into .rodata, we drop it into ".gnu.linkonce.r.G2"
-; DARWIN: .section __TEXT,__const_coal,coalesced
+; DARWIN: .section __TEXT,__const{{$}}
; DARWIN: _G2:
; DARWIN: .long 42
@@ -176,7 +176,6 @@ bb7:
; LINUX: .weak "foo bar"
; LINUX: "foo bar":
-; DARWIN: .section __DATA,__datacoal_nt,coalesced
; DARWIN: .globl "_foo bar"
; DARWIN: .weak_definition "_foo bar"
; DARWIN: "_foo bar":
@@ -190,7 +189,7 @@ bb7:
; LINUX: .byte 1
; LINUX: .size G6, 1
-; DARWIN: .section __TEXT,__const_coal,coalesced
+; DARWIN: .section __TEXT,__const{{$}}
; DARWIN: .globl _G6
; DARWIN: .weak_definition _G6
; DARWIN:_G6:
@@ -239,7 +238,7 @@ bb7:
@G10 = weak global [100 x i32] zeroinitializer, align 32 ; <[100 x i32]*> [#uses=0]
-; DARWIN: .section __DATA,__datacoal_nt,coalesced
+; DARWIN: .section __DATA,__data{{$}}
; DARWIN: .globl _G10
; DARWIN: .weak_definition _G10
; DARWIN: .align 5
diff --git a/llvm/test/MC/MachO/coal-sections-powerpc.s b/llvm/test/MC/MachO/coal-sections-powerpc.s
new file mode 100644
index 00000000000..1c3dc37d5bd
--- /dev/null
+++ b/llvm/test/MC/MachO/coal-sections-powerpc.s
@@ -0,0 +1,46 @@
+// RUN: llvm-mc -triple powerpc-apple-darwin8 -arch=ppc32 -filetype=obj %s -o - | llvm-readobj -sections | FileCheck %s
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 0
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 1
+// CHECK-NEXT: Name: __textcoal_nt (
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 2
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 3
+// CHECK-NEXT: Name: __const_coal (
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 4
+// CHECK-NEXT: Name: __datacoal_nt (
+
+ .section __TEXT,__text,regular,pure_instructions
+ .machine ppc
+ .section __TEXT,__textcoal_nt,coalesced,pure_instructions
+ .section __TEXT,__symbol_stub1,symbol_stubs,pure_instructions,16
+ .section __TEXT,__text,regular,pure_instructions
+ .section __TEXT,__textcoal_nt,coalesced,pure_instructions
+ .globl _foo
+ .weak_definition _foo
+ .align 4
+_foo:
+ blr
+
+.subsections_via_symbols
+ .section __TEXT,__const_coal,coalesced
+ .globl _a ; @a
+ .weak_definition _a
+ .align 4
+_a:
+ .long 1 ; 0x1
+
+ .section __DATA,__datacoal_nt,coalesced
+ .globl _b ; @b
+ .weak_definition _b
+ .align 2
+_b:
+ .long 5 ; 0x5
diff --git a/llvm/test/MC/MachO/coal-sections-x86_64.s b/llvm/test/MC/MachO/coal-sections-x86_64.s
new file mode 100644
index 00000000000..5ecdc578dbb
--- /dev/null
+++ b/llvm/test/MC/MachO/coal-sections-x86_64.s
@@ -0,0 +1,48 @@
+// RUN: llvm-mc -triple x86_64-apple-darwin -filetype=obj %s -o - 2>%t.err | llvm-readobj -sections | FileCheck %s
+// RUN: FileCheck --check-prefix=WARNING < %t.err %s
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 0
+// CHECK-NEXT: Name: __text (
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 1
+// CHECK-NEXT: Name: __textcoal_nt (
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 2
+// CHECK-NEXT: Name: __const_coal (
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 3
+// CHECK-NEXT: Name: __datacoal_nt (
+
+// WARNING: warning: section "__textcoal_nt" is deprecated
+// WARNING: note: change section name to "__text"
+// WARNING: warning: section "__const_coal" is deprecated
+// WARNING: note: change section name to "__const"
+// WARNING: warning: section "__datacoal_nt" is deprecated
+// WARNING: note: change section name to "__data"
+
+ .section __TEXT,__textcoal_nt,coalesced,pure_instructions
+ .globl _foo
+ .weak_definition _foo
+ .align 4, 0x90
+_foo:
+ retq
+
+ .section __TEXT,__const_coal,coalesced
+ .globl _a ## @a
+ .weak_definition _a
+ .align 4
+_a:
+ .long 1 ## 0x1
+
+ .section __DATA,__datacoal_nt,coalesced
+ .globl _b ## @b
+ .weak_definition _b
+ .align 2
+_b:
+ .long 5 ## 0x5
+
+.subsections_via_symbols
OpenPOWER on IntegriCloud