summaryrefslogtreecommitdiff
path: root/include/llvm/Support/ManagedStatic.h
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2009-06-19 17:50:11 +0000
committerOwen Anderson <resistor@mac.com>2009-06-19 17:50:11 +0000
commit94fefe27f574ed98ad2522f8a7d1515e698ff036 (patch)
tree9d8ce7fe9900ea4c9af99b694691db1a4a2064ea /include/llvm/Support/ManagedStatic.h
parent0c689c5e051228616e301d54a8ea11ebee5caa4a (diff)
downloadllvm-94fefe27f574ed98ad2522f8a7d1515e698ff036.tar.gz
llvm-94fefe27f574ed98ad2522f8a7d1515e698ff036.tar.bz2
llvm-94fefe27f574ed98ad2522f8a7d1515e698ff036.tar.xz
Fences are expensive. Avoid doing them when we're not in multithreaded mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73777 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/ManagedStatic.h')
-rw-r--r--include/llvm/Support/ManagedStatic.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/llvm/Support/ManagedStatic.h b/include/llvm/Support/ManagedStatic.h
index ee335d819a..4fc648319a 100644
--- a/include/llvm/Support/ManagedStatic.h
+++ b/include/llvm/Support/ManagedStatic.h
@@ -61,28 +61,28 @@ public:
// Accessors.
C &operator*() {
void* tmp = Ptr;
- sys::MemoryFence();
+ if (llvm_is_multithreaded()) sys::MemoryFence();
if (!tmp) RegisterManagedStatic(object_creator<C>, object_deleter<C>);
return *static_cast<C*>(Ptr);
}
C *operator->() {
void* tmp = Ptr;
- sys::MemoryFence();
+ if (llvm_is_multithreaded()) sys::MemoryFence();
if (!tmp) RegisterManagedStatic(object_creator<C>, object_deleter<C>);
return static_cast<C*>(Ptr);
}
const C &operator*() const {
void* tmp = Ptr;
- sys::MemoryFence();
+ if (llvm_is_multithreaded()) sys::MemoryFence();
if (!tmp) RegisterManagedStatic(object_creator<C>, object_deleter<C>);
return *static_cast<C*>(Ptr);
}
const C *operator->() const {
void* tmp = Ptr;
- sys::MemoryFence();
+ if (llvm_is_multithreaded()) sys::MemoryFence();
if (!tmp) RegisterManagedStatic(object_creator<C>, object_deleter<C>);
return static_cast<C*>(Ptr);