[PATCH] D113167: [lld-macho]Allow exporting weak_def_can_be_hidden(AKA "autohide") symbols

Shoaib Meenai via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 12 15:20:20 PST 2021


smeenai added a comment.

In D113167#3126069 <https://reviews.llvm.org/D113167#3126069>, @oontvoo wrote:

> - re-arrange the condition a bit.
> - also parallelize scanning the symbol tables in export/unexport-ing. This shows a small improvment in our internal apps:
>
>   x ./LLD_no_parallel.txt
>   + ./LLD_with_parallel.txt
>   +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
>   |      +                                                                                                                                     x                        |
>   |+++   +++  +      +   +                                                                                          x                     x    x  x             x  x xxx|
>   | |_____MA______|                                                                                                                   |________________A________M______||
>   +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
>       N           Min           Max        Median           Avg        Stddev
>   x  10         84.01         89.41         88.64        87.693     1.7424061
>   +  10          71.9         74.29         72.63        72.753    0.77734663
>   Difference at 95.0% confidence
>   	-14.94 +/- 1.26763
>   	-17.0367% +/- 1.44553%
>   	(Student's t, pooled s = 1.34912)

Am I reading that table incorrectly, or do you consider a 17% improvement to be small? :)



================
Comment at: lld/MachO/Symbols.h:163
 
+  bool weakDefCanBeHidden : 1;
+
----------------
int3 wrote:
> hmm, this brings us to 9 bits of booleans :/
> 
> probably fine in practice, but maybe do a quick benchmark before landing this
It won't change the size of the struct, cos of padding. Turns out these structs are laid out suboptimally with regards to padding though; I'll put up a diff to fix that.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D113167



More information about the llvm-commits mailing list