From 022e511f4ad0f3d5b0e55f81559bf2f384cb96a3 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 17 Feb 2010 01:34:15 +0000 Subject: record input chains. llvm-svn: 96437 --- llvm/utils/TableGen/DAGISelMatcherGen.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'llvm/utils/TableGen/DAGISelMatcherGen.cpp') diff --git a/llvm/utils/TableGen/DAGISelMatcherGen.cpp b/llvm/utils/TableGen/DAGISelMatcherGen.cpp index 345b964c2d1..5936e750654 100644 --- a/llvm/utils/TableGen/DAGISelMatcherGen.cpp +++ b/llvm/utils/TableGen/DAGISelMatcherGen.cpp @@ -194,6 +194,15 @@ void MatcherGen::EmitOperatorMatchCode(const TreePatternNode *N, // the child numbers of the node are all offset by one. unsigned OpNo = 0; if (N->NodeHasProperty(SDNPHasChain, CGP)) { + // Record the input chain, which is always input #0 of the SDNode. + AddMatcherNode(new MoveChildMatcherNode(0)); + ++NextRecordedOperandNo; + AddMatcherNode(new RecordMatcherNode("'" + N->getOperator()->getName() + + "' input chain")); + AddMatcherNode(new MoveParentMatcherNode()); + + // Don't look at the input chain when matching the tree pattern to the + // SDNode. OpNo = 1; // If this node is not the root and the subtree underneath it produces a -- cgit v1.2.3