diff options
author | Chris Lattner <sabre@nondot.org> | 2010-03-07 07:20:49 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-03-07 07:20:49 +0000 |
commit | 6fd326b7ff3f114f3b1eda05e1142e52222c6b54 (patch) | |
tree | c8a0dfe50eb1a638247dc0f6b25d68eba84c79e4 /utils/TableGen/DAGISelMatcherGen.cpp | |
parent | 8c42ca937453bd216b68baff1f32b47430d5b374 (diff) | |
download | llvm-6fd326b7ff3f114f3b1eda05e1142e52222c6b54.tar.gz llvm-6fd326b7ff3f114f3b1eda05e1142e52222c6b54.tar.bz2 llvm-6fd326b7ff3f114f3b1eda05e1142e52222c6b54.tar.xz |
more factoring.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97911 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelMatcherGen.cpp')
-rw-r--r-- | utils/TableGen/DAGISelMatcherGen.cpp | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/utils/TableGen/DAGISelMatcherGen.cpp b/utils/TableGen/DAGISelMatcherGen.cpp index 5488853e83..4951a425d9 100644 --- a/utils/TableGen/DAGISelMatcherGen.cpp +++ b/utils/TableGen/DAGISelMatcherGen.cpp @@ -201,10 +201,6 @@ void MatcherGen::AddMatcher(Matcher *NewNode) { void MatcherGen::EmitLeafMatchCode(const TreePatternNode *N) { assert(N->isLeaf() && "Not a leaf?"); - // If there are node predicates for this node, generate their checks. - for (unsigned i = 0, e = N->getPredicateFns().size(); i != e; ++i) - AddMatcher(new CheckPredicateMatcher(N->getPredicateFns()[i])); - // Direct match against an integer constant. if (IntInit *II = dynamic_cast<IntInit*>(N->getLeafValue())) { // If this is the root of the dag we're matching, we emit a redundant opcode @@ -310,11 +306,6 @@ void MatcherGen::EmitOperatorMatchCode(const TreePatternNode *N, // Check that the current opcode lines up. AddMatcher(new CheckOpcodeMatcher(CInfo)); - // If there are node predicates for this node, generate their checks. - for (unsigned i = 0, e = N->getPredicateFns().size(); i != e; ++i) - AddMatcher(new CheckPredicateMatcher(N->getPredicateFns()[i])); - - // If this node has memory references (i.e. is a load or store), tell the // interpreter to capture them in the memref array. if (N->NodeHasProperty(SDNPMemOperand, CGP)) @@ -447,9 +438,12 @@ void MatcherGen::EmitMatchCode(const TreePatternNode *N, else EmitOperatorMatchCode(N, NodeNoTypes); + // If there are node predicates for this node, generate their checks. + for (unsigned i = 0, e = N->getPredicateFns().size(); i != e; ++i) + AddMatcher(new CheckPredicateMatcher(N->getPredicateFns()[i])); + if (NodeType != EEVT::isUnknown) AddMatcher(new CheckTypeMatcher((MVT::SimpleValueType)NodeType)); - } /// EmitMatcherCode - Generate the code that matches the predicate of this |