diff options
author | Owen Anderson <resistor@mac.com> | 2009-08-17 17:59:35 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2009-08-17 17:59:35 +0000 |
commit | fe538ebcd2512cd3ce0e3bab9aa5e9e96182a639 (patch) | |
tree | 9f33994c7b92c8618e614cf16c5abe9fb3ef693e /lib/VMCore/LLVMContextImpl.h | |
parent | 8c55602ab90ce7d995e8fa37a933cf8018817900 (diff) | |
download | external_llvm-fe538ebcd2512cd3ce0e3bab9aa5e9e96182a639.zip external_llvm-fe538ebcd2512cd3ce0e3bab9aa5e9e96182a639.tar.gz external_llvm-fe538ebcd2512cd3ce0e3bab9aa5e9e96182a639.tar.bz2 |
Privatize the last bits of static type state.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79258 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/LLVMContextImpl.h')
-rw-r--r-- | lib/VMCore/LLVMContextImpl.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/VMCore/LLVMContextImpl.h b/lib/VMCore/LLVMContextImpl.h index 2652014..c0ed368 100644 --- a/lib/VMCore/LLVMContextImpl.h +++ b/lib/VMCore/LLVMContextImpl.h @@ -22,6 +22,7 @@ #include "llvm/DerivedTypes.h" #include "llvm/System/Mutex.h" #include "llvm/System/RWMutex.h" +#include "llvm/Assembly/Writer.h" #include "llvm/ADT/APFloat.h" #include "llvm/ADT/APInt.h" #include "llvm/ADT/DenseMap.h" @@ -136,6 +137,18 @@ public: // Lock used for guarding access to the type maps. sys::SmartMutex<true> TypeMapLock; + // Recursive lock used for guarding access to AbstractTypeUsers. + // NOTE: The true template parameter means this will no-op when we're not in + // multithreaded mode. + sys::SmartMutex<true> AbstractTypeUsersLock; + + // Concrete/Abstract TypeDescriptions - We lazily calculate type descriptions + // for types as they are needed. Because resolution of types must invalidate + // all of the abstract type descriptions, we keep them in a seperate map to + // make this easy. + TypePrinting ConcreteTypeDescriptions; + TypePrinting AbstractTypeDescriptions; + TypeMap<ArrayValType, ArrayType> ArrayTypes; TypeMap<VectorValType, VectorType> VectorTypes; TypeMap<PointerValType, PointerType> PointerTypes; |