25 cl::desc(
"Pop up a window to show edge bundle graphs"));
51 EC.
join(OutE, 2 * (*SI)->getNumber());
64 Blocks[b0].push_back(i);
66 Blocks[b1].push_back(i);
86 unsigned BB =
I->getNumber();
87 O <<
"\t\"BB#" << BB <<
"\" [ shape=box ]\n"
88 <<
'\t' << G.
getBundle(BB,
false) <<
" -> \"BB#" << BB <<
"\"\n"
89 <<
"\t\"BB#" << BB <<
"\" -> " << G.
getBundle(BB,
true) <<
'\n';
91 SE =
I->succ_end(); SI != SE; ++SI)
92 O <<
"\t\"BB#" << BB <<
"\" -> \"BB#" << (*SI)->getNumber()
93 <<
"\" [ color=lightgray ]\n";
raw_ostream & WriteGraph(raw_ostream &O, const EdgeBundles &G, bool ShortNames=false, const Twine &Title="")
Specialize WriteGraph, the standard implementation won't work.
void view() const
view - Visualize the annotated bipartite CFG with Graphviz.
unsigned getNumBlockIDs() const
unsigned getNumBundles() const
getNumBundles - Return the total number of bundles in the CFG.
const MachineFunction * getMachineFunction() const
getMachineFunction - Return the last machine function computed.
ID
LLVM Calling Convention Representation.
void ViewGraph(const GraphType &G, const Twine &Name, bool ShortNames=false, const Twine &Title="", GraphProgram::Name Program=GraphProgram::DOT)
succ_iterator succ_begin()
void join(unsigned a, unsigned b)
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
static cl::opt< bool > ViewEdgeBundles("view-edge-bundles", cl::Hidden, cl::desc("Pop up a window to show edge bundle graphs"))
virtual void getAnalysisUsage(AnalysisUsage &AU) const
unsigned getBundle(unsigned N, bool Out) const
char & EdgeBundlesID
EdgeBundles analysis - Bundle machine CFG edges.
std::vector< MachineBasicBlock * >::const_iterator const_succ_iterator