mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
unique_ptrify MatchableInfo(const CodeGenInstAlias *Alias)'s parameter
llvm-svn: 224733
This commit is contained in:
parent
c88fff49c9
commit
856eebedff
@ -391,6 +391,10 @@ struct MatchableInfo {
|
||||
/// AsmVariantID - Target's assembly syntax variant no.
|
||||
int AsmVariantID;
|
||||
|
||||
/// AsmString - The assembly string for this instruction (with variants
|
||||
/// removed), e.g. "movsx $src, $dst".
|
||||
std::string AsmString;
|
||||
|
||||
/// TheDef - This is the definition of the instruction or InstAlias that this
|
||||
/// matchable came from.
|
||||
Record *const TheDef;
|
||||
@ -408,10 +412,6 @@ struct MatchableInfo {
|
||||
/// MCInst.
|
||||
SmallVector<ResOperand, 8> ResOperands;
|
||||
|
||||
/// AsmString - The assembly string for this instruction (with variants
|
||||
/// removed), e.g. "movsx $src, $dst".
|
||||
std::string AsmString;
|
||||
|
||||
/// Mnemonic - This is the first token of the matched instruction, its
|
||||
/// mnemonic.
|
||||
StringRef Mnemonic;
|
||||
@ -434,18 +434,15 @@ struct MatchableInfo {
|
||||
bool HasDeprecation;
|
||||
|
||||
MatchableInfo(const CodeGenInstruction &CGI)
|
||||
: AsmVariantID(0), TheDef(CGI.TheDef), DefRec(&CGI),
|
||||
AsmString(CGI.AsmString) {
|
||||
: AsmVariantID(0), AsmString(CGI.AsmString), TheDef(CGI.TheDef), DefRec(&CGI) {
|
||||
}
|
||||
|
||||
MatchableInfo(const CodeGenInstAlias *Alias)
|
||||
: AsmVariantID(0), TheDef(Alias->TheDef), DefRec(Alias),
|
||||
AsmString(Alias->AsmString) {
|
||||
MatchableInfo(std::unique_ptr<const CodeGenInstAlias> Alias)
|
||||
: AsmVariantID(0), AsmString(Alias->AsmString), TheDef(Alias->TheDef), DefRec(Alias.release()) {
|
||||
}
|
||||
|
||||
~MatchableInfo() {
|
||||
if (DefRec.is<const CodeGenInstAlias*>())
|
||||
delete DefRec.get<const CodeGenInstAlias*>();
|
||||
delete DefRec.dyn_cast<const CodeGenInstAlias*>();
|
||||
}
|
||||
|
||||
// Two-operand aliases clone from the main matchable, but mark the second
|
||||
@ -1358,8 +1355,8 @@ void AsmMatcherInfo::buildInfo() {
|
||||
std::vector<Record*> AllInstAliases =
|
||||
Records.getAllDerivedDefinitions("InstAlias");
|
||||
for (unsigned i = 0, e = AllInstAliases.size(); i != e; ++i) {
|
||||
CodeGenInstAlias *Alias =
|
||||
new CodeGenInstAlias(AllInstAliases[i], AsmVariantNo, Target);
|
||||
auto Alias = llvm::make_unique<CodeGenInstAlias>(AllInstAliases[i],
|
||||
AsmVariantNo, Target);
|
||||
|
||||
// If the tblgen -match-prefix option is specified (for tblgen hackers),
|
||||
// filter the set of instruction aliases we consider, based on the target
|
||||
@ -1368,7 +1365,7 @@ void AsmMatcherInfo::buildInfo() {
|
||||
.startswith( MatchPrefix))
|
||||
continue;
|
||||
|
||||
std::unique_ptr<MatchableInfo> II(new MatchableInfo(Alias));
|
||||
std::unique_ptr<MatchableInfo> II(new MatchableInfo(std::move(Alias)));
|
||||
|
||||
II->initialize(*this, SingletonRegisters, AsmVariantNo, RegisterPrefix);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user