[TableGen] Avoid repeated TreePredicateFn::getCodeToRunOnSDNode() calls in MatcherTableEmitter::EmitNodePredicatesFunction loop. NFCI.

This commit is contained in:
Simon Pilgrim 2021-03-01 15:38:39 +00:00
parent 5fe0cab79e
commit b62928b21e
1 changed files with 5 additions and 6 deletions

View File

@ -898,14 +898,13 @@ void MatcherTableEmitter::EmitNodePredicatesFunction(
for (unsigned i = 0, e = Preds.size(); i != e; ++i) {
// Emit the predicate code corresponding to this pattern.
const TreePredicateFn PredFn = Preds[i];
assert(!PredFn.isAlwaysTrue() && "No code in this predicate");
OS << " case " << i << ": {\n";
for (auto *SimilarPred :
NodePredicatesByCodeToRun[PredFn.getCodeToRunOnSDNode()])
OS << " // " << TreePredicateFn(SimilarPred).getFnName() <<'\n';
std::string PredFnCodeStr = PredFn.getCodeToRunOnSDNode();
OS << PredFn.getCodeToRunOnSDNode() << "\n }\n";
OS << " case " << i << ": {\n";
for (auto *SimilarPred : NodePredicatesByCodeToRun[PredFnCodeStr])
OS << " // " << TreePredicateFn(SimilarPred).getFnName() << '\n';
OS << PredFnCodeStr << "\n }\n";
}
OS << " }\n";
OS << "}\n";