diff options
Diffstat (limited to 'utils/TableGen/DAGISelMatcherOpt.cpp')
-rw-r--r-- | utils/TableGen/DAGISelMatcherOpt.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/utils/TableGen/DAGISelMatcherOpt.cpp b/utils/TableGen/DAGISelMatcherOpt.cpp index 1ce5733..7953457 100644 --- a/utils/TableGen/DAGISelMatcherOpt.cpp +++ b/utils/TableGen/DAGISelMatcherOpt.cpp @@ -56,6 +56,7 @@ static void ContractNodes(OwningPtr<Matcher> &MatcherPtr) { } } + // Zap movechild -> moveparent. if (MoveChildMatcher *MC = dyn_cast<MoveChildMatcher>(N)) if (MoveParentMatcher *MP = dyn_cast<MoveParentMatcher>(MC->getNext())) { @@ -63,6 +64,14 @@ static void ContractNodes(OwningPtr<Matcher> &MatcherPtr) { return ContractNodes(MatcherPtr); } + // Turn EmitNode->CompleteMatch into SelectNodeTo if we can. + if (EmitNodeMatcher *EN = dyn_cast<EmitNodeMatcher>(N)) + if (CompleteMatchMatcher *CM = cast<CompleteMatchMatcher>(EN->getNext())) { + (void)CM; + + + } + ContractNodes(N->getNextPtr()); } |