[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