[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