diff --git a/utils/TableGen/NeonEmitter.cpp b/utils/TableGen/NeonEmitter.cpp index 2a857a87ef1ea42a0a7287890be00917ecd22b92..e039ae59560737916c27c42901c7449c191f7cda 100644 --- a/utils/TableGen/NeonEmitter.cpp +++ b/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<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;