mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
9e4e3d057f
To reduce the size of -gmlt data, skip the subprograms without any inlined subroutines. Since we've now got the ability to make these determinations in the backend (funnily enough - we added the flag so we wouldn't produce ranges under -gmlt, but with this change we use the flag, but go back to producing ranges under -gmlt). Instead, just produce CU ranges to inform the consumer which parts of the code are described by this CU's line table. Tools could inspect the line table directly to compute the range, but the CU ranges only seem to be about 0.5% of object/executable size, so I'm not too worried about teaching llvm-symbolizer that trick just yet - it's certainly a possible piece of future work. Update an llvm-symbolizer test just to demonstrate that this schema is acceptable there (if it wasn't, the compiler-rt tests would catch this, but good to have an in-llvm-tree test for llvm-symbolizer's behavior here) Building the clang binary with -gmlt with this patch reduces the total size of object files by 5.1% (5.56% without ranges) without compression and the executable by 4.37% (4.75% without ranges). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218129 91177308-0d34-0410-b5e6-96231b3b80d8
155 lines
4.9 KiB
Plaintext
155 lines
4.9 KiB
Plaintext
RUN: echo "%p/Inputs/dwarfdump-test.elf-x86-64 0x400559" > %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-test.elf-x86-64.debuglink 0x400559" >> %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-test.elf-x86-64 0x400436" >> %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-test.elf-x86-64 0x400528" >> %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-test.elf-x86-64 0x400586" >> %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-test2.elf-x86-64 0x4004e8" >> %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-test2.elf-x86-64 0x4004f4" >> %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-test4.elf-x86-64 0x62c" >> %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-inl-test.elf-x86-64 0x8dc" >> %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-inl-test.elf-x86-64 0xa05" >> %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-inl-test.elf-x86-64 0x987" >> %t.input
|
|
RUN: echo "%p/Inputs/dwarfdump-inl-test.high_pc.elf-x86-64 0x568" >> %t.input
|
|
RUN: echo "\"%p/Inputs/dwarfdump-test3.elf-x86-64 space\" 0x640" >> %t.input
|
|
RUN: echo "\"%p/Inputs/dwarfdump-test3.elf-x86-64 space\" 0x633" >> %t.input
|
|
RUN: echo "\"%p/Inputs/dwarfdump-test3.elf-x86-64 space\" 0x62d" >> %t.input
|
|
RUN: echo "%p/Inputs/macho-universal 0x1f84" >> %t.input
|
|
RUN: echo "%p/Inputs/macho-universal:i386 0x1f67" >> %t.input
|
|
RUN: echo "%p/Inputs/macho-universal:x86_64 0x100000f05" >> %t.input
|
|
RUN: echo "%p/Inputs/llvm-symbolizer-dwo-test 0x400514" >> %t.input
|
|
RUN: echo "%p/Inputs/fission-ranges.elf-x86_64 0x720" >> %t.input
|
|
RUN: echo "%p/Inputs/arange-overlap.elf-x86_64 0x714" >> %t.input
|
|
RUN: cp %p/Inputs/split-dwarf-test.dwo %T
|
|
RUN: echo "%p/Inputs/split-dwarf-test 0x4004d0" >> %t.input
|
|
RUN: echo "%p/Inputs/split-dwarf-test 0x4004c0" >> %t.input
|
|
|
|
RUN: llvm-symbolizer --functions=linkage --inlining --demangle=false \
|
|
RUN: --default-arch=i386 < %t.input | FileCheck %s
|
|
|
|
REQUIRES: shell
|
|
|
|
CHECK: main
|
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:16
|
|
|
|
CHECK: main
|
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:16
|
|
|
|
CHECK: _start
|
|
|
|
CHECK: _Z1fii
|
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:11
|
|
|
|
CHECK: DummyClass
|
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:4
|
|
|
|
CHECK: a
|
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test2-helper.cc:2
|
|
|
|
CHECK: main
|
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test2-main.cc:4
|
|
|
|
CHECK: _Z1cv
|
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test4-part1.cc:2
|
|
|
|
CHECK: inlined_h
|
|
CHECK-NEXT: dwarfdump-inl-test.h:2
|
|
CHECK-NEXT: inlined_g
|
|
CHECK-NEXT: dwarfdump-inl-test.h:7
|
|
CHECK-NEXT: inlined_f
|
|
CHECK-NEXT: dwarfdump-inl-test.cc:3
|
|
CHECK-NEXT: main
|
|
CHECK-NEXT: dwarfdump-inl-test.cc:8
|
|
|
|
CHECK: inlined_g
|
|
CHECK-NEXT: dwarfdump-inl-test.h:7
|
|
CHECK-NEXT: inlined_f
|
|
CHECK-NEXT: dwarfdump-inl-test.cc:3
|
|
CHECK-NEXT: main
|
|
CHECK-NEXT: dwarfdump-inl-test.cc:8
|
|
|
|
CHECK: inlined_f
|
|
CHECK-NEXT: dwarfdump-inl-test.cc:3
|
|
CHECK-NEXT: main
|
|
CHECK-NEXT: dwarfdump-inl-test.cc:8
|
|
|
|
CHECK: inlined_h
|
|
CHECK-NEXT: dwarfdump-inl-test.h:3
|
|
CHECK-NEXT: inlined_g
|
|
CHECK-NEXT: dwarfdump-inl-test.h:7
|
|
CHECK-NEXT: inlined_f
|
|
CHECK-NEXT: dwarfdump-inl-test.cc:3
|
|
CHECK-NEXT: main
|
|
CHECK-NEXT: dwarfdump-inl-test.cc:8
|
|
|
|
CHECK: C
|
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test3.cc:3
|
|
|
|
CHECK: _Z3do1v
|
|
CHECK-NEXT: /tmp/include{{[/\\]}}dwarfdump-test3-decl.h:7
|
|
|
|
CHECK: _Z3do2v
|
|
CHECK-NEXT: /tmp/dbginfo{{[/\\]}}include{{[/\\]}}dwarfdump-test3-decl2.h:1
|
|
|
|
CHECK: main
|
|
CHECK: _Z3inci
|
|
CHECK: _Z3inci
|
|
|
|
CHECK: main
|
|
CHECK-NEXT: llvm-symbolizer-dwo-test.cc:11
|
|
|
|
CHECK: main
|
|
CHECK-NEXT: {{.*}}fission-ranges.cc:6
|
|
|
|
CHECK: _ZN1S3bazEv
|
|
CHECK-NEXT: {{.*}}arange-overlap.cc:6
|
|
|
|
CHECK: _Z3fooi
|
|
CHECK-NEXT: {{.*}}split-dwarf-test.cc
|
|
CHECK-NEXT: main
|
|
CHECK-NEXT: {{.*}}split-dwarf-test.cc
|
|
|
|
CHECK: _Z3fooi
|
|
CHECK-NEXT: {{.*}}split-dwarf-test.cc
|
|
|
|
RUN: echo "unexisting-file 0x1234" > %t.input2
|
|
RUN: llvm-symbolizer < %t.input2
|
|
|
|
RUN: echo "%p/Inputs/macho-universal 0x1f84" > %t.input3
|
|
RUN: llvm-symbolizer < %t.input3 | FileCheck %s --check-prefix=UNKNOWN-ARCH
|
|
|
|
UNKNOWN-ARCH-NOT: main
|
|
UNKNOWN-ARCH: ??
|
|
UNKNOWN-ARCH-NOT: main
|
|
|
|
RUN: echo "0x400559" > %t.input4
|
|
RUN: echo "0x400436" >> %t.input4
|
|
RUN: llvm-symbolizer --obj %p/Inputs/dwarfdump-test.elf-x86-64 < %t.input4 \
|
|
RUN: | FileCheck %s --check-prefix=BINARY
|
|
|
|
BINARY: main
|
|
BINARY-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:16
|
|
BINARY: _start
|
|
|
|
RUN: echo "0x400720" > %t.input5
|
|
RUN: echo "0x4004a0" >> %t.input5
|
|
RUN: echo "0x4006f0" >> %t.input5
|
|
RUN: llvm-symbolizer --obj %p/Inputs/llvm-symbolizer-test.elf-x86-64 < %t.input5 \
|
|
RUN: | FileCheck %s --check-prefix=BINARY_C
|
|
|
|
BINARY_C: main
|
|
BINARY_C-NEXT: /tmp/dbginfo{{[/\\]}}llvm-symbolizer-test.c:10
|
|
BINARY_C: _start
|
|
BINARY_C: {{g$}}
|
|
|
|
RUN: echo "0x1f1" > %t.input6
|
|
RUN: llvm-symbolizer --obj %p/Inputs/shared-object-stripped.elf-i386 < %t.input6 \
|
|
RUN: | FileCheck %s --check-prefix=STRIPPED
|
|
|
|
STRIPPED: global_func
|
|
|
|
RUN: echo "%p/Inputs/dwarfdump-test4.elf-x86-64 0x62c" > %t.input7
|
|
RUN: llvm-symbolizer --functions=short --use-symbol-table=false --demangle=false < %t.input7 \
|
|
RUN: | FileCheck %s --check-prefix=SHORT_FUNCTION_NAME
|
|
|
|
SHORT_FUNCTION_NAME-NOT: _Z1cv
|