This is an archive of the discontinued LLVM Phabricator instance.

[ThinLTOBitcodeWriter] Emit summaries for regular LTO modules
ClosedPublic

Authored by vlad.tsyrklevich on May 31 2018, 9:47 AM.

Details

Summary

Emit summaries for bitcode modules that are only destined for the
regular LTO portion of the build so they can participate in
summary-based dead stripping.

This change reduces the size of a nacl_helper build with cfi-icall
enabled by 7%, removing the majority of the overhead due to enabling
cfi-icall. The cfi-icall size increase was caused by compiling in lots
of unused code and cfi-icall generating jumptable references to unused
symbols that could no longer be removed by -Wl,-gc-sections. Increasing
the visibility of summary-based dead stripping prevented jumptable
entries being created for unused symbols from the regular LTO portion
of the build.

Diff Detail

Event Timeline

pcc accepted this revision.May 31 2018, 1:50 PM

LGTM

This revision is now accepted and ready to land.May 31 2018, 1:50 PM
This revision was automatically updated to reflect the committed changes.