[all-commits] [llvm/llvm-project] a6f15e: [CSSPGO] Use probe inline tree to track zero size ...

WenleiHe via All-commits all-commits at lists.llvm.org
Wed Aug 25 09:01:28 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a6f15e9a49a1a5bcd1ce7f30b1201d977d8a8ede
      https://github.com/llvm/llvm-project/commit/a6f15e9a49a1a5bcd1ce7f30b1201d977d8a8ede
  Author: Wenlei He <aktoon at gmail.com>
  Date:   2021-08-25 (Wed, 25 Aug 2021)

  Changed paths:
    M llvm/include/llvm/MC/MCPseudoProbe.h
    M llvm/include/llvm/Transforms/IPO/SampleContextTracker.h
    M llvm/lib/Transforms/IPO/SampleContextTracker.cpp
    M llvm/test/tools/llvm-profgen/cs-preinline-cost.test
    M llvm/tools/llvm-profgen/ProfiledBinary.cpp
    M llvm/tools/llvm-profgen/ProfiledBinary.h

  Log Message:
  -----------
  [CSSPGO] Use probe inline tree to track zero size fully optimized context for pre-inliner

This is a follow up diff for BinarySizeContextTracker to track zero size for fully optimized inlinee. When an inlinee is fully optimized away, we won't be able to get its size through symbolizing instructions, hence we will treat the corresponding context size as unknown. However by traversing the inlined probe forest, we know what're original inlinees regardless of optimization. If a context show up in inlined probes, but not during symbolization, we know that it's fully optimized away hence its size is zero instead of unknown. It should provide more accurate size cost estimation for pre-inliner to make better inline decisions in llvm-profgen.

Differential Revision: https://reviews.llvm.org/D108350




More information about the All-commits mailing list