[all-commits] [llvm/llvm-project] 7a45eb: [IR] Define uniformity profile metadata
Yaxun (Sam) Liu via All-commits
all-commits at lists.llvm.org
Mon Sep 7 20:44:04 PDT 2026
Branch: refs/heads/users/yxsamliu/branch-uniformity-metadata
Home: https://github.com/llvm/llvm-project
Commit: 7a45eb1ec1f9a9d7a9347cdf7f9847c6fd9bada7
https://github.com/llvm/llvm-project/commit/7a45eb1ec1f9a9d7a9347cdf7f9847c6fd9bada7
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-09-07 (Mon, 07 Sep 2026)
Changed paths:
M llvm/docs/LangRef.md
M llvm/include/llvm/IR/FixedMetadataKinds.def
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
M llvm/test/Bitcode/block-uniformity-profile-metadata.ll
A llvm/test/Bitcode/block-uniformity-profile-upgrade.ll
A llvm/test/Bitcode/block-uniformity-profile-upgrade.ll.bc
A llvm/test/Bitcode/branch-uniformity-profile-metadata.ll
A llvm/test/Verifier/block-uniformity-profile.ll
A llvm/test/Verifier/branch-uniformity-profile.ll
M llvm/unittests/Transforms/Instrumentation/PGOInstrumentationTest.cpp
Log Message:
-----------
[IR] Define uniformity profile metadata
Branch weights show how often each path is taken, but not whether lanes
take the same path together. GPU optimizations need this distinction to
judge whether a change is likely to help. They also need to distinguish
missing uniformity data from a profile with no known uniform behavior.
Define and document branch.uniformity.profile for branch decisions and
block.uniformity.profile for block execution. Use the block metadata on
functions to mark available profile data, and verify where these
annotations are allowed. These are hints for optimization decisions;
they do not prove that execution is always uniform.
Represent uniform classifications with empty nodes and omit the other
annotations. Update the existing block producer and upgrade old boolean
metadata when reading bitcode, so newly generated IR and older bitcode
both follow the same rules.
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