*** empty log message ***
[oota-llvm.git] / include / llvm / Instruction.h
index d2804ab70415324a972670059240588a5a6bfc49..0674f0ed1ab34193f6170df3c3b7939ef486e081 100644 (file)
@@ -1,7 +1,7 @@
-//===-- llvm/Instruction.h - Instruction class definition --------*- C++ -*--=//
+//===-- llvm/Instruction.h - Instruction class definition -------*- C++ -*-===//
 //
 // This file contains the declaration of the Instruction class, which is the
-// base class for all of the VM instructions.
+// base class for all of the LLVM instructions.
 //
 //===----------------------------------------------------------------------===//
 
@@ -22,11 +22,13 @@ class Instruction : public User {
 
   friend class SymbolTableListTraits<Instruction, BasicBlock, Function,
                                      ilist_traits<Instruction> >;
-  inline void setParent(BasicBlock *P) { Parent = P; }
+  void setParent(BasicBlock *P);
 protected:
-  unsigned iType;      // InstructionType
+  unsigned iType;      // InstructionType: The opcode of the instruction
+
+  Instruction(const Type *Ty, unsigned iType, const std::string &Name = "",
+              Instruction *InsertBefore = 0);
 public:
-  Instruction(const Type *Ty, unsigned iType, const std::string &Name = "");
   virtual ~Instruction() {
     assert(Parent == 0 && "Instruction still embedded in basic block!");
   }
@@ -34,11 +36,11 @@ public:
   // Specialize setName to handle symbol table majik...
   virtual void setName(const std::string &name, SymbolTable *ST = 0);
   
-  // clone() - Create a copy of 'this' instruction that is identical in all ways
-  // except the following:
-  //   * The instruction has no parent
-  //   * The instruction has no name
-  //
+  /// clone() - Create a copy of 'this' instruction that is identical in all
+  /// ways except the following:
+  ///   * The instruction has no parent
+  ///   * The instruction has no name
+  ///
   virtual Instruction *clone() const = 0;
   
   // Accessor methods...
@@ -56,9 +58,9 @@ public:
   virtual bool hasSideEffects() const { return false; }  // Memory & Call insts
 
   // ---------------------------------------------------------------------------
-  // Subclass classification... getOpcode() returns a member of 
-  // one of the enums that is coming soon (down below)...
-  //
+  /// Subclass classification... getOpcode() returns a member of 
+  /// one of the enums that is coming soon (down below)...
+  ///
   unsigned getOpcode() const { return iType; }
   virtual const char *getOpcodeName() const {
     return getOpcodeName(getOpcode());
@@ -74,7 +76,7 @@ public:
 
   virtual void print(std::ostream &OS) const;
 
-  // Methods for support type inquiry through isa, cast, and dyn_cast:
+  /// 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 Value *V) {
     return V->getValueType() == Value::InstructionVal;