Add lvxl
[oota-llvm.git] / include / llvm / Instruction.h
index 9bf629a7f02698ff97bcf3122320f4c286ac67e1..2b025dd8753f0f033cd68afff167583930d6505f 100644 (file)
@@ -27,6 +27,9 @@ template<typename ValueSubClass, typename ItemParentClass, typename SymTabClass,
          typename SubClass> class SymbolTableListTraits;
 
 class Instruction : public User {
+  void operator=(const Instruction &);     // Do not implement
+  Instruction(const Instruction &);        // Do not implement
+
   BasicBlock *Parent;
   Instruction *Prev, *Next; // Next and Prev links for our intrusive linked list
 
@@ -93,6 +96,11 @@ public:
   ///
   void eraseFromParent();
 
+  /// moveBefore - Unlink this instruction from its current basic block and
+  /// insert it into the basic block that MovePos lives in, right before
+  /// MovePos.
+  void moveBefore(Instruction *MovePos);
+
   // ---------------------------------------------------------------------------
   /// Subclass classification... getOpcode() returns a member of
   /// one of the enums that is coming soon (down below)...
@@ -152,7 +160,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 Instruction *I) { return true; }
+  static inline bool classof(const Instruction *) { return true; }
   static inline bool classof(const Value *V) {
     return V->getValueType() >= Value::InstructionVal;
   }