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

Mehdi AMINI via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 26 22:32:52 PDT 2017


mehdi_amini added a comment.

In https://reviews.llvm.org/D33540#766416, @chandlerc wrote:

> Yeah, sorry, this all only makes sense for *partial inlining*, not for the rest of it. Anyways... Sorry for confusion.


Well, that was my bad for misunderstanding the context of your discussion! :)



================
Comment at: include/llvm/Passes/PassBuilder.h:256
+  buildThinLTOPreLinkDefaultPipeline(OptimizationLevel Level,
+                                     bool DebugLogging = false);
+
----------------
chandlerc wrote:
> mehdi_amini wrote:
> > 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.
> We don't link the IR, but we do something called 'thin link' which this is before, and so 'pre-link' didn't seem completely crazy to me.
> 
> It also has the advantage of matching the terminology used for normal LTO...
> 
> But I'm totally open to a better set of terminology here if you have some in mind. I'm worried that 'compile' may be too generic, but maybe it isn't. Thoughts?
I can just speak to myself: when I read "link" without more precision I think about the native link, that happens after LTO completes, so pre-link makes me think about right before it. But if I'm the only one to read it this way, forget it.

I never liked any of the naming around ThinLTO anyway: the `backends` without more precision are confusing with the LLVM target backends as well, and as you mention `compile` is quite generic and confusing. I try to be consistent and say "compile phase" and "thin backends" all the time when I have to refer to these.


https://reviews.llvm.org/D33540





More information about the llvm-commits mailing list