aboutsummaryrefslogtreecommitdiffstats
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
commitfe538ebcd2512cd3ce0e3bab9aa5e9e96182a639 (patch)
tree9f33994c7b92c8618e614cf16c5abe9fb3ef693e /lib/VMCore/LLVMContextImpl.h
parent8c55602ab90ce7d995e8fa37a933cf8018817900 (diff)
downloadexternal_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.h13
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;