|
LLVM
4.0.0
|
An union-find based Minimum Spanning Tree for CFG. More...
#include <CFGMST.h>
Public Member Functions | |
| BBInfo * | findAndCompressGroup (BBInfo *G) |
| bool | unionGroups (const BasicBlock *BB1, const BasicBlock *BB2) |
| BBInfo & | getBBInfo (const BasicBlock *BB) const |
| BBInfo * | findBBInfo (const BasicBlock *BB) const |
| void | buildEdges () |
| void | sortEdgesByWeight () |
| void | computeMinimumSpanningTree () |
| void | dumpEdges (raw_ostream &OS, const Twine &Message) const |
| Edge & | addEdge (const BasicBlock *Src, const BasicBlock *Dest, uint64_t W) |
| CFGMST (Function &Func, BranchProbabilityInfo *BPI_=nullptr, BlockFrequencyInfo *BFI_=nullptr) | |
Public Attributes | |
| Function & | F |
| std::vector< std::unique_ptr < Edge > > | AllEdges |
| DenseMap< const BasicBlock *, std::unique_ptr< BBInfo > > | BBInfos |
| BranchProbabilityInfo * | BPI |
| BlockFrequencyInfo * | BFI |
An union-find based Minimum Spanning Tree for CFG.
Implements a Union-find algorithm to compute Minimum Spanning Tree for a given CFG.
|
inline |
Definition at line 214 of file CFGMST.h.
References llvm::CFGMST< Edge, BBInfo >::buildEdges(), llvm::CFGMST< Edge, BBInfo >::computeMinimumSpanningTree(), and llvm::CFGMST< Edge, BBInfo >::sortEdgesByWeight().
|
inline |
Definition at line 192 of file CFGMST.h.
References llvm::CFGMST< Edge, BBInfo >::AllEdges, and llvm::CFGMST< Edge, BBInfo >::BBInfos.
Referenced by llvm::CFGMST< Edge, BBInfo >::buildEdges().
|
inline |
Definition at line 92 of file CFGMST.h.
References llvm::CFGMST< Edge, BBInfo >::addEdge(), llvm::Function::begin(), llvm::CFGMST< Edge, BBInfo >::BFI, llvm::CFGMST< Edge, BBInfo >::BPI, llvm::dbgs(), DEBUG, E, llvm::Function::end(), llvm::CFGMST< Edge, BBInfo >::F, llvm::BlockFrequencyInfo::getBlockFreq(), llvm::BranchProbabilityInfo::getEdgeProbability(), llvm::Function::getEntryBlock(), llvm::BlockFrequencyInfo::getEntryFreq(), llvm::BlockFrequency::getFrequency(), llvm::Value::getName(), llvm::TerminatorInst::getNumSuccessors(), llvm::TerminatorInst::getSuccessor(), i, llvm::isCriticalEdge(), llvm::BranchProbability::scale(), llvm::succ_empty(), and llvm::successors().
Referenced by llvm::CFGMST< Edge, BBInfo >::CFGMST().
|
inline |
Definition at line 149 of file CFGMST.h.
References llvm::CFGMST< Edge, BBInfo >::AllEdges, and llvm::CFGMST< Edge, BBInfo >::unionGroups().
Referenced by llvm::CFGMST< Edge, BBInfo >::CFGMST().
|
inline |
Definition at line 173 of file CFGMST.h.
References llvm::CFGMST< Edge, BBInfo >::AllEdges, llvm::CFGMST< Edge, BBInfo >::BBInfos, llvm::CFGMST< Edge, BBInfo >::getBBInfo(), llvm::Value::getName(), and llvm::Twine::str().
|
inline |
Definition at line 47 of file CFGMST.h.
Referenced by llvm::CFGMST< Edge, BBInfo >::unionGroups().
|
inline |
Definition at line 82 of file CFGMST.h.
References llvm::CFGMST< Edge, BBInfo >::BBInfos.
|
inline |
Definition at line 75 of file CFGMST.h.
References assert(), and llvm::CFGMST< Edge, BBInfo >::BBInfos.
Referenced by llvm::CFGMST< Edge, BBInfo >::dumpEdges(), and llvm::CFGMST< Edge, BBInfo >::unionGroups().
|
inline |
Definition at line 139 of file CFGMST.h.
References llvm::CFGMST< Edge, BBInfo >::AllEdges.
Referenced by llvm::CFGMST< Edge, BBInfo >::CFGMST().
|
inline |
Definition at line 55 of file CFGMST.h.
References llvm::CFGMST< Edge, BBInfo >::findAndCompressGroup(), and llvm::CFGMST< Edge, BBInfo >::getBBInfo().
Referenced by llvm::CFGMST< Edge, BBInfo >::computeMinimumSpanningTree().
| std::vector<std::unique_ptr<Edge> > llvm::CFGMST< Edge, BBInfo >::AllEdges |
Definition at line 41 of file CFGMST.h.
Referenced by llvm::CFGMST< Edge, BBInfo >::addEdge(), llvm::CFGMST< Edge, BBInfo >::computeMinimumSpanningTree(), llvm::CFGMST< Edge, BBInfo >::dumpEdges(), and llvm::CFGMST< Edge, BBInfo >::sortEdgesByWeight().
| DenseMap<const BasicBlock *, std::unique_ptr<BBInfo> > llvm::CFGMST< Edge, BBInfo >::BBInfos |
Definition at line 44 of file CFGMST.h.
Referenced by llvm::CFGMST< Edge, BBInfo >::addEdge(), llvm::CFGMST< Edge, BBInfo >::dumpEdges(), llvm::CFGMST< Edge, BBInfo >::findBBInfo(), and llvm::CFGMST< Edge, BBInfo >::getBBInfo().
| BlockFrequencyInfo* llvm::CFGMST< Edge, BBInfo >::BFI |
Definition at line 211 of file CFGMST.h.
Referenced by llvm::CFGMST< Edge, BBInfo >::buildEdges().
| BranchProbabilityInfo* llvm::CFGMST< Edge, BBInfo >::BPI |
Definition at line 210 of file CFGMST.h.
Referenced by llvm::CFGMST< Edge, BBInfo >::buildEdges().
| Function& llvm::CFGMST< Edge, BBInfo >::F |
Definition at line 37 of file CFGMST.h.
Referenced by llvm::CFGMST< Edge, BBInfo >::buildEdges().
1.8.6