[TableGen] Clang changes for r235697 to stop leaking Expanders and Operators in SetTheory.

llvm-svn: 235698
This commit is contained in:
Craig Topper 2015-04-24 06:53:50 +00:00
parent ba6057de71
commit bccb773ebc

View File

@ -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<Type, std::string> 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<LowHalf>());
ST.addOperator("highhalf", llvm::make_unique<HighHalf>());
ST.addOperator("rev",
llvm::make_unique<Rev>(Arg1.first.getElementSizeInBits()));
ST.addExpander("MaskExpand",
llvm::make_unique<MaskExpander>(Arg1.first.getNumElements()));
ST.evaluate(DI->getArg(2), Elts, None);
std::string S = "__builtin_shufflevector(" + Arg1.second + ", " + Arg2.second;