mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-20 16:17:38 +00:00
Fix PR2590 by making PatternSortingPredicate actually be
ordered correctly. Previously it would get in trouble when two patterns were too similar and give them nondet ordering. We force this by using the record ID order as a fallback. The testsuite diff is due to alpha patterns being ordered slightly differently, the change is a semantic noop afaict: < lda $0,-100($16) --- > subq $16,100,$0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97509 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -2110,7 +2110,8 @@ void CodeGenDAGPatterns::ParseInstructions() {
|
||||
SrcPattern,
|
||||
TheInst.getResultPattern(),
|
||||
TheInst.getImpResults(),
|
||||
Instr->getValueAsInt("AddedComplexity")));
|
||||
Instr->getValueAsInt("AddedComplexity"),
|
||||
Instr->getID()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2320,7 +2321,8 @@ void CodeGenDAGPatterns::ParsePatterns() {
|
||||
PatternToMatch(Patterns[i]->getValueAsListInit("Predicates"),
|
||||
Pattern->getTree(0),
|
||||
Temp.getOnlyTree(), InstImpResults,
|
||||
Patterns[i]->getValueAsInt("AddedComplexity")));
|
||||
Patterns[i]->getValueAsInt("AddedComplexity"),
|
||||
Patterns[i]->getID()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2614,7 +2616,8 @@ void CodeGenDAGPatterns::GenerateVariants() {
|
||||
push_back(PatternToMatch(PatternsToMatch[i].getPredicates(),
|
||||
Variant, PatternsToMatch[i].getDstPattern(),
|
||||
PatternsToMatch[i].getDstRegs(),
|
||||
PatternsToMatch[i].getAddedComplexity()));
|
||||
PatternsToMatch[i].getAddedComplexity(),
|
||||
Record::getNewUID()));
|
||||
}
|
||||
|
||||
DEBUG(errs() << "\n");
|
||||
|
||||
Reference in New Issue
Block a user