summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/Constants.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2009-07-16 22:11:26 +0000
committerOwen Anderson <resistor@mac.com>2009-07-16 22:11:26 +0000
commit69ab416d66fbf62e2f5b91b0814f4b7eab436c3d (patch)
treee5ce2ca69c74da05bfd8ed16556f0294cf912b0b /llvm/lib/VMCore/Constants.cpp
parent54c596465d9fd58df57b91651dbe93473f6332f2 (diff)
downloadbcm5719-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.cpp27
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();
}
OpenPOWER on IntegriCloud