diff options
author | Owen Anderson <resistor@mac.com> | 2009-06-19 17:50:11 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2009-06-19 17:50:11 +0000 |
commit | 94fefe27f574ed98ad2522f8a7d1515e698ff036 (patch) | |
tree | 9d8ce7fe9900ea4c9af99b694691db1a4a2064ea /include/llvm/Support/ManagedStatic.h | |
parent | 0c689c5e051228616e301d54a8ea11ebee5caa4a (diff) | |
download | llvm-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.h | 8 |
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); |