Change the BasicBlockAddrs map to be a vector, indexed by MBB number.
[oota-llvm.git] / include / llvm / BasicBlock.h
index 008fb6b540082a0fd3948fcb9bf9f38e80c946d1..55ecd4052e6925a4349b3257e634815e406d3f4f 100644 (file)
@@ -101,6 +101,11 @@ public:
   /// and deletes it.
   ///
   void eraseFromParent();
+  
+  /// moveBefore - Unlink this instruction from its current function and
+  /// insert it into the function that MovePos lives in, right before
+  /// MovePos.
+  void moveBefore(BasicBlock *MovePos);
 
   /// getSinglePredecessor - If this basic block has a single predecessor block,
   /// return the block, otherwise return a null pointer.
@@ -134,7 +139,7 @@ public:
   void print(std::ostream &OS, AssemblyAnnotationWriter *AAW) const;
 
   /// Methods for support type inquiry through isa, cast, and dyn_cast:
-  static inline bool classof(const BasicBlock *BB) { return true; }
+  static inline bool classof(const BasicBlock *) { return true; }
   static inline bool classof(const Value *V) {
     return V->getValueType() == Value::BasicBlockVal;
   }
@@ -160,9 +165,9 @@ public:
   /// splitBasicBlock - This splits a basic block into two at the specified
   /// instruction.  Note that all instructions BEFORE the specified iterator
   /// stay as part of the original basic block, an unconditional branch is added
-  /// to the new BB, and the rest of the instructions in the BB are moved to the
-  /// new BB, including the old terminator.  The newly formed BasicBlock is
-  /// returned.  This function invalidates the specified iterator.
+  /// to the original BB, and the rest of the instructions in the BB are moved
+  /// to the new BB, including the old terminator.  The newly formed BasicBlock
+  /// is returned.  This function invalidates the specified iterator.
   ///
   /// Note that this only works on well formed basic blocks (must have a
   /// terminator), and 'I' must not be the end of instruction list (which would