[PATCH] D29701: ThinLTOBitcodeWriter: Write available_externally copies of VCP eligible functions to merged module.
Mehdi AMINI via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 13 19:30:44 PST 2017
mehdi_amini accepted this revision.
mehdi_amini added a comment.
This revision is now accepted and ready to land.
In https://reviews.llvm.org/D29701#675840, @pcc wrote:
> In https://reviews.llvm.org/D29701#675809, @pcc wrote:
>
> > In https://reviews.llvm.org/D29701#674285, @mehdi_amini wrote:
> >
> > > In https://reviews.llvm.org/D29701#670366, @pcc wrote:
> > >
> > > > Note: I patched in https://github.com/pcc/llvm-project/commit/5a5904d6721f895eafdd2fc476872b98806c36e6 to measure perf impact. Total wall time spent in addRegularLTO when linking chrome was 8.2743s, as compared to about 6 seconds before (see https://reviews.llvm.org/D27324).
> > >
> > >
> > > So >30% overhead on addRegularLTO, but what is the overhead for `runRegularLTO`?
> >
> >
> > Just did a fresh set of runs on chrome with https://github.com/pcc/llvm-project/commits/lto-timers patched in, and took median of 5 for each measurement:
> >
> > before after
> > addRegularLTO 8.0407s 9.7432s (+21%)
> > runRegularLTO 9.6064s 10.4748s (+9%)
> >
>
Quite interesting that we take more time to build and merge the IR than transforming and emitting code :)
================
Comment at: llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp:283-284
+ // sound because the virtual constant propagation optimizations effectively
+ // inline all implementations of the virtual function into each call site,
+ // rather than using function attributes to perform local optimization.
+ std::set<const Function *> EligibleVirtualFns;
----------------
great comments!
https://reviews.llvm.org/D29701
More information about the llvm-commits
mailing list