diff options
| author | Owen Anderson <resistor@mac.com> | 2009-07-16 22:11:26 +0000 |
|---|---|---|
| committer | Owen Anderson <resistor@mac.com> | 2009-07-16 22:11:26 +0000 |
| commit | 69ab416d66fbf62e2f5b91b0814f4b7eab436c3d (patch) | |
| tree | e5ce2ca69c74da05bfd8ed16556f0294cf912b0b /llvm/lib/VMCore/Constants.cpp | |
| parent | 54c596465d9fd58df57b91651dbe93473f6332f2 (diff) | |
| download | bcm5719-llvm-69ab416d66fbf62e2f5b91b0814f4b7eab436c3d.tar.gz bcm5719-llvm-69ab416d66fbf62e2f5b91b0814f4b7eab436c3d.zip | |
Privatize the MDString uniquing table.
llvm-svn: 76113
Diffstat (limited to 'llvm/lib/VMCore/Constants.cpp')
| -rw-r--r-- | llvm/lib/VMCore/Constants.cpp | 27 |
1 files changed, 1 insertions, 26 deletions
diff --git a/llvm/lib/VMCore/Constants.cpp b/llvm/lib/VMCore/Constants.cpp index 6092eb150ae..cf01a9feef8 100644 --- a/llvm/lib/VMCore/Constants.cpp +++ b/llvm/lib/VMCore/Constants.cpp @@ -1435,33 +1435,8 @@ MDString::MDString(const char *begin, const char *end) : Constant(Type::MetadataTy, MDStringVal, 0, 0), StrBegin(begin), StrEnd(end) {} -static ManagedStatic<StringMap<MDString*> > MDStringCache; - -MDString *MDString::get(const char *StrBegin, const char *StrEnd) { - sys::SmartScopedWriter<true> Writer(*ConstantsLock); - StringMapEntry<MDString *> &Entry = MDStringCache->GetOrCreateValue( - StrBegin, StrEnd); - MDString *&S = Entry.getValue(); - if (!S) S = new MDString(Entry.getKeyData(), - Entry.getKeyData() + Entry.getKeyLength()); - - return S; -} - -MDString *MDString::get(const std::string &Str) { - sys::SmartScopedWriter<true> Writer(*ConstantsLock); - StringMapEntry<MDString *> &Entry = MDStringCache->GetOrCreateValue( - Str.data(), Str.data() + Str.size()); - MDString *&S = Entry.getValue(); - if (!S) S = new MDString(Entry.getKeyData(), - Entry.getKeyData() + Entry.getKeyLength()); - - return S; -} - void MDString::destroyConstant() { - sys::SmartScopedWriter<true> Writer(*ConstantsLock); - MDStringCache->erase(MDStringCache->find(StrBegin, StrEnd)); + getType()->getContext().erase(this); destroyConstantImpl(); } |

