mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-13 17:38:39 +00:00
Reorder the sections being output to reduce the number of assembler
fixups that are being used to determine section offsets. Reduces the total number of fixups by 50% for a non-trivial testcase. Part of rdar://10413936 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151852 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e751c0069a
commit
12313a56ec
@ -804,6 +804,9 @@ void DwarfDebug::endModule() {
|
|||||||
// Compute DIE offsets and sizes.
|
// Compute DIE offsets and sizes.
|
||||||
computeSizeAndOffsets();
|
computeSizeAndOffsets();
|
||||||
|
|
||||||
|
// Emit info into a debug str section.
|
||||||
|
emitDebugStr();
|
||||||
|
|
||||||
// Emit all the DIEs into a debug info section
|
// Emit all the DIEs into a debug info section
|
||||||
emitDebugInfo();
|
emitDebugInfo();
|
||||||
|
|
||||||
@ -836,9 +839,6 @@ void DwarfDebug::endModule() {
|
|||||||
// Emit inline info.
|
// Emit inline info.
|
||||||
emitDebugInlineInfo();
|
emitDebugInlineInfo();
|
||||||
|
|
||||||
// Emit info into a debug str section.
|
|
||||||
emitDebugStr();
|
|
||||||
|
|
||||||
// clean up.
|
// clean up.
|
||||||
DeleteContainerSeconds(DeadFnScopeMap);
|
DeleteContainerSeconds(DeadFnScopeMap);
|
||||||
SPMap.clear();
|
SPMap.clear();
|
||||||
|
@ -14,6 +14,14 @@
|
|||||||
!6 = metadata !{i32 720937, metadata !"z.c", metadata !"/home/nicholas", null} ; [ DW_TAG_file_type ]
|
!6 = metadata !{i32 720937, metadata !"z.c", metadata !"/home/nicholas", null} ; [ DW_TAG_file_type ]
|
||||||
!7 = metadata !{i32 720932, null, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
|
!7 = metadata !{i32 720932, null, metadata !"int", null, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
|
||||||
|
|
||||||
|
; Verify that "yyyy" ended up in the stringpool.
|
||||||
|
; LINUX: .section .debug_str,"MS",@progbits,1
|
||||||
|
; LINUX: yyyy
|
||||||
|
; LINUX: .section .debug_info
|
||||||
|
; DARWIN: .section __DWARF,__debug_str,regular,debug
|
||||||
|
; DARWIN: yyyy
|
||||||
|
; DARWIN: .section __DWARF,__debug_info
|
||||||
|
|
||||||
; Verify that we refer to 'yyyy' with a relocation.
|
; Verify that we refer to 'yyyy' with a relocation.
|
||||||
; LINUX: .long .Lstring3 # DW_AT_name
|
; LINUX: .long .Lstring3 # DW_AT_name
|
||||||
; LINUX-NEXT: .long 39 # DW_AT_type
|
; LINUX-NEXT: .long 39 # DW_AT_type
|
||||||
@ -34,11 +42,3 @@
|
|||||||
; DARWIN-NEXT: .byte 9 ## DW_AT_location
|
; DARWIN-NEXT: .byte 9 ## DW_AT_location
|
||||||
; DARWIN-NEXT: .byte 3
|
; DARWIN-NEXT: .byte 3
|
||||||
; DARWIN-NEXT: .quad _yyyy
|
; DARWIN-NEXT: .quad _yyyy
|
||||||
|
|
||||||
; Verify that "yyyy" ended up in the stringpool.
|
|
||||||
; LINUX: .section .debug_str,"MS",@progbits,1
|
|
||||||
; LINUX-NOT: .section
|
|
||||||
; LINUX: yyyy
|
|
||||||
; DARWIN: .section __DWARF,__debug_str,regular,debug
|
|
||||||
; DARWIN-NOT: .section
|
|
||||||
; DARWIN: yyyy
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user