Move PHIElimination's SplitCriticalEdge for MachineBasicBlocks out
[oota-llvm.git] / include / llvm / CodeGen / MachineBasicBlock.h
index cc651ca77b7756c63f390738bff34d9e018c8c56..82f9c0f25f0f433dc75fb78d2dcb779bc54a48d8 100644 (file)
@@ -19,6 +19,7 @@
 
 namespace llvm {
 
+class Pass;
 class BasicBlock;
 class MachineFunction;
 class MCSymbol;
@@ -281,6 +282,14 @@ public:
   /// it returns end()
   iterator getFirstTerminator();
 
+  /// SplitCriticalEdge - Split the critical edge from this block to the
+  /// given successor block, and return the newly created block, or null
+  /// if splitting is not possible.
+  ///
+  /// This function updates LiveVariables, MachineDominatorTree, and
+  /// MachineLoopInfo, as applicable.
+  MachineBasicBlock *SplitCriticalEdge(MachineBasicBlock *Succ, Pass *P);
+
   void pop_front() { Insts.pop_front(); }
   void pop_back() { Insts.pop_back(); }
   void push_back(MachineInstr *MI) { Insts.push_back(MI); }