mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-27 13:30:05 +00:00
llvm-mc/AsmMatcher: Remove some code which has been obsoleted by move to
explicit parser match classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78588 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8e00117e04
commit
ac6b4f2c0c
@ -293,9 +293,6 @@ struct ClassInfo {
|
||||
/// N) for the Nth user defined class.
|
||||
unsigned Kind;
|
||||
|
||||
/// SuperClassKind - The super class kind for user classes.
|
||||
unsigned SuperClassKind;
|
||||
|
||||
/// SuperClass - The super class, or 0.
|
||||
ClassInfo *SuperClass;
|
||||
|
||||
@ -525,6 +522,7 @@ ClassInfo *AsmMatcherInfo::getTokenClass(const StringRef &Token) {
|
||||
if (!Entry) {
|
||||
Entry = new ClassInfo();
|
||||
Entry->Kind = ClassInfo::Token;
|
||||
Entry->SuperClass = 0;
|
||||
Entry->ClassName = "Token";
|
||||
Entry->Name = "MCK_" + getEnumNameForToken(Token);
|
||||
Entry->ValueName = Token;
|
||||
@ -562,7 +560,7 @@ void AsmMatcherInfo::BuildInfo(CodeGenTarget &Target) {
|
||||
// FIXME: This needs to dice up the RegisterClass instances.
|
||||
ClassInfo *RegClass = TheRegisterClass = new ClassInfo();
|
||||
RegClass->Kind = ClassInfo::Register;
|
||||
RegClass->SuperClassKind = ClassInfo::Invalid;
|
||||
RegClass->SuperClass = 0;
|
||||
RegClass->ClassName = "Reg";
|
||||
RegClass->Name = "MCK_Reg";
|
||||
RegClass->ValueName = "<register class>";
|
||||
@ -661,24 +659,6 @@ void AsmMatcherInfo::BuildInfo(CodeGenTarget &Target) {
|
||||
Instructions.push_back(II.take());
|
||||
}
|
||||
|
||||
// Bind user super classes.
|
||||
std::map<unsigned, ClassInfo*> UserClasses;
|
||||
for (unsigned i = 0, e = Classes.size(); i != e; ++i) {
|
||||
ClassInfo &CI = *Classes[i];
|
||||
if (CI.isUserClass())
|
||||
UserClasses[CI.Kind] = &CI;
|
||||
}
|
||||
|
||||
for (unsigned i = 0, e = Classes.size(); i != e; ++i) {
|
||||
ClassInfo &CI = *Classes[i];
|
||||
if (CI.isUserClass() && CI.SuperClassKind != ClassInfo::Invalid) {
|
||||
CI.SuperClass = UserClasses[CI.SuperClassKind];
|
||||
assert(CI.SuperClass && "Missing super class definition!");
|
||||
} else {
|
||||
CI.SuperClass = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Reorder classes so that classes preceed super classes.
|
||||
std::sort(Classes.begin(), Classes.end(), less_ptr<ClassInfo>());
|
||||
}
|
||||
@ -863,8 +843,8 @@ static void EmitClassifyOperand(CodeGenTarget &Target,
|
||||
OS << " assert(Operand." << CI.SuperClass->PredicateMethod
|
||||
<< "() && \"Invalid class relationship!\");\n";
|
||||
|
||||
OS << " return " << CI.Name << ";\n\n";
|
||||
OS << " }";
|
||||
OS << " return " << CI.Name << ";\n";
|
||||
OS << " }\n\n";
|
||||
}
|
||||
}
|
||||
OS << " return InvalidMatchClass;\n";
|
||||
|
Loading…
Reference in New Issue
Block a user