[all-commits] [llvm/llvm-project] 257706: [llvm-profgen] Add branch/target validation (#188620)

HighW4y2H3ll via All-commits all-commits at lists.llvm.org
Sun Apr 19 18:30:53 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 257706f21227ba596c81b5c97a3d4f0d33aa15d5
      https://github.com/llvm/llvm-project/commit/257706f21227ba596c81b5c97a3d4f0d33aa15d5
  Author: HighW4y2H3ll <zhenghaohuu at gmail.com>
  Date:   2026-04-19 (Sun, 19 Apr 2026)

  Changed paths:
    M llvm/tools/llvm-profgen/PerfReader.cpp
    M llvm/tools/llvm-profgen/PerfReader.h
    M llvm/tools/llvm-profgen/ProfiledBinary.cpp
    M llvm/tools/llvm-profgen/ProfiledBinary.h

  Log Message:
  -----------
  [llvm-profgen] Add branch/target validation (#188620)

Add extra branch source and target validation checks for LBR samples.
This is to check whether there are branch source samples that do not
match a call/branch/ret instruction in the binary, and branch target
samples that do not match a resolved Imm target address, or a function
start address (in case of an indirect call).

Example output:
```
# X86
warning: 0.01%(27/376876) of sampled target addresses do not match the binary.
# AArch64
warning: 0.01%(63782/795824826) of branch samples do not match the binary.
warning: 0.01%(70468/795824826) of branch targets do not match the binary.
```
Run time overhead:
```
Before:
real    61m38.081s
user    60m50.768s
sys     0m42.931s

After:
real    62m33.176s
user    61m47.650s
sys     0m42.204s
```



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