aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/SplitKit.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/CodeGen/SplitKit.h')
-rw-r--r--llvm/lib/CodeGen/SplitKit.h38
1 files changed, 1 insertions, 37 deletions
diff --git a/llvm/lib/CodeGen/SplitKit.h b/llvm/lib/CodeGen/SplitKit.h
index a6ba376..236986e 100644
--- a/llvm/lib/CodeGen/SplitKit.h
+++ b/llvm/lib/CodeGen/SplitKit.h
@@ -1,4 +1,4 @@
-//===-------- SplitKit.cpp - Toolkit for splitting live ranges --*- C++ -*-===//
+//===-------- SplitKit.h - Toolkit for splitting live ranges ----*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -13,12 +13,9 @@
//===----------------------------------------------------------------------===//
#include "llvm/ADT/DenseMap.h"
-#include "llvm/ADT/IntEqClasses.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/CodeGen/SlotIndexes.h"
-#include <string>
-
namespace llvm {
class LiveInterval;
@@ -40,39 +37,6 @@ template <class NodeT> class DomTreeNodeBase;
typedef DomTreeNodeBase<MachineBasicBlock> MachineDomTreeNode;
-/// EdgeBundles - Group CFG edges into equivalence classes where registers must
-/// be allocated identically. This annotates the CFG to form a bipartite graph
-/// where each block is connected to an ingoing and an outgoing bundle.
-/// Edge bundles are simply numbered, there is no object representation.
-class EdgeBundles {
- const MachineFunction *MF;
-
- /// EC - Each edge bundle is an equivalence class. The keys are:
- /// 2*BB->getNumber() -> Ingoing bundle.
- /// 2*BB->getNumber()+1 -> Outgoing bundle.
- IntEqClasses EC;
-
-public:
- /// compute - Compute the edge bundles for MF. Bundles depend only on the CFG.
- void compute(const MachineFunction *MF);
-
- /// getBundle - Return the ingoing (Out = false) or outgoing (Out = true)
- /// bundle number for basic block #N
- unsigned getBundle(unsigned N, bool Out) const { return EC[2 * N + Out]; }
-
- /// getMachineFunction - Return the last machine function computed.
- const MachineFunction *getMachineFunction() const { return MF; }
-
- /// view - Visualize the annotated bipartite CFG with Graphviz.
- void view() const;
-};
-
-/// Specialize WriteGraph, the standard implementation won't work.
-raw_ostream &WriteGraph(raw_ostream &O, const EdgeBundles &G,
- bool ShortNames = false,
- const std::string &Title = "");
-
-
/// SplitAnalysis - Analyze a LiveInterval, looking for live range splitting
/// opportunities.
class SplitAnalysis {