summaryrefslogtreecommitdiffstats
path: root/llvm/lib/TableGen/Record.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2015-06-24 06:19:19 +0000
committerCraig Topper <craig.topper@gmail.com>2015-06-24 06:19:19 +0000
commita60ee86f607c537d4f7e02948bce810d6f2b9b29 (patch)
treeeb3a7f18cb598896988ef27731935f88079e4d9b /llvm/lib/TableGen/Record.cpp
parent8d6b6f239e65064cee7e5ca6e57bcee0c63cf445 (diff)
downloadbcm5719-llvm-a60ee86f607c537d4f7e02948bce810d6f2b9b29.tar.gz
bcm5719-llvm-a60ee86f607c537d4f7e02948bce810d6f2b9b29.zip
[TableGen] Restore the use of the TheInit field in Record to cache the Record's DefInit. I broke this when I fixed memory leaks recently. Remove the DenseMap that mapped Record's to DefInit.
llvm-svn: 240524
Diffstat (limited to 'llvm/lib/TableGen/Record.cpp')
-rw-r--r--llvm/lib/TableGen/Record.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/TableGen/Record.cpp b/llvm/lib/TableGen/Record.cpp
index 97e796c1349..6e982bf1da1 100644
--- a/llvm/lib/TableGen/Record.cpp
+++ b/llvm/lib/TableGen/Record.cpp
@@ -1574,13 +1574,9 @@ void Record::checkName() {
}
DefInit *Record::getDefInit() {
- static DenseMap<Record *, std::unique_ptr<DefInit>> ThePool;
- if (TheInit)
- return TheInit;
-
- std::unique_ptr<DefInit> &I = ThePool[this];
- if (!I) I.reset(new DefInit(this, new RecordRecTy(this)));
- return I.get();
+ if (!TheInit)
+ TheInit.reset(new DefInit(this, new RecordRecTy(this)));
+ return TheInit.get();
}
const std::string &Record::getName() const {
OpenPOWER on IntegriCloud