diff options
author | Owen Anderson <resistor@mac.com> | 2009-07-15 22:50:23 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2009-07-15 22:50:23 +0000 |
commit | fea4ec6dff9634ff134911369f3853bf6bc85dc5 (patch) | |
tree | ea49ed9dfbe9eaf86a26445d9efdf4739b7acc4f /include/llvm | |
parent | 0c77db32dd8ae10b5a26d60718dbe03dc2745888 (diff) | |
download | external_llvm-fea4ec6dff9634ff134911369f3853bf6bc85dc5.zip external_llvm-fea4ec6dff9634ff134911369f3853bf6bc85dc5.tar.gz external_llvm-fea4ec6dff9634ff134911369f3853bf6bc85dc5.tar.bz2 |
Add an LLVMContext to Type, hardwired to the global context until Type uniquing is moved on the contexts themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75853 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/Type.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/include/llvm/Type.h b/include/llvm/Type.h index c311dbe..5e09a61 100644 --- a/include/llvm/Type.h +++ b/include/llvm/Type.h @@ -12,6 +12,7 @@ #define LLVM_TYPE_H #include "llvm/AbstractTypeUser.h" +#include "llvm/LLVMContext.h" #include "llvm/Support/Casting.h" #include "llvm/Support/DataTypes.h" #include "llvm/System/Atomic.h" @@ -106,6 +107,9 @@ private: /// mutable sys::cas_flag RefCount; + /// Context - This refers to the LLVMContext in which this type was uniqued. + LLVMContext &Context; + const Type *getForwardedTypeInternal() const; // Some Type instances are allocated as arrays, some aren't. So we provide @@ -114,7 +118,8 @@ private: protected: explicit Type(TypeID id) : ID(id), Abstract(false), SubclassData(0), - RefCount(0), ForwardType(0), NumContainedTys(0), + RefCount(0), Context(getGlobalContext()), + ForwardType(0), NumContainedTys(0), ContainedTys(0) {} virtual ~Type() { assert(AbstractTypeUsers.empty() && "Abstract types remain"); @@ -170,6 +175,9 @@ public: /// module). void dump(const Module *Context) const; + /// getContext - Fetch the LLVMContext in which this type was uniqued. + LLVMContext &getContext() const { return Context; } + //===--------------------------------------------------------------------===// // Property accessors for dealing with types... Some of these virtual methods // are defined in private classes defined in Type.cpp for primitive types. |