[all-commits] [llvm/llvm-project] a195d1: [DebugInfo] Implement TAG_label entries for debug_...

Felipe de Azevedo Piovezan via All-commits all-commits at lists.llvm.org
Mon Nov 13 11:03:11 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a195d1fc6c33c203c7863f03fe1513c950d59a83
      https://github.com/llvm/llvm-project/commit/a195d1fc6c33c203c7863f03fe1513c950d59a83
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2023-11-13 (Mon, 13 Nov 2023)

  Changed paths:
    M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
    M llvm/test/DebugInfo/X86/debug-names-dwarf64.ll

  Log Message:
  -----------
  [DebugInfo] Implement TAG_label entries for debug_names (#71724)

The DWARF 5 specification says that:

> The name index must contain an entry for each debugging information
entry that
> defines a named [...] label [...].

The verifier currently verifies this, but the AsmPrinter does not add
entries for TAG_labels in debug_names. This patch addresses the issue by
ensuring we add labels in the accelerator tables once we have a fully
completed DIE for the TAG_label entry.

We also respect the spec as follows:
> DW_TAG_label debugging information entries without an address
attribute
> (DW_AT_low_pc, DW_AT_high_pc, DW_AT_ranges, or DW_AT_entry_pc) are
excluded.

The effect of this on the size of accelerator tables is minimal, as
TAG_labels are usually created by C/C++ labels (see example in test),
which are typically paired with "goto" statements.




More information about the All-commits mailing list