diff options
| author | Chris Lattner <sabre@nondot.org> | 2010-03-04 00:28:05 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2010-03-04 00:28:05 +0000 | 
| commit | d1aca7c8b4ea45fbee18fc18a21ed963175dd7bc (patch) | |
| tree | 56cdeda7005a3d74e3f85c7d9bfa66bb9dbcfe13 | |
| parent | 6900a39d28132d86529724ba4dc8302edf1a9b53 (diff) | |
| download | external_llvm-d1aca7c8b4ea45fbee18fc18a21ed963175dd7bc.zip external_llvm-d1aca7c8b4ea45fbee18fc18a21ed963175dd7bc.tar.gz external_llvm-d1aca7c8b4ea45fbee18fc18a21ed963175dd7bc.tar.bz2 | |
enhance comment output to specify what recorded slot
numbers a ComplexPat will match into.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97696 91177308-0d34-0410-b5e6-96231b3b80d8
| -rw-r--r-- | utils/TableGen/DAGISelMatcher.h | 8 | ||||
| -rw-r--r-- | utils/TableGen/DAGISelMatcherEmitter.cpp | 7 | ||||
| -rw-r--r-- | utils/TableGen/DAGISelMatcherGen.cpp | 2 | 
3 files changed, 12 insertions, 5 deletions
| diff --git a/utils/TableGen/DAGISelMatcher.h b/utils/TableGen/DAGISelMatcher.h index c2e8171..8498d60 100644 --- a/utils/TableGen/DAGISelMatcher.h +++ b/utils/TableGen/DAGISelMatcher.h @@ -609,11 +609,15 @@ private:  /// the current node.  class CheckComplexPatMatcher : public Matcher {    const ComplexPattern &Pattern; +  /// FirstResult - This is the first slot in the RecordedNodes list that the +  /// result of the match populates. +  unsigned FirstResult;  public: -  CheckComplexPatMatcher(const ComplexPattern &pattern) -    : Matcher(CheckComplexPat), Pattern(pattern) {} +  CheckComplexPatMatcher(const ComplexPattern &pattern, unsigned firstresult) +    : Matcher(CheckComplexPat), Pattern(pattern), FirstResult(firstresult) {}    const ComplexPattern &getPattern() const { return Pattern; } +  unsigned getFirstResult() const { return FirstResult; }    static inline bool classof(const Matcher *N) {      return N->getKind() == CheckComplexPat; diff --git a/utils/TableGen/DAGISelMatcherEmitter.cpp b/utils/TableGen/DAGISelMatcherEmitter.cpp index 1f04050..1f9e093 100644 --- a/utils/TableGen/DAGISelMatcherEmitter.cpp +++ b/utils/TableGen/DAGISelMatcherEmitter.cpp @@ -375,9 +375,12 @@ EmitMatcher(const Matcher *N, unsigned Indent, unsigned CurrentIdx,      OS << "OPC_CheckComplexPat, " << getComplexPat(Pattern) << ',';      if (!OmitComments) {        OS.PadToColumn(CommentIndent) << "// " << Pattern.getSelectFunc(); -      OS << ": " << Pattern.getNumOperands() << " operands"; +      OS << ':'; +      for (unsigned i = 0, e = Pattern.getNumOperands(); i != e; ++i) +        OS << " #" << cast<CheckComplexPatMatcher>(N)->getFirstResult()+i; +                   if (Pattern.hasProperty(SDNPHasChain)) -        OS << " + chain result and input"; +        OS << " + chain result";      }      OS << '\n';      return 2; diff --git a/utils/TableGen/DAGISelMatcherGen.cpp b/utils/TableGen/DAGISelMatcherGen.cpp index 4482803..f4e2b8d 100644 --- a/utils/TableGen/DAGISelMatcherGen.cpp +++ b/utils/TableGen/DAGISelMatcherGen.cpp @@ -252,7 +252,7 @@ void MatcherGen::EmitLeafMatchCode(const TreePatternNode *N) {      // Emit a CheckComplexPat operation, which does the match (aborting if it      // fails) and pushes the matched operands onto the recorded nodes list. -    AddMatcher(new CheckComplexPatMatcher(CP)); +    AddMatcher(new CheckComplexPatMatcher(CP, NextRecordedOperandNo));      // Record the right number of operands.      NextRecordedOperandNo += CP.getNumOperands(); | 
