diff --git a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp index 4a81b45300484..411a98c3035bc 100644 --- a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp +++ b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp @@ -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";