summaryrefslogtreecommitdiff
path: root/lib/VMCore/LLVMContextImpl.h
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2009-08-17 17:59:35 +0000
committerOwen Anderson <resistor@mac.com>2009-08-17 17:59:35 +0000
commit7b7b1020234a366dace1b449726c0751b879aefd (patch)
tree9f33994c7b92c8618e614cf16c5abe9fb3ef693e /lib/VMCore/LLVMContextImpl.h
parent5fe01f4e4b895dcb316784d183dc60fdc5aec4a2 (diff)
downloadllvm-7b7b1020234a366dace1b449726c0751b879aefd.tar.gz
llvm-7b7b1020234a366dace1b449726c0751b879aefd.tar.bz2
llvm-7b7b1020234a366dace1b449726c0751b879aefd.tar.xz
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.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/VMCore/LLVMContextImpl.h b/lib/VMCore/LLVMContextImpl.h
index 265201434d..c0ed368bae 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;