[PATCH] D93082: Append ".__part.<ID>" to all basic block section symbols.

Sriraman Tallam via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 22 16:56:59 PST 2020


tmsriram added a comment.

In D93082#2469154 <https://reviews.llvm.org/D93082#2469154>, @MaskRay wrote:

> `.L` prefixed symbols will be discarded by the linker in the default mode (none of --discard-none/--discard-locals/--discard-all is specified).
> So if you use `.L` (called PrivateGlobalPrefix in MC), this will work without any linker change (if possible I would hope we just make use of existing conventions instead of adding more linker rules).
> For the string `__uniq` and `__part`, I am fine with them and actually prefer them if you have measured that they don't cause too mush bloat. The names are clearer than other alternatives like unary coding and special code points (e.g. LLVM IR names make use of `\1`)
>
>> With full basic block sections, the object size bloat from section table outweighs the bloats from strtab and symtab.
>
> `sizeof(Elf64_Shdr) = 64`. A C++ mangled symbol name can be longer than it, but I don't know the average length.

This is a good point. We have looked at unary encoding / moving symbol mapping to separate sections.  We are brainstorming this and we will keep you posted.  Maybe there is a nice compressed representation we can build.


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

https://reviews.llvm.org/D93082



More information about the llvm-commits mailing list