mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-03-04 16:41:43 +00:00
[TableGen] Clang changes for r235697 to stop leaking Expanders and Operators in SetTheory.
llvm-svn: 235698
This commit is contained in:
parent
ba6057de71
commit
bccb773ebc
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user