Use a StringMap to ensure CodeInits are unique and created only
once.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136492
91177308-0d34-0410-b5e6-
96231b3b80d8
}
const CodeInit *CodeInit::get(const std::string &V) {
- return new CodeInit(V);
+ typedef StringMap<CodeInit *> Pool;
+ static Pool ThePool;
+
+ CodeInit *&I = ThePool[V];
+ if (!I) I = new CodeInit(V);
+ return I;
}
const ListInit *ListInit::get(ArrayRef<const Init *> Range, RecTy *EltTy) {