[PATCH] D21405: [PGO] IRPGO pre-cleanup pass changes

Xinliang David Li via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 15 14:27:06 PDT 2016


On Wed, Jun 15, 2016 at 2:08 PM, Mehdi AMINI <mehdi.amini at apple.com> wrote:

> mehdi_amini added a comment.
>
> I really don't like the fact that the PGO pipeline will be different from
> the non-PGO pipeline (other than what is required for instrumentations). I
> wonder what other people will think of that.
>


See discussions in the original RFC. The pre-cleanup is the basic
requirement to reduce the amount of instrumentation needed for low runtime
overhead. It also improves the quality of the profile data due to the split
contexts.  This is in fact one of biggest strengths of IR PGO compared with
FE PGO is the ability to do so.  On the other hand, if this change helps
performance for non-PGO case, we can probably consider it for O3 but that
is a different topic to discuss.

thanks,

David


>
>
> ================
> Comment at: lib/Transforms/IPO/PassManagerBuilder.cpp:128
> @@ -121,1 +127,3 @@
> +                      cl::desc("Disable pre-instrumentation inliner"));
> +
>  PassManagerBuilder::PassManagerBuilder() {
> ----------------
> Why two options?
>
> ================
> Comment at: lib/Transforms/IPO/PassManagerBuilder.cpp:228
> @@ +227,3 @@
> +  return 75;
> +}
> +
> ----------------
> These seem pretty arbitrary numbers?
>
> ================
> Comment at: lib/Transforms/IPO/PassManagerBuilder.cpp:245
> @@ -214,1 +244,3 @@
> +    addExtensionsToPM(EP_Peephole, MPM);
> +  }
>    if (!PGOInstrGen.empty()) {
> ----------------
> Where is this list coming from? How is it computed?
>
>
> http://reviews.llvm.org/D21405
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160615/44b452df/attachment.html>


More information about the llvm-commits mailing list