[all-commits] [llvm/llvm-project] 0a5aa2: Introduction of Composite Profile section in ExtBi...

Sergey Shcherbinin via All-commits all-commits at lists.llvm.org
Fri Sep 11 12:22:32 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0a5aa293a4e76add0a3abefbf41320b70cb77c1f
      https://github.com/llvm/llvm-project/commit/0a5aa293a4e76add0a3abefbf41320b70cb77c1f
  Author: Sergey Shcherbinin <sscherbinin at nvidia.com>
  Date:   2026-09-11 (Fri, 11 Sep 2026)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-profdata.md
    M llvm/include/llvm/ProfileData/SampleProf.h
    M llvm/include/llvm/ProfileData/SampleProfReader.h
    M llvm/include/llvm/ProfileData/SampleProfWriter.h
    M llvm/lib/ProfileData/SampleProfReader.cpp
    M llvm/lib/ProfileData/SampleProfWriter.cpp
    A llvm/test/Transforms/SampleProfile/Inputs/composite-cs-profile.proftext
    A llvm/test/Transforms/SampleProfile/composite-cs-profile.ll
    M llvm/test/Transforms/SampleProfile/csspgo-inline-icall.ll
    A llvm/test/tools/llvm-profdata/Inputs/composite-duplicate-type.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-empty-section.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-head-only.proftext
    A llvm/test/tools/llvm-profdata/Inputs/composite-mixed-empty.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-mixed-nonempty.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-payload-oversized.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-payload-undersized.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-prepended-unknown.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-unknown-nested.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-unknown-oob.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-unknown-top.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-version-103.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-version-104.profdata
    A llvm/test/tools/llvm-profdata/Inputs/composite-zero-block.proftext
    A llvm/test/tools/llvm-profdata/Inputs/sample-composite-empty-lbr.proftext
    A llvm/test/tools/llvm-profdata/composite-compress.test
    A llvm/test/tools/llvm-profdata/composite-compressed-info.test
    A llvm/test/tools/llvm-profdata/composite-empty-lbr.test
    A llvm/test/tools/llvm-profdata/composite-eytzinger-split-nametable-partition.test
    A llvm/test/tools/llvm-profdata/composite-head-only.test
    A llvm/test/tools/llvm-profdata/composite-mixed-sections.test
    A llvm/test/tools/llvm-profdata/composite-multiple-blocks.test
    A llvm/test/tools/llvm-profdata/composite-payload-boundaries.test
    A llvm/test/tools/llvm-profdata/composite-unknown-resume-nested.test
    A llvm/test/tools/llvm-profdata/composite-version-reader.test
    A llvm/test/tools/llvm-profdata/composite-vtable.test
    A llvm/test/tools/llvm-profdata/composite-zero-block.test
    M llvm/test/tools/llvm-profdata/sample-flatten-profile.test
    M llvm/test/tools/llvm-profdata/sample-split-layout.test
    A llvm/test/tools/llvm-profdata/show-composite-profile-info.test
    M llvm/tools/llvm-profdata/llvm-profdata.cpp
    M llvm/unittests/ProfileData/SampleProfTest.cpp

  Log Message:
  -----------
  Introduction of Composite Profile section in ExtBinary format (#166553)

New sections are introduced for storing profile of vairous types:

* SecCompositeProfile (like SecLBRProfile but can conain multi-type
profile)
* SecCompositeFuncOffsetTable (like SecFuncOffsetTable but offsets point
to SecCompositeProfile)

The only change in the structure of ExtBinary is a substitution of
SecLBRProfile and SecFuncOffsetTable sections by new (composite) ones,
so, to void duplication of layout description and handling, all changes
are done on low-level: section types are modified in the existing layout
right before profile writing.

No new profile types are introduced - this change is rather a
preparation for future profiling extentions: only LBR profile can be
inside currently.

Processing of VTable profile is unmodified.

Extended description is here:
https://discourse.llvm.org/t/rfc-typifiedprofilesection-generalized-per-function-profile-blocks-in-extbinary-format/87881

Testing of the new scenario is added to
llvm/test/tools/llvm-profdata/sample-flatten-profile.test and also new
tests are introduced.

Assisted by GPT-5.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list