diff options
author | Craig Topper <craig.topper@gmail.com> | 2015-06-24 06:19:19 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2015-06-24 06:19:19 +0000 |
commit | a60ee86f607c537d4f7e02948bce810d6f2b9b29 (patch) | |
tree | eb3a7f18cb598896988ef27731935f88079e4d9b /llvm/lib/TableGen/Record.cpp | |
parent | 8d6b6f239e65064cee7e5ca6e57bcee0c63cf445 (diff) | |
download | bcm5719-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.cpp | 10 |
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 { |