mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
Add OPC_CheckChildSame0-3 to the DAG isel matcher. This replaces sequences of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192026 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -242,6 +242,12 @@ EmitMatcher(const Matcher *N, unsigned Indent, unsigned CurrentIdx,
|
||||
<< cast<CheckSameMatcher>(N)->getMatchNumber() << ",\n";
|
||||
return 2;
|
||||
|
||||
case Matcher::CheckChildSame:
|
||||
OS << "OPC_CheckChild"
|
||||
<< cast<CheckChildSameMatcher>(N)->getChildNo() << "Same, "
|
||||
<< cast<CheckChildSameMatcher>(N)->getMatchNumber() << ",\n";
|
||||
return 2;
|
||||
|
||||
case Matcher::CheckPatternPredicate: {
|
||||
StringRef Pred =cast<CheckPatternPredicateMatcher>(N)->getPredicate();
|
||||
OS << "OPC_CheckPatternPredicate, " << getPatternPredicate(Pred) << ',';
|
||||
@@ -753,6 +759,7 @@ void MatcherTableEmitter::EmitHistogram(const Matcher *M,
|
||||
case Matcher::MoveChild: OS << "OPC_MoveChild"; break;
|
||||
case Matcher::MoveParent: OS << "OPC_MoveParent"; break;
|
||||
case Matcher::CheckSame: OS << "OPC_CheckSame"; break;
|
||||
case Matcher::CheckChildSame: OS << "OPC_CheckChildSame"; break;
|
||||
case Matcher::CheckPatternPredicate:
|
||||
OS << "OPC_CheckPatternPredicate"; break;
|
||||
case Matcher::CheckPredicate: OS << "OPC_CheckPredicate"; break;
|
||||
|
||||
Reference in New Issue
Block a user