diff --git a/utils/TableGen/DAGISelMatcherOpt.cpp b/utils/TableGen/DAGISelMatcherOpt.cpp index 97ddf67dd40..ce97fb47bdb 100644 --- a/utils/TableGen/DAGISelMatcherOpt.cpp +++ b/utils/TableGen/DAGISelMatcherOpt.cpp @@ -392,16 +392,10 @@ static void FactorNodes(OwningPtr &MatcherPtr) { } - // Reassemble a new Scope node. - assert(!NewOptionsToMatch.empty() && - "Where'd all our children go? Did we really factor everything??"); - if (NewOptionsToMatch.empty()) - MatcherPtr.reset(0); - else { - Scope->setNumChildren(NewOptionsToMatch.size()); - for (unsigned i = 0, e = NewOptionsToMatch.size(); i != e; ++i) - Scope->resetChild(i, NewOptionsToMatch[i]); - } + // Reassemble the Scope node with the adjusted children. + Scope->setNumChildren(NewOptionsToMatch.size()); + for (unsigned i = 0, e = NewOptionsToMatch.size(); i != e; ++i) + Scope->resetChild(i, NewOptionsToMatch[i]); } Matcher *llvm::OptimizeMatcher(Matcher *TheMatcher,