From 596cfd045fa05c249083b5ff7cdb5e32f4d92b97 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Fri, 4 Oct 2013 05:52:17 +0000 Subject: [PATCH] Revert r191940 to see if it fixes the build bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191941 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/SelectionDAGISel.h | 2 -- lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 27 ------------------------ utils/TableGen/DAGISelMatcher.cpp | 4 ---- utils/TableGen/DAGISelMatcher.h | 30 --------------------------- utils/TableGen/DAGISelMatcherEmitter.cpp | 7 ------- utils/TableGen/DAGISelMatcherOpt.cpp | 6 +----- 6 files changed, 1 insertion(+), 75 deletions(-) diff --git a/include/llvm/CodeGen/SelectionDAGISel.h b/include/llvm/CodeGen/SelectionDAGISel.h index b5ec8cb075d..3d55d3a06bf 100644 --- a/include/llvm/CodeGen/SelectionDAGISel.h +++ b/include/llvm/CodeGen/SelectionDAGISel.h @@ -113,8 +113,6 @@ public: OPC_MoveChild, OPC_MoveParent, OPC_CheckSame, - OPC_CheckChild0Same, OPC_CheckChild1Same, - OPC_CheckChild2Same, OPC_CheckChild3Same, OPC_CheckPatternPredicate, OPC_CheckPredicate, OPC_CheckOpcode, diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index f362a7bdf16..fcde6b5b939 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -2097,18 +2097,6 @@ CheckSame(const unsigned char *MatcherTable, unsigned &MatcherIndex, return N == RecordedNodes[RecNo].first; } -/// CheckChildSame - Implements OP_CheckChildXSame. -LLVM_ATTRIBUTE_ALWAYS_INLINE static bool -CheckChildSame(const unsigned char *MatcherTable, unsigned &MatcherIndex, - SDValue N, - const SmallVectorImpl > &RecordedNodes, - unsigned ChildNo) { - if (ChildNo >= N.getNumOperands()) - return false; // Match fails if out of range child #. - return ::CheckSame(MatcherTable, MatcherIndex, N.getOperand(ChildNo), - RecordedNodes); -} - /// CheckPatternPredicate - Implements OP_CheckPatternPredicate. LLVM_ATTRIBUTE_ALWAYS_INLINE static bool CheckPatternPredicate(const unsigned char *MatcherTable, unsigned &MatcherIndex, @@ -2223,13 +2211,6 @@ static unsigned IsPredicateKnownToFail(const unsigned char *Table, case SelectionDAGISel::OPC_CheckSame: Result = !::CheckSame(Table, Index, N, RecordedNodes); return Index; - case SelectionDAGISel::OPC_CheckChild0Same: - case SelectionDAGISel::OPC_CheckChild1Same: - case SelectionDAGISel::OPC_CheckChild2Same: - case SelectionDAGISel::OPC_CheckChild3Same: - Result = !::CheckChildSame(Table, Index, N, RecordedNodes, - Table[Index-1] - SelectionDAGISel::OPC_CheckChild0Same); - return Index; case SelectionDAGISel::OPC_CheckPatternPredicate: Result = !::CheckPatternPredicate(Table, Index, SDISel); return Index; @@ -2527,14 +2508,6 @@ SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable, case OPC_CheckSame: if (!::CheckSame(MatcherTable, MatcherIndex, N, RecordedNodes)) break; continue; - - case OPC_CheckChild0Same: case OPC_CheckChild1Same: - case OPC_CheckChild2Same: case OPC_CheckChild3Same: - if (!::CheckChildSame(MatcherTable, MatcherIndex, N, RecordedNodes, - Opcode-OPC_CheckChild0Same)) - break; - continue; - case OPC_CheckPatternPredicate: if (!::CheckPatternPredicate(MatcherTable, MatcherIndex, *this)) break; continue; diff --git a/utils/TableGen/DAGISelMatcher.cpp b/utils/TableGen/DAGISelMatcher.cpp index 5d6a11ae0dc..af0eb977250 100644 --- a/utils/TableGen/DAGISelMatcher.cpp +++ b/utils/TableGen/DAGISelMatcher.cpp @@ -134,10 +134,6 @@ void CheckSameMatcher::printImpl(raw_ostream &OS, unsigned indent) const { OS.indent(indent) << "CheckSame " << MatchNumber << '\n'; } -void CheckChildSameMatcher::printImpl(raw_ostream &OS, unsigned indent) const { - OS.indent(indent) << "CheckChild" << ChildNo << "Same\n"; -} - void CheckPatternPredicateMatcher:: printImpl(raw_ostream &OS, unsigned indent) const { OS.indent(indent) << "CheckPatternPredicate " << Predicate << '\n'; diff --git a/utils/TableGen/DAGISelMatcher.h b/utils/TableGen/DAGISelMatcher.h index 70031fa6d3b..ebac7902de4 100644 --- a/utils/TableGen/DAGISelMatcher.h +++ b/utils/TableGen/DAGISelMatcher.h @@ -55,7 +55,6 @@ public: // Predicate checking. CheckSame, // Fail if not same as prev match. - CheckChildSame, // Fail if child not same as prev match. CheckPatternPredicate, CheckPredicate, // Fail if node predicate fails. CheckOpcode, // Fail if not opcode. @@ -123,7 +122,6 @@ public: switch (getKind()) { default: return false; case CheckSame: - case CheckChildSame: case CheckPatternPredicate: case CheckPredicate: case CheckOpcode: @@ -394,34 +392,6 @@ private: virtual unsigned getHashImpl() const { return getMatchNumber(); } }; -/// CheckChildSameMatcher - This checks to see if child node is exactly the same -/// node as the specified match that was recorded with 'Record'. This is used -/// when patterns have the same name in them, like '(mul GPR:$in, GPR:$in)'. -class CheckChildSameMatcher : public Matcher { - unsigned ChildNo; - unsigned MatchNumber; -public: - CheckChildSameMatcher(unsigned childno, unsigned matchnumber) - : Matcher(CheckChildSame), ChildNo(childno), MatchNumber(matchnumber) {} - - unsigned getChildNo() const { return ChildNo; } - unsigned getMatchNumber() const { return MatchNumber; } - - static inline bool classof(const Matcher *N) { - return N->getKind() == CheckChildSame; - } - - virtual bool isSafeToReorderWithPatternPredicate() const { return true; } - -private: - virtual void printImpl(raw_ostream &OS, unsigned indent) const; - virtual bool isEqualImpl(const Matcher *M) const { - return cast(M)->ChildNo == ChildNo && - cast(M)->MatchNumber == MatchNumber; - } - virtual unsigned getHashImpl() const { return (MatchNumber << 2) | ChildNo; } -}; - /// CheckPatternPredicateMatcher - This checks the target-specific predicate /// to see if the entire pattern is capable of matching. This predicate does /// not take a node as input. This is used for subtarget feature checks etc. diff --git a/utils/TableGen/DAGISelMatcherEmitter.cpp b/utils/TableGen/DAGISelMatcherEmitter.cpp index 04fe0d1824a..ba1b3585fbc 100644 --- a/utils/TableGen/DAGISelMatcherEmitter.cpp +++ b/utils/TableGen/DAGISelMatcherEmitter.cpp @@ -242,12 +242,6 @@ EmitMatcher(const Matcher *N, unsigned Indent, unsigned CurrentIdx, << cast(N)->getMatchNumber() << ",\n"; return 2; - case Matcher::CheckChildSame: - OS << "OPC_CheckChild" - << cast(N)->getChildNo() << "Same, " - << cast(N)->getMatchNumber() << ",\n"; - return 2; - case Matcher::CheckPatternPredicate: { StringRef Pred =cast(N)->getPredicate(); OS << "OPC_CheckPatternPredicate, " << getPatternPredicate(Pred) << ','; @@ -759,7 +753,6 @@ void MatcherTableEmitter::EmitHistogram(const Matcher *M, case Matcher::MoveChild: OS << "OPC_MoveChild"; break; case Matcher::MoveParent: OS << "OPC_MoveParent"; break; case Matcher::CheckSame: OS << "OPC_CheckSame"; break; - case Matcher::CheckChildSame: OS << "OPC_CheckChildSame"; break; case Matcher::CheckPatternPredicate: OS << "OPC_CheckPatternPredicate"; break; case Matcher::CheckPredicate: OS << "OPC_CheckPredicate"; break; diff --git a/utils/TableGen/DAGISelMatcherOpt.cpp b/utils/TableGen/DAGISelMatcherOpt.cpp index 82e5d63be58..f9964223c24 100644 --- a/utils/TableGen/DAGISelMatcherOpt.cpp +++ b/utils/TableGen/DAGISelMatcherOpt.cpp @@ -51,11 +51,7 @@ static void ContractNodes(OwningPtr &MatcherPtr, if (MC->getChildNo() < 8 && // Only have CheckChildType0...7 CT->getResNo() == 0) // CheckChildType checks res #0 New = new CheckChildTypeMatcher(MC->getChildNo(), CT->getType()); - - if (CheckSameMatcher *CS = dyn_cast(MC->getNext())) - if (MC->getChildNo() < 4) // Only have CheckChildSame0...3 - New = new CheckChildSameMatcher(MC->getChildNo(), CS->getMatchNumber()); - + if (New) { // Insert the new node. New->setNext(MatcherPtr.take()); -- 2.11.0