From bccb773ebc005cc1456b37f6c9e9d634efe46312 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Fri, 24 Apr 2015 06:53:50 +0000 Subject: [PATCH] [TableGen] Clang changes for r235697 to stop leaking Expanders and Operators in SetTheory. llvm-svn: 235698 --- clang/utils/TableGen/NeonEmitter.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/clang/utils/TableGen/NeonEmitter.cpp b/clang/utils/TableGen/NeonEmitter.cpp index 2a857a8..e039ae5 100644 --- a/clang/utils/TableGen/NeonEmitter.cpp +++ b/clang/utils/TableGen/NeonEmitter.cpp @@ -25,6 +25,7 @@ //===----------------------------------------------------------------------===// #include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SmallString.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringExtras.h" @@ -1629,15 +1630,13 @@ std::pair Intrinsic::DagEmitter::emitDagShuffle(DagInit *DI){ "Different types in arguments to shuffle!"); SetTheory ST; - LowHalf LH; - HighHalf HH; - MaskExpander ME(Arg1.first.getNumElements()); - Rev R(Arg1.first.getElementSizeInBits()); SetTheory::RecSet Elts; - ST.addOperator("lowhalf", &LH); - ST.addOperator("highhalf", &HH); - ST.addOperator("rev", &R); - ST.addExpander("MaskExpand", &ME); + ST.addOperator("lowhalf", llvm::make_unique()); + ST.addOperator("highhalf", llvm::make_unique()); + ST.addOperator("rev", + llvm::make_unique(Arg1.first.getElementSizeInBits())); + ST.addExpander("MaskExpand", + llvm::make_unique(Arg1.first.getNumElements())); ST.evaluate(DI->getArg(2), Elts, None); std::string S = "__builtin_shufflevector(" + Arg1.second + ", " + Arg2.second; -- 2.7.4