correct the type of two intrinsics, add int_ppc_altivec_vmladduhm
[oota-llvm.git] / include / llvm / Value.h
index f71491d36ea26ee3e3516f8e7c9471bf9f307f05..5c50fd0a5d3b3104f64b803c9e23b92f4148ffed 100644 (file)
@@ -31,6 +31,7 @@ class BasicBlock;
 class GlobalValue;
 class Function;
 class GlobalVariable;
+class InlineAsm;
 class SymbolTable;
 
 //===----------------------------------------------------------------------===//
@@ -51,7 +52,8 @@ private:
   PATypeHolder Ty;
   Use *UseList;
 
-  friend class SymbolTable;    // Allow SymbolTable to directly poke Name.
+  friend class ValueSymbolTable; // Allow ValueSymbolTable to directly mod Name.
+  friend class SymbolTable;      // Allow SymbolTable to directly poke Name.
   std::string Name;
 
   void operator=(const Value &);     // Do not implement
@@ -154,18 +156,19 @@ public:
     ConstantStructVal,        // This is an instance of ConstantStruct
     ConstantPackedVal,        // This is an instance of ConstantPacked
     ConstantPointerNullVal,   // This is an instance of ConstantPointerNull
+    InlineAsmVal,             // This is an instance of InlineAsm
     InstructionVal,           // This is an instance of Instruction
     
     // Markers:
     ConstantFirstVal = FunctionVal,
-    ConstantLastVal  = ConstantPointerNullVal,
+    ConstantLastVal  = ConstantPointerNullVal
   };
   unsigned getValueType() const {
     return SubclassID;
   }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
-  static inline bool classof(const Value *V) {
+  static inline bool classof(const Value *) {
     return true; // Values are always values.
   }
 
@@ -175,7 +178,7 @@ public:
 
 private:
   /// FIXME: this is a gross hack, needed by another gross hack.  Eliminate!
-  void setValueType(unsigned VT) { SubclassID = VT; }
+  void setValueType(unsigned short VT) { SubclassID = VT; }
   friend class Instruction;
 };
 
@@ -211,6 +214,9 @@ template <> inline bool isa_impl<Constant, Value>(const Value &Val) {
 template <> inline bool isa_impl<Argument, Value>(const Value &Val) {
   return Val.getValueType() == Value::ArgumentVal;
 }
+template <> inline bool isa_impl<InlineAsm, Value>(const Value &Val) {
+  return Val.getValueType() == Value::InlineAsmVal;
+}
 template <> inline bool isa_impl<Instruction, Value>(const Value &Val) {
   return Val.getValueType() >= Value::InstructionVal;
 }