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

Mehdi Amini via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 15 16:11:41 PDT 2016



Sent from my iPhone

> On Jun 15, 2016, at 3:16 PM, Xinliang David Li <davidxl at google.com> wrote:
> 
> 
> 
>> On Wed, Jun 15, 2016 at 3:09 PM, Sean Silva <chisophugis at gmail.com> wrote:
>> silvas added a comment.
>> 
>> In http://reviews.llvm.org/D21405#459242, @mehdi_amini wrote:
>> 
>> > 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.
>> 
>> 
>> This was one of my initial concerns too: http://lists.llvm.org/pipermail/llvm-dev/2015-August/089058.html
>> Jake and I (actually mostly Jake) did some basic measurements related to this and did not find any significant difference.
>> 
>> Rong also did some measurements related to this in the initial RFC thread: http://lists.llvm.org/pipermail/llvm-dev/2015-August/089425.html
>> 
>> I agree though: generally speaking, we should avoid running too many passes before instrumentation precisely because they cause divergence between the PGO and non-PGO pipelines
> 
> 
> I agree that we should limit the difference to the minimal required, but keeping two completely different compilation modes (e.g. PGO vs nonPGO, O3 vs O2 etc) pipeline identical should be a non-goal.


Can you elaborate? I have a different intuition.

Thanks,

Mehdi


> 
> David
>  
>> . Thankfully Jake and I found that on our games only pre-inlining was needed (running other optimizations before instrumentation did not help significantly for our test cases beyond the benefit of just pre-inlining).
>> 
>> (note: due to PR27299, a run of simplifycfg after inlining is needed. But this run of simplifycfg doesn't really affect the performance of the instrumented build at all)
>> 
>> 
>> http://reviews.llvm.org/D21405
>> 
>> 
>> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160615/f183d81f/attachment.html>


More information about the llvm-commits mailing list