[PATCH] D107800: [CSSPGO][llvm-profgen] Cap context stack to reduce memory usage

Lei Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 11 13:05:52 PDT 2021


wlei added inline comments.


================
Comment at: llvm/tools/llvm-profgen/ProfileGenerator.cpp:53
+cl::opt<int> CSProfCtxStackCap(
+    "csprof-ctx-stack-cap", cl::init(20), cl::ZeroOrMore,
+    cl::desc("Cap context stack at a given depth. No cap if the input is -1."));
----------------
wlei wrote:
> hoy wrote:
> > wenlei wrote:
> > > I think we could unify the switch names, e.g. `csprof-max-context-depth` and `csprof-max-cold-context-depth`? 
> > Thanks for working on this. We probably do not inline so many levels of functions. But would be good to run through some perf testing or to turn this off by default.
> Sounds good, will collect the statistic of the max inline depth in SampleProfile inliner on some benchmarks and change to that one, maybe 10 is good enough.  
Here is the max inline depth(a inline b, then b inline c, the depth is 2) in SPEC2017 monoLTO pass2 (turn on all inliners).

```
508.namd_r  5
510.parest_r 21
511.povray_r  8
526.blender_r 15
600.perlbench_s 8
602.gcc_s 21 
605.mcf_s 5
620.omnetpp_s 18
623.xalancbmk_s 26
625.x264_s 7
631.deepsjeng_s 5
638.imagick_s 10
641.leela_s 16
644.nab_s 5
657.xz_s 7
```
and for the clang-10 pass1 binary(I don't have pass2 binary), the max inline depth is 51!

it's really more inlining than I thought.  so I agree with you to turn it off(-1) by default.





Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D107800



More information about the llvm-commits mailing list