[all-commits] [llvm/llvm-project] 4539b4: [Reland][Debuginfo][llvm-dwarfutil] llvm-dwarfutil...

avl-llvm via All-commits all-commits at lists.llvm.org
Tue Jul 19 05:16:40 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4539b44148918c332ff966a2a955aca0ab93dde4
      https://github.com/llvm/llvm-project/commit/4539b44148918c332ff966a2a955aca0ab93dde4
  Author: Alexey Lapshin <a.v.lapshin at mail.ru>
  Date:   2022-07-19 (Tue, 19 Jul 2022)

  Changed paths:
    M llvm/docs/CommandGuide/index.rst
    A llvm/docs/CommandGuide/llvm-dwarfutil.rst
    M llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
    M llvm/lib/DWARFLinker/DWARFLinker.cpp
    M llvm/lib/DWARFLinker/DWARFLinkerCompileUnit.cpp
    M llvm/test/CMakeLists.txt
    M llvm/test/lit.cfg.py
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/Inputs/common.yaml
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/copy-itself.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/copy.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/error-separate-file-stdout.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/gc-bfd.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/gc-class.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/gc-default.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/gc-exec.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/gc-maxpc.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/gc-no-garbage.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/lit.local.cfg
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/odr-fwd-declaration.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/separate-debug-file.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/verbose.test
    A llvm/test/tools/llvm-dwarfutil/ELF/X86/verify.test
    A llvm/test/tools/llvm-dwarfutil/error-invalid-format.test
    A llvm/test/tools/llvm-dwarfutil/error-no-gc-odr.test
    A llvm/test/tools/llvm-dwarfutil/error-no-input-file.test
    A llvm/test/tools/llvm-dwarfutil/error-positional-args.test
    A llvm/test/tools/llvm-dwarfutil/error-unknown-option.test
    A llvm/test/tools/llvm-dwarfutil/error-unknown-tombstone.test
    A llvm/test/tools/llvm-dwarfutil/error-unsupported-input-file.test
    A llvm/test/tools/llvm-dwarfutil/help.test
    A llvm/tools/llvm-dwarfutil/CMakeLists.txt
    A llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp
    A llvm/tools/llvm-dwarfutil/DebugInfoLinker.h
    A llvm/tools/llvm-dwarfutil/Error.h
    A llvm/tools/llvm-dwarfutil/Options.h
    A llvm/tools/llvm-dwarfutil/Options.td
    A llvm/tools/llvm-dwarfutil/llvm-dwarfutil.cpp

  Log Message:
  -----------
  [Reland][Debuginfo][llvm-dwarfutil] llvm-dwarfutil dsymutil-like tool for ELF.

This patch implements proposal https://lists.llvm.org/pipermail/llvm-dev/2020-August/144579.html
llvm-dwarfutil - is a tool that is used for processing debug info(DWARF) located in built binary files to improve debug info quality, reduce debug info size. The patch currently implements smaller set of command-line options(comparing to the proposal):

```
./llvm-dwarfutil [options] <input file> <output file>

  --garbage-collection    Do garbage collection for debug info(default)
  -j <value>              Alias for --num-threads
  --no-garbage-collection Don`t do garbage collection for debug info
  --no-odr-deduplication  Don`t do ODR deduplication for debug types
  --no-odr                Alias for --no-odr-deduplication
  --no-separate-debug-file
                          Create single output file, containing debug tables(default)
  --num-threads <threads> Number of available threads for multi-threaded execution. Defaults to the number of cores on the current machine
  --odr-deduplication     Do ODR deduplication for debug types(default)
  --odr                   Alias for --odr-deduplication
  --separate-debug-file   Create two output files: file w/o debug tables and file with debug tables
  --tombstone [bfd,maxpc,exec,universal]
                          Tombstone value used as a marker of invalid address(default: universal)
    =bfd - Zero for all addresses and [1,1] for DWARF v4 (or less) address ranges and exec
    =maxpc - Minus 1 for all addresses and minus 2 for DWARF v4 (or less) address ranges
    =exec - Match with address ranges of executable sections
    =universal - Both: bfd and maxpc
```

Reviewed By: clayborg

Differential Revision: https://reviews.llvm.org/D86539




More information about the All-commits mailing list