[llvm-branch-commits] [llvm] [BOLT] Add pseudo probe inline tree to YAML profile (PR #107137)
Amir Ayupov via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Sep 11 18:51:54 PDT 2024
================
@@ -95,24 +95,30 @@ template <> struct MappingTraits<bolt::SuccessorInfo> {
namespace bolt {
struct PseudoProbeInfo {
- llvm::yaml::Hex64 GUID;
- uint64_t Index;
- uint8_t Type;
+ uint32_t InlineTreeIndex = 0;
+ uint64_t BlockMask = 0; // bitset with probe indices
+ // Assume BlockMask == 1 if no other probes are set
+ std::vector<uint64_t> BlockProbes;
+ std::vector<uint64_t> CallProbes;
+ std::vector<uint64_t> IndCallProbes;
+ std::vector<uint32_t> InlineTreeNodes;
bool operator==(const PseudoProbeInfo &Other) const {
- return GUID == Other.GUID && Index == Other.Index;
- }
- bool operator!=(const PseudoProbeInfo &Other) const {
- return !(*this == Other);
+ return InlineTreeIndex == Other.InlineTreeIndex &&
+ BlockProbes == Other.BlockProbes && CallProbes == Other.CallProbes &&
+ IndCallProbes == Other.IndCallProbes;
}
};
} // end namespace bolt
template <> struct MappingTraits<bolt::PseudoProbeInfo> {
static void mapping(IO &YamlIO, bolt::PseudoProbeInfo &PI) {
- YamlIO.mapRequired("guid", PI.GUID);
- YamlIO.mapRequired("id", PI.Index);
- YamlIO.mapRequired("type", PI.Type);
+ YamlIO.mapOptional("blk", PI.BlockMask, 0);
----------------
aaupov wrote:
I think `blx` is a good key name for block mask.
https://github.com/llvm/llvm-project/pull/107137
More information about the llvm-branch-commits
mailing list