Lines Matching defs:StackTrieNode

282 using StackTrieNode = TrieNode<StackDuration>;
285 static std::size_t GetValueForStack(const StackTrieNode *Node);
291 GetValueForStack<AggregationType::TOTAL_TIME>(const StackTrieNode *Node) {
302 GetValueForStack<AggregationType::INVOCATION_COUNT>(const StackTrieNode *Node) {
311 std::size_t GetValueForStack(const StackTrieNode *Node) {
320 using RootVector = SmallVector<StackTrieNode *, 4>;
326 std::forward_list<StackTrieNode> NodeStore;
329 DenseMap<uint32_t, SmallVector<std::pair<StackTrieNode *, uint64_t>, 8>>
332 StackTrieNode *createTrieNode(uint32_t ThreadId, int32_t FuncId,
333 StackTrieNode *Parent) {
334 NodeStore.push_front(StackTrieNode{FuncId, Parent, {}, {{}, {}}});
342 StackTrieNode *findRootNode(uint32_t ThreadId, int32_t FuncId) {
345 [&](StackTrieNode *N) { return N->FuncId == FuncId; });
386 [&](StackTrieNode *N) { return N->FuncId == R.FuncId; });
418 reverse(TS), [&](const std::pair<StackTrieNode *, uint64_t> &E) {
449 void printStack(raw_ostream &OS, const StackTrieNode *Top,
453 SmallVector<const StackTrieNode *, 8> CurrentStack;
518 RootVector mergeAcrossThreads(std::forward_list<StackTrieNode> &NodeStore) {
524 find_if(MergedByThreadRoots, [Node](StackTrieNode *elem) {
543 std::forward_list<StackTrieNode> AggregatedNodeStore;
552 std::forward_list<StackTrieNode> AggregatedNodeStore;
561 SmallVector<const StackTrieNode *, 16> S;
582 const StackTrieNode *Node) {
585 SmallVector<const StackTrieNode *, 5> lineage{};
605 SmallVector<std::pair<const StackTrieNode *, uint64_t>, 11>
607 SmallVector<std::pair<const StackTrieNode *, uint64_t>, 11> TopStacksBySum;
609 [](const std::pair<const StackTrieNode *, uint64_t> &A,
610 const std::pair<const StackTrieNode *, uint64_t> &B) {
615 SmallVector<const StackTrieNode *, 16> S;