rnk added a comment.

Zequan, to build clang with PGO, you can follow the steps in Chrome's script to 
build clang with PGO:
https://source.chromium.org/chromium/chromium/src/+/master:tools/clang/scripts/build.py;l=703?q=clang%2Fscripts%2F%20build.py&ss=chromium

Regarding -Oz / minsize / SizeLevel 2, what we have discovered is that *not* 
running the preinliner makes the instrumented binary almost unusably large. 
Even if 75 is the wrong inline threshold for minsize, it's better than not 
running the preinliner. I think we should run with it.



================
Comment at: llvm/lib/Transforms/IPO/PassManagerBuilder.cpp:334
   // We will not do this inline for context sensitive PGO (when IsCS is true).
-  if (OptLevel > 0 && SizeLevel == 0 && !DisablePreInliner &&
-      PGOSampleUse.empty() && !IsCS) {
+  if (OptLevel > 0 && !DisablePreInliner && PGOSampleUse.empty() && !IsCS) {
     // Create preinline pass. We construct an InlineParams object and specify
----------------
This code is duplicated for the NPM and the old PM. Please keep them in sync.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91673/new/

https://reviews.llvm.org/D91673

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to