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

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 15 14:52:16 PDT 2016

silvas added inline comments.

Comment at: lib/Transforms/IPO/PassManagerBuilder.cpp:245
@@ -214,1 +244,3 @@
+    addExtensionsToPM(EP_Peephole, MPM);
+  }
   if (!PGOInstrGen.empty()) {
xur wrote:
> mehdi_amini wrote:
> > Where is this list coming from? How is it computed?
> I came up this list. I'm open to add most passes.
In testing our games, we did not observe a significant reduction in instrumentation overhead from adding passes after pre-inlining.

For example, we started with the set of passes initially proposed in http://reviews.llvm.org/D15828. Then we removed individual passes until there was a significant change in performance of the instrumented build. We were able to remove all of them except for the inlining pass.

I.e. only the inlining pass contributed significantly to reducing overhead of the instrumented build. I would be interested to see the results of this experiment on a subset of your benchmarks.

I believe the reason for this is that in the codebases we were testing (PS4 games), there are a very large number of calls to trivial single-BB functions (e.g. Vec4::operator+). On one codebase I analyzed, over 80% of all counts in the profile are from single-BB functions.


More information about the llvm-commits mailing list