[PATCH] D33540: [PM/ThinLTO] Port the ThinLTO pipeline (both components) to the new PM.

Xinliang David Li via llvm-commits llvm-commits at lists.llvm.org
Fri May 26 09:55:34 PDT 2017


I think Chandler was talking about partial inlining in the PM, not the
regular inline pass.

David

On Fri, May 26, 2017 at 9:44 AM, Mehdi AMINI via Phabricator <
reviews at reviews.llvm.org> wrote:

> mehdi_amini added a comment.
>
> In https://reviews.llvm.org/D33540#765031, @chandlerc wrote:
>
> > In https://reviews.llvm.org/D33540#764937, @davidxl wrote:
> >
> > > For partial inlining, leave it consistent with old PM for now.   We
> can introduce later an internal option to enable/disable pre-thin-link
> partial inlining and collect more performance number.
> >
> >
> > Is there a rationale for the position in the old PM? Was this discussed
> somewhere?
>
>
> Do you really think I flipped a coin? `git log`/`git blame` easily find
> the original review that introduced the ThinLTO pipeline:
> http://reviews.llvm.org/D17115
>
> > I'd almost rather adjust the position in the old PM to be consistent
> with here.
>
> What data do you have? Your intuition alone is not a reason to go over the
> extensive tests we've been doing before setting it up the way it is. The
> pipeline is what it is now because I started with the same "intuition" and
> "rational" as you do, and tried to not perform inlining. However I did a
> bunch of measurement before landing it, and had to realize that (at that
> time at least), the bitcode was much larger, there were more functions to
> be imported, and it slowed down the compile time significantly (I'm not
> saying it is still the case, I don't know, but I don't see data here).
>
> See also later tweaking in:  http://reviews.llvm.org/D19773 that shifted
> more work from the thin-backend to the compile phase, which helped a lot
> building LLVM (since the compile-phase happens once per file while the
> Thin-backends run for every binary that is linked).
>
>
>
> ================
> Comment at: include/llvm/Passes/PassBuilder.h:256
> +  buildThinLTOPreLinkDefaultPipeline(OptimizationLevel Level,
> +                                     bool DebugLogging = false);
> +
> ----------------
> It is the first time I see "prelink" to describe the compile phase. I find
> this confusing. The "link" happens after ThinLTO, we never link the IR in
> ThinLTO.
>
>
> https://reviews.llvm.org/D33540
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170526/7c9c713a/attachment.html>


More information about the llvm-commits mailing list