ocaml bindings: add getopcode for constant and instruction, and int64_of_const.
[oota-llvm.git] / lib / VMCore / LLVMContextImpl.h
index e36864b27b5d0f6cf5fdbc4360a44e76f81c790b..a3f68fecbbf6ce480a3a0201d725b7832f70b12c 100644 (file)
@@ -42,8 +42,8 @@ class Value;
 struct DenseMapAPIntKeyInfo {
   struct KeyTy {
     APInt val;
-    const Type* type;
-    KeyTy(const APInt& V, const Type* Ty) : val(V), type(Ty) {}
+    Type* type;
+    KeyTy(const APInt& V, Type* Ty) : val(V), type(Ty) {}
     KeyTy(const KeyTy& that) : val(that.val), type(that.type) {}
     bool operator==(const KeyTy& that) const {
       return type == that.type && this->val == that.val;
@@ -173,6 +173,11 @@ public:
   Type X86_FP80Ty, FP128Ty, PPC_FP128Ty, X86_MMXTy;
   IntegerType Int1Ty, Int8Ty, Int16Ty, Int32Ty, Int64Ty;
 
+  
+  /// TypeAllocator - All dynamically allocated types are allocated from this.
+  /// They live forever until the context is torn down.
+  BumpPtrAllocator TypeAllocator;
+  
   DenseMap<unsigned, IntegerType*> IntegerTypes;
   
   // TODO: Optimize FunctionTypes/AnonStructTypes!