Supersize: Create aliases for inline symbols
If a symbol was found in multiple object files, we would previously have changed its object path to be the common ancestor of all paths it appeared in. This is a problem because it would cause queries based on path to not find these symbols. On the flip side, we were creating string literal aliases for every path a string literal appeared in. For small strings such as "", or "\n", this would lead to an unreasonable number of aliases. This changes supersize to first create symbols for all paths, and then collapse groups with a large number of aliases into a single symbol with ancestor paths. Before this change: .text: 48998 symbols have shared ownership (1553806 bytes) .rodata: 541 symbols have shared ownership (285728 bytes) After: .text: 1586 symbols have shared ownership (48252 bytes) .rodata: 141 symbols have shared ownership (2828 bytes) This increases the symbol count 702115->912322 and the file size 9.67mb->10.39mb. This increases the runtime on my machine from ~40s -> ~42s. Bug: 776032 Change-Id: I457361762b1f241f114b52464812e6035e881538 Reviewed-on: https://chromium-review.googlesource.com/726460 Commit-Queue: agrieve <agrieve@chromium.org> Reviewed-by:Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#510205}
Showing
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment