[all-commits] [llvm/llvm-project] b66b17: Emit DW_RLE_base_addressx + DW_RLE_offset_pairs

Shubham Sandeep Rastogi via All-commits all-commits at lists.llvm.org
Tue Jul 25 16:18:21 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b66b176dc37e6d5d9b777ed1a412672e96341352
      https://github.com/llvm/llvm-project/commit/b66b176dc37e6d5d9b777ed1a412672e96341352
  Author: Shubham Sandeep Rastogi <srastogi22 at apple.com>
  Date:   2023-07-25 (Tue, 25 Jul 2023)

  Changed paths:
    M llvm/include/llvm/DWARFLinker/DWARFLinker.h
    M llvm/include/llvm/DWARFLinker/DWARFStreamer.h
    M llvm/lib/DWARFLinker/DWARFLinker.cpp
    M llvm/lib/DWARFLinker/DWARFStreamer.cpp
    M llvm/test/tools/dsymutil/ARM/dwarf5-dwarf4-combination-macho.test
    M llvm/test/tools/dsymutil/ARM/dwarf5-macho.test
    M llvm/test/tools/dsymutil/X86/dwarf5-rnglists.test
    M llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-rnglists.test

  Log Message:
  -----------
  Emit DW_RLE_base_addressx + DW_RLE_offset_pairs
instead of DW_ELE_start_length in debug_rnglists section

This patch tries to reduce the size of the debug_rnglist section by
replacing the DW_RLE_start_length opcodes currently emitted by dsymutil
in favor of using DW_RLE_base_addressx + DW_RLE_offset_pair instead.

The DW_RLE_start_length is one AddressSize followed by a ULEB per entry,
whereas, the DW_RLE_base_addressx + DW_RLE_offset_pair will use one ULEB
for the base address, and then the DW_RLE_offset_pair is a pair of
ULEBs. This will be more efficient.

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




More information about the All-commits mailing list