[llvm] [memprof] Add CallStackRadixTreeBuilder (PR #93784)
Teresa Johnson via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 2 08:20:48 PDT 2024
================
@@ -410,6 +410,161 @@ CallStackId hashCallStack(ArrayRef<FrameId> CS) {
return CSId;
}
+// Returns the sorted list of call stacks.
+std::vector<CallStackRadixTreeBuilder::CSIdPair>
+CallStackRadixTreeBuilder::sortCallStacks(
+ llvm::MapVector<CallStackId, llvm::SmallVector<FrameId>>
+ &MemProfCallStackData) {
+ // Create a list of call stacks to be sorted.
+ std::vector<CSIdPair> CallStacks;
+ CallStacks.reserve(MemProfCallStackData.size());
+ for (auto &[CSId, CallStack] : MemProfCallStackData) {
----------------
teresajohnson wrote:
If we expect MemProfCallStackData to be unused by the caller of build(), could it be std::move'd and then use takeVector here to avoid the copying?
https://github.com/llvm/llvm-project/pull/93784
More information about the llvm-commits
mailing list