[all-commits] [llvm/llvm-project] d49626: [Coverage] Improve performance of propagating Coun...

NAKAMURA Takumi via All-commits all-commits at lists.llvm.org
Tue May 5 04:39:26 PDT 2026


  Branch: refs/heads/users/chapuni/cov/expansion-rebased
  Home:   https://github.com/llvm/llvm-project
  Commit: d496262da73e78e7b1c103f340f223b33c486b91
      https://github.com/llvm/llvm-project/commit/d496262da73e78e7b1c103f340f223b33c486b91
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2026-05-05 (Tue, 05 May 2026)

  Changed paths:
    M llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  Log Message:
  -----------
  [Coverage] Improve performance of propagating Counter of Expansions

This improves `-dump-coverage-mapping` (939,498 lines) for
`RISCVInstructionSelector.cpp` from 30m to 1m18s and also improves
`llvm-cov` for `check-llvm` from 33m to 24s.

The current implementation behaved O(N^2) order with hundreds
thousands of Expansions.

This assumes:
  - Records are partitioned by FileID.
    - ExpandedFileID doesn't point FileID==0, since it is the root.
  - The Count in Expansion is propagated from 1st Record in
    ExpandedFileID.

Therefore another fact below can be assumed.
  - Propagation chain consists of Expansions at each 1st Record.

This scans the Record at most a few times. O(N) is expected.

Fixes #113173


  Commit: af0a4a0dbe11e8985de5b85f61a4f80b8d47ddee
      https://github.com/llvm/llvm-project/commit/af0a4a0dbe11e8985de5b85f61a4f80b8d47ddee
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2026-05-05 (Tue, 05 May 2026)

  Changed paths:
    M llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  Log Message:
  -----------
  Get rid of the assumption "[0] is the root"


  Commit: 3dfc955aa666be72904a0fb58ad330fffb265792
      https://github.com/llvm/llvm-project/commit/3dfc955aa666be72904a0fb58ad330fffb265792
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2026-05-05 (Tue, 05 May 2026)

  Changed paths:
    M llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  Log Message:
  -----------
  Dissolve one condition to invert the loop


  Commit: 243edbf6453bc98c2ba501af5e42663413e10f7e
      https://github.com/llvm/llvm-project/commit/243edbf6453bc98c2ba501af5e42663413e10f7e
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2026-05-05 (Tue, 05 May 2026)

  Changed paths:
    M clang/test/CoverageMapping/comment-in-macro.c
    M clang/test/CoverageMapping/comment.cpp
    M clang/test/CoverageMapping/control-flow-macro.c
    M clang/test/CoverageMapping/if.cpp
    M clang/test/CoverageMapping/include-macros.c
    M clang/test/CoverageMapping/includehell.cpp
    M clang/test/CoverageMapping/label.cpp
    M clang/test/CoverageMapping/loopmacro.c
    M clang/test/CoverageMapping/macro-expansion.c
    M clang/test/CoverageMapping/macro-expressions.cpp
    M clang/test/CoverageMapping/macroception.c
    M clang/test/CoverageMapping/macroparams.c
    M clang/test/CoverageMapping/macroparams2.c
    M clang/test/CoverageMapping/macros.c
    M clang/test/CoverageMapping/macroscopes.cpp
    M clang/test/CoverageMapping/mcdc-scratch-space.c
    M clang/test/CoverageMapping/mcdc-system-headers.cpp
    M clang/test/CoverageMapping/moremacros.c
    M clang/test/CoverageMapping/switchmacro.c
    M clang/test/CoverageMapping/trymacro.cpp
    M llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
    M llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
    M llvm/unittests/ProfileData/CoverageMappingTest.cpp

  Log Message:
  -----------
  Revise w/ expansion walker

Conflicts:
	llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp


  Commit: 90c3df2013931da53f163baea55b41c8b8310f47
      https://github.com/llvm/llvm-project/commit/90c3df2013931da53f163baea55b41c8b8310f47
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2026-05-05 (Tue, 05 May 2026)

  Changed paths:

  Log Message:
  -----------
  Merge commit 'llvmorg-23-init-13816-g0135cf99f3a2' into HEAD

Conflicts:
	llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp


Compare: https://github.com/llvm/llvm-project/compare/d496262da73e%5E...90c3df201393

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