Lines Matching defs:MST
1 //===- PGOInstrumentation.cpp - MST-based PGO Instrumentation -------------===//
46 // The MST implementation is in Class CFGMST (CFGMST.h).
479 /// An MST based instrumentation for PGO
481 /// Implements a Minimum Spanning Tree (MST) based instrumentation for PGO
549 CFGMST<Edge, BBInfo> MST;
560 BBInfo &getBBInfo(const BasicBlock *BB) const { return MST.getBBInfo(BB); }
563 BBInfo *findBBInfo(const BasicBlock *BB) const { return MST.findBBInfo(BB); }
567 MST.dumpEdges(dbgs(), Twine("Dump Function ") + FuncName + " Hash: " +
577 ValueSites(IPVK_Last + 1), SIVisitor(Func), MST(F, BPI, BFI) {
584 NumOfPGOBB += MST.BBInfos.size();
589 NumOfCSPGOBB += MST.BBInfos.size();
598 for (auto &E : MST.AllEdges) {
638 (uint64_t)MST.AllEdges.size() << 32 | JC.getCRC();
646 << ", Edges = " << MST.AllEdges.size() << ", ICSites = "
730 EdgeList.reserve(MST.AllEdges.size());
731 for (auto &E : MST.AllEdges)
741 for (auto &E : MST.AllEdges) {
797 MST.addEdge(SrcBB, InstrBB, 0);
799 Edge &NewEdge1 = MST.addEdge(InstrBB, DestBB, 0);
837 // Visit all edge and instrument the edges not in MST, and do value profiling.
844 // Split indirectbr critical edges here before computing the MST rather than
1142 // MST but not instrumented. Need to set the edge count value so that we can
1144 for (auto &E : FuncInfo.MST.AllEdges) {
1628 // Split indirectbr critical edges here before computing the MST rather than
1683 // inconsistent MST between prof-gen and prof-use.