LLVM 22.0.0git
llvm::CFGMST< Edge, BBInfo > Class Template Reference

An union-find based Minimum Spanning Tree for CFG. More...

#include "llvm/Transforms/Instrumentation/CFGMST.h"

Public Member Functions

void dumpEdges (raw_ostream &OS, const Twine &Message) const
EdgeaddEdge (BasicBlock *Src, BasicBlock *Dest, uint64_t W)
 CFGMST (Function &Func, bool InstrumentFuncEntry, bool InstrumentLoopEntries, BranchProbabilityInfo *BPI=nullptr, BlockFrequencyInfo *BFI=nullptr, LoopInfo *LI=nullptr)
const std::vector< std::unique_ptr< Edge > > & allEdges () const
std::vector< std::unique_ptr< Edge > > & allEdges ()
size_t numEdges () const
size_t bbInfoSize () const
BBInfo & getBBInfo (const BasicBlock *BB) const
BBInfo * findBBInfo (const BasicBlock *BB) const

Detailed Description

template<class Edge, class BBInfo>
class llvm::CFGMST< Edge, BBInfo >

An union-find based Minimum Spanning Tree for CFG.

Implements a Union-find algorithm to compute Minimum Spanning Tree for a given CFG.

Definition at line 40 of file CFGMST.h.

Constructor & Destructor Documentation

◆ CFGMST()

template<class Edge, class BBInfo>
llvm::CFGMST< Edge, BBInfo >::CFGMST ( Function & Func,
bool InstrumentFuncEntry,
bool InstrumentLoopEntries,
BranchProbabilityInfo * BPI = nullptr,
BlockFrequencyInfo * BFI = nullptr,
LoopInfo * LI = nullptr )
inline

Definition at line 322 of file CFGMST.h.

References assert().

Member Function Documentation

◆ addEdge()

template<class Edge, class BBInfo>
Edge & llvm::CFGMST< Edge, BBInfo >::addEdge ( BasicBlock * Src,
BasicBlock * Dest,
uint64_t W )
inline

Definition at line 304 of file CFGMST.h.

Referenced by getInstrBB().

◆ allEdges() [1/2]

template<class Edge, class BBInfo>
std::vector< std::unique_ptr< Edge > > & llvm::CFGMST< Edge, BBInfo >::allEdges ( )
inline

Definition at line 345 of file CFGMST.h.

◆ allEdges() [2/2]

template<class Edge, class BBInfo>
const std::vector< std::unique_ptr< Edge > > & llvm::CFGMST< Edge, BBInfo >::allEdges ( ) const
inline

Definition at line 341 of file CFGMST.h.

Referenced by dumpEdges().

◆ bbInfoSize()

template<class Edge, class BBInfo>
size_t llvm::CFGMST< Edge, BBInfo >::bbInfoSize ( ) const
inline

Definition at line 349 of file CFGMST.h.

◆ dumpEdges()

template<class Edge, class BBInfo>
void llvm::CFGMST< Edge, BBInfo >::dumpEdges ( raw_ostream & OS,
const Twine & Message ) const
inline

Definition at line 285 of file CFGMST.h.

References llvm::Count, getBBInfo(), llvm::Value::getName(), and llvm::Twine::str().

◆ findBBInfo()

template<class Edge, class BBInfo>
BBInfo * llvm::CFGMST< Edge, BBInfo >::findBBInfo ( const BasicBlock * BB) const
inline

Definition at line 359 of file CFGMST.h.

◆ getBBInfo()

template<class Edge, class BBInfo>
BBInfo & llvm::CFGMST< Edge, BBInfo >::getBBInfo ( const BasicBlock * BB) const
inline

Definition at line 352 of file CFGMST.h.

References assert().

Referenced by dumpEdges().

◆ numEdges()

template<class Edge, class BBInfo>
size_t llvm::CFGMST< Edge, BBInfo >::numEdges ( ) const
inline

Definition at line 347 of file CFGMST.h.


The documentation for this class was generated from the following file: