================ @@ -246,10 +270,32 @@ template <> struct MappingTraits<bolt::BinaryProfileHeader> { } }; +namespace bolt { +struct PseudoProbeDesc { + std::vector<Hex64> GUID; + std::vector<Hex64> Hash; + std::vector<uint32_t> GUIDHash; // Index of hash for that GUID in Hash ---------------- aaupov wrote:
> > // Index of hash for that GUID in Hash > > I don't fully get this, does this mean we have different Hashes for the same > GUID, is this a global index or just the index for different Hash but the > same GUID. No, there can only be one Hash for the same GUID. But different GUIDs can have the same hash (functions with 1 block will share 0x10000FFFFFFFF if I understand correctly). Thus Hash vector can be smaller, and two GUIDs with different indices in GUID vector can have the same index into Hash vector. By the way, the most frequent hashes are, in my working example: ``` hs: [ 0x10000FFFFFFFF, 0xFFFFFFFF, 0x20000FFFFFFFF, 0x30000FFFFFFFF, 0x40000FFFFFFFF, 0x50000FFFFFFFF, 0x60000FFFFFFFF, ... ``` https://github.com/llvm/llvm-project/pull/107137 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits