That way, it's done only once instead of every time shouldExportSymbol() is
called.
Possibly a bit faster:
% ministat at_main at_symtodo x at_main + at_symtodo N Min Max Median Avg Stddev x 30 3.9732189 4.114846 4.024621 4.0304692 0.037022865 + 30 3.93766 4.0510042 3.9973931 3.991469 0.028472565 Difference at 95.0% confidence -0.0390002 +/- 0.0170714 -0.967635% +/- 0.423559% (Student's t, pooled s = 0.0330256)
In other runs with n=30 it makes no perf difference, so maybe it's just noise.
But being able to quickly and conveniently answer "is this symbol exported?"
is useful for fixing PR50373 and for implementing -dead_strip, so this seems
like a good change regardless.
No behavior change.
I assume that we are handling exportedSymbols after this line so we can export/unexported synthetic symbols... do we want to have a test for this to check ld64 parity? (If you think that's too obscure to bother with that's fair too)