[PATCH] D89099: [lld][ELF] Rewrite ICF-folded references rather than tombstoning them

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 9 18:46:31 PDT 2020


dblaikie added a comment.

Does anyone have examples of common DWARF consumers producing CUs with overlapping ranges? Might help inform this feature/implementation choice.

In D89099#2322029 <https://reviews.llvm.org/D89099#2322029>, @MaskRay wrote:

> We decided to use a tombstone value because multiple CUs with overlapping address ranges and shared entities are problematic (PR47150#comment3).
> The main reason we exclude .debug_info is because breaking points do not work on folded functions (D82828 <https://reviews.llvm.org/D82828>).

Though in doing so we created another inconsistency - where instructions described in debug_line overlap, but aren't covered by the debug_info CU's address range description (DW_AT_low/high_pc or DW_AT_ranges).

> The patch will revert all ICF related behavior and make us go back to square one (if we do this, I don't see the value of `!isDebug`) and cause confusion to DWARF consumers.
> Do we need this? From https://bugs.llvm.org//show_bug.cgi?id=47150#c5 this is a bug in llvm-gsymutil.

Sounds like @phosek is looking to address things on a few different fronts - trying to make the DWARF more consistent (though not without other problems of more significantly overlapping CUs) while also pursuing an llvm-gsymutil improvement as well.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89099/new/

https://reviews.llvm.org/D89099



More information about the llvm-commits mailing list