class CFGMST
Declaration
template <class Edge, class BBInfo>
class CFGMST { /* full declaration omitted */ };
Description
An union-find based Minimum Spanning Tree for CFG Implements a Union-find algorithm to compute Minimum Spanning Tree for a given CFG.
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:37
Templates
- Edge
- BBInfo
Member Variables
- public llvm::Function& F
- public std::vector<std::unique_ptr<Edge>> AllEdges
- public DenseMap<const llvm::BasicBlock*, std::unique_ptr<BBInfo>> BBInfos
- public bool ExitBlockFound = false
- public llvm::BranchProbabilityInfo* BPI
- public llvm::BlockFrequencyInfo* BFI
Method Overview
- public CFGMST<Edge, BBInfo>(llvm::Function & Func, llvm::BranchProbabilityInfo * BPI_ = nullptr, llvm::BlockFrequencyInfo * BFI_ = nullptr)
- public Edge & addEdge(const llvm::BasicBlock * Src, const llvm::BasicBlock * Dest, uint64_t W)
- public void buildEdges()
- public void computeMinimumSpanningTree()
- public void dumpEdges(llvm::raw_ostream & OS, const llvm::Twine & Message) const
- public BBInfo * findAndCompressGroup(BBInfo * G)
- public BBInfo * findBBInfo(const llvm::BasicBlock * BB) const
- public BBInfo & getBBInfo(const llvm::BasicBlock * BB) const
- public void sortEdgesByWeight()
- public bool unionGroups(const llvm::BasicBlock * BB1, const llvm::BasicBlock * BB2)
Methods
¶CFGMST<Edge, BBInfo>(
llvm::Function& Func,
llvm::BranchProbabilityInfo* BPI_ = nullptr,
llvm::BlockFrequencyInfo* BFI_ = nullptr)
CFGMST<Edge, BBInfo>(
llvm::Function& Func,
llvm::BranchProbabilityInfo* BPI_ = nullptr,
llvm::BlockFrequencyInfo* BFI_ = nullptr)
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:275
Parameters
- llvm::Function& Func
- llvm::BranchProbabilityInfo* BPI_ = nullptr
- llvm::BlockFrequencyInfo* BFI_ = nullptr
¶Edge& addEdge(const llvm::BasicBlock* Src,
const llvm::BasicBlock* Dest,
uint64_t W)
Edge& addEdge(const llvm::BasicBlock* Src,
const llvm::BasicBlock* Dest,
uint64_t W)
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:253
Parameters
- const llvm::BasicBlock* Src
- const llvm::BasicBlock* Dest
- uint64_t W
¶void buildEdges()
void buildEdges()
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:98
¶void computeMinimumSpanningTree()
void computeMinimumSpanningTree()
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:206
¶void dumpEdges(llvm::raw_ostream& OS,
const llvm::Twine& Message) const
void dumpEdges(llvm::raw_ostream& OS,
const llvm::Twine& Message) const
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:234
Parameters
- llvm::raw_ostream& OS
- const llvm::Twine& Message
¶BBInfo* findAndCompressGroup(BBInfo* G)
BBInfo* findAndCompressGroup(BBInfo* G)
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:53
Parameters
- BBInfo* G
¶BBInfo* findBBInfo(
const llvm::BasicBlock* BB) const
BBInfo* findBBInfo(
const llvm::BasicBlock* BB) const
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:88
Parameters
- const llvm::BasicBlock* BB
¶BBInfo& getBBInfo(
const llvm::BasicBlock* BB) const
BBInfo& getBBInfo(
const llvm::BasicBlock* BB) const
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:81
Parameters
- const llvm::BasicBlock* BB
¶void sortEdgesByWeight()
void sortEdgesByWeight()
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:197
¶bool unionGroups(const llvm::BasicBlock* BB1,
const llvm::BasicBlock* BB2)
bool unionGroups(const llvm::BasicBlock* BB1,
const llvm::BasicBlock* BB2)
Declared at: llvm/lib/Transforms/Instrumentation/CFGMST.h:61
Parameters
- const llvm::BasicBlock* BB1
- const llvm::BasicBlock* BB2