26 std::vector<MemoryStateSummary> & summaries)
28 for (
auto & node : region.
Nodes())
35 collect(*phiNode.
subregion(), lambdaNode, summaries);
47 summaries.push_back({ &n, &n, entrySize, exitSize });
49 collect(*n.subregion(), &n, summaries);
55 summaries.push_back({ lambdaNode, &thetaNode, size, size });
57 collect(*thetaNode.subregion(), lambdaNode, summaries);
64 summaries.push_back({ lambdaNode, &gammaNode, entrySize, exitSize });
66 for (
auto & subregion : gammaNode.Subregions())
67 collect(subregion, lambdaNode, summaries);
72 simpleNode.GetOperation(),
75 JLM_ASSERT(lambdaNode != nullptr);
76 auto size = modRefSummary.GetSimpleNodeModRef(simpleNode).getModRefNodes().size();
77 summaries.push_back({ lambdaNode, &simpleNode, size, size });
83 summaries.push_back({ lambdaNode, &simpleNode, size, size });
89 summaries.push_back({ lambdaNode, &simpleNode, size, size });
95 summaries.push_back({ lambdaNode, &simpleNode, size, size });
101 summaries.push_back({ lambdaNode, &simpleNode, size, size });
107 summaries.push_back({ lambdaNode, &simpleNode, size, size });
113 summaries.push_back({ lambdaNode, &simpleNode, size, size });
119 summaries.push_back({ lambdaNode, &simpleNode, size, size });
125 summaries.push_back({ lambdaNode, &simpleNode, size, size });
141 std::vector<MemoryStateSummary> summaries;
142 collect(rvsdg.GetRootRegion(),
nullptr, summaries);
147toString(
const std::vector<MemoryStateSummary> & memoryStateDistribution)
151 constexpr char separator =
'-';
153 memoryStateSummary.lambdaNode->DebugString(),
155 memoryStateSummary.node->DebugString(),
158 memoryStateSummary.node->region()->getRegionId(),
160 memoryStateSummary.node->GetNodeId(),
163 memoryStateSummary.numMemoryInputStates,
165 memoryStateSummary.numMemoryOutputStates);
169 std::string summaryStr;
170 for (
auto & summary : memoryStateDistribution)
173 if (n != memoryStateDistribution.size() - 1)