| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[BOLT] Only link and initialize supported targets (#127509) Bolt currently links and initializes all LLVM targets. This substantially increases the binary size, and link time if LTO is used. Instead, only link the targets specified by BOLT_TARGETS_TO_BUILD. We also have to only initialize those targets, so generate a TargetConfig.def file with the necessary information. The way the initialization is done mirrors what llvm-exegesis does. This reduces llvm-bolt size from 137MB to 78MB for me. | 1 年前 | |
[BOLT][AArch64] Add support for SPE brstack format (#129231) Since Linux 6.14, Perf gained the ability to report SPE branch events using the brstack format, which matches the layout of LBR/BRBE. This patch reuses the existing LBR parsing logic to support SPE. Example SPE brstack format: bash perf script -i perf.data -F pid,brstack --itrace=bl PID FROM / TO / PREDICTED 16984 0x72e342e5f4/0x72e36192d0/M/-/-/11/RET/- 16984 0x72e7b8b3b4/0x72e7b8b3b8/PN/-/-/11/COND/- 16984 0x72e7b92b48/0x72e7b92b4c/PN/-/-/8/COND/- 16984 0x72eacc6b7c/0x760cc94b00/P/-/-/9/RET/- 16984 0x72e3f210fc/0x72e3f21068/P/-/-/4//- 16984 0x72e39b8c5c/0x72e3627b24/P/-/-/4//- 16984 0x72e7b89d20/0x72e7b92bbc/P/-/-/4/RET/- SPE brstack flags can be two characters long: PN or MN: - P = predicted branch - M = mispredicted branch - N = optionally appears when the branch is NOT-TAKEN - flag is relevant only to conditional branches Example of usage with BOLT: 1. Capture SPE branch events: bash perf record -e 'arm_spe_0/branch_filter=1/u' -- binary 2. Convert profile for BOLT: bash perf2bolt -p perf.data -o perf.fdata --spe binary 3. Run BOLT Optimization: bash llvm-bolt binary -o binary.bolted --data perf.fdata ... A unit test verifies the parsing of the 'SPE brstack format'. --------- Co-authored-by: Paschalis Mpeis <paschalis.mpeis@arm.com> | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 1 年前 |