diff options
Diffstat (limited to 'lib/CodeGen/SplitKit.cpp')
-rw-r--r-- | lib/CodeGen/SplitKit.cpp | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/lib/CodeGen/SplitKit.cpp b/lib/CodeGen/SplitKit.cpp index d0971fea48..4bb13e44b8 100644 --- a/lib/CodeGen/SplitKit.cpp +++ b/lib/CodeGen/SplitKit.cpp @@ -24,7 +24,6 @@ #include "llvm/CodeGen/MachineRegisterInfo.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Debug.h" -#include "llvm/Support/GraphWriter.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Target/TargetInstrInfo.h" #include "llvm/Target/TargetMachine.h" @@ -36,56 +35,6 @@ AllowSplit("spiller-splits-edges", cl::desc("Allow critical edge splitting during spilling")); //===----------------------------------------------------------------------===// -// Edge Bundles -//===----------------------------------------------------------------------===// - -/// compute - Compute the edge bundles for MF. Bundles depend only on the CFG. -void EdgeBundles::compute(const MachineFunction *mf) { - MF = mf; - EC.clear(); - EC.grow(2 * MF->size()); - - for (MachineFunction::const_iterator I = MF->begin(), E = MF->end(); I != E; - ++I) { - const MachineBasicBlock &MBB = *I; - unsigned OutE = 2 * MBB.getNumber() + 1; - // Join the outgoing bundle with the ingoing bundles of all successors. - for (MachineBasicBlock::const_succ_iterator SI = MBB.succ_begin(), - SE = MBB.succ_end(); SI != SE; ++SI) - EC.join(OutE, 2 * (*SI)->getNumber()); - } - EC.compress(); -} - -/// view - Visualize the annotated bipartite CFG with Graphviz. -void EdgeBundles::view() const { - ViewGraph(*this, "EdgeBundles"); -} - -/// Specialize WriteGraph, the standard implementation won't work. -raw_ostream &llvm::WriteGraph(raw_ostream &O, const EdgeBundles &G, - bool ShortNames, - const std::string &Title) { - const MachineFunction *MF = G.getMachineFunction(); - - O << "digraph {\n"; - for (MachineFunction::const_iterator I = MF->begin(), E = MF->end(); - I != E; ++I) { - unsigned BB = I->getNumber(); - O << "\t\"BB#" << BB << "\" [ shape=box ]\n" - << '\t' << G.getBundle(BB, false) << " -> \"BB#" << BB << "\"\n" - << "\t\"BB#" << BB << "\" -> " << G.getBundle(BB, true) << '\n'; - for (MachineBasicBlock::const_succ_iterator SI = I->succ_begin(), - SE = I->succ_end(); SI != SE; ++SI) - O << "\t\"BB#" << BB << "\" -> \"BB#" << (*SI)->getNumber() - << "\" [ color=lightgray ]\n"; - } - O << "}\n"; - return O; -} - - -//===----------------------------------------------------------------------===// // Split Analysis //===----------------------------------------------------------------------===// |