================ @@ -241,6 +242,10 @@ class BinaryContext { /// Function fragments to skip. std::unordered_set<BinaryFunction *> FragmentsToSkip; + /// Fragment equivalence classes to query belonging to the same "family" in + /// presence of multiple fragments/multiple parents. + EquivalenceClasses<const BinaryFunction *> FragmentClasses; ---------------- aaupov wrote:
It's a set that only keeps a copy of entry (a pointer in our case): https://github.com/llvm/llvm-project/blob/73ffeeab12d54211fd838d6ff988d111369ea196/llvm/include/llvm/ADT/EquivalenceClasses.h#L26-L35 Moreover, we will only insert fragments into it, so it shouldn't be too expensive even for the largest binaries (we split up to 10s of thousands of functions). https://github.com/llvm/llvm-project/pull/99979 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits