mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-05 12:31:33 +00:00
76bdd01e0e
This patch unifies the comdat and non-comdat code paths. By doing this it add missing features to the comdat side and removes the fixed section assumptions from the non-comdat side. In ELF there is no one true section for "4 byte mergeable" constants. We are better off computing the required properties of the section and asking the context for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230411 91177308-0d34-0410-b5e6-96231b3b80d8
47 lines
1.5 KiB
LLVM
47 lines
1.5 KiB
LLVM
; RUN: llc < %s -mtriple=i386-unknown-linux | FileCheck %s -check-prefix=LINUX
|
|
; RUN: llc < %s -mtriple=i386-unknown-linux -data-sections -function-sections | FileCheck %s -check-prefix=LINUX-SECTIONS
|
|
; RUN: llc < %s -mtriple=i386-unknown-linux -data-sections -function-sections -unique-section-names=false | FileCheck %s -check-prefix=LINUX-SECTIONS-SHORT
|
|
|
|
$F1 = comdat any
|
|
define void @F1(i32 %y) comdat {
|
|
bb0:
|
|
switch i32 %y, label %bb5 [
|
|
i32 1, label %bb1
|
|
i32 2, label %bb2
|
|
i32 3, label %bb3
|
|
i32 4, label %bb4
|
|
]
|
|
bb1:
|
|
ret void
|
|
bb2:
|
|
ret void
|
|
bb3:
|
|
ret void
|
|
bb4:
|
|
ret void
|
|
bb5:
|
|
ret void
|
|
}
|
|
|
|
; LINUX: .section .text.F1,"axG",@progbits,F1,comdat
|
|
; LINUX: .size F1,
|
|
; LINUX-NEXT: .cfi_endproc
|
|
; LINUX-NEXT: .section .rodata.F1,"aG",@progbits,F1,comdat
|
|
|
|
; LINUX-SECTIONS: .section .text.F1,"axG",@progbits,F1,comdat
|
|
; LINUX-SECTIONS: .size F1,
|
|
; LINUX-SECTIONS-NEXT: .cfi_endproc
|
|
; LINUX-SECTIONS-NEXT: .section .rodata.F1,"aG",@progbits,F1,comdat
|
|
|
|
; LINUX-SECTIONS-SHORT: .section .text,"axG",@progbits,F1,comdat
|
|
; LINUX-SECTIONS-SHORT: .size F1,
|
|
; LINUX-SECTIONS-SHORT-NEXT: .cfi_endproc
|
|
; LINUX-SECTIONS-SHORT-NEXT: .section .rodata,"aG",@progbits,F1,comdat
|
|
|
|
$G16 = comdat any
|
|
@G16 = unnamed_addr constant i32 42, comdat
|
|
|
|
; LINUX: .section .rodata.cst4.G16,"aGM",@progbits,4,G16,comdat
|
|
; LINUX-SECTIONS: .section .rodata.cst4.G16,"aGM",@progbits,4,G16,comdat
|
|
; LINUX-SECTIONS-SHORT: .section .rodata.cst4,"aGM",@progbits,4,G16,comdat
|