Always pass the root node to ComplexPattern isel matching function.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 8 Nov 2006 20:31:10 +0000 (20:31 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 8 Nov 2006 20:31:10 +0000 (20:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31570 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/DAGISelEmitter.cpp

index 0701ffbd7d1090e519dfa426ba5a1ee80362ec9b..1940c9f5dcb1d846a2dc43c3773263e9103289b5 100644 (file)
@@ -2464,7 +2464,7 @@ public:
         emitCode("SDOperand Chain" + ChainSuffix + ";");
       }
 
-      std::string Code = Fn + "(" + RootName;
+      std::string Code = Fn + "(" + RootName + ", " + RootName;
       for (unsigned i = 0; i < NumOps; i++)
         Code += ", CPTmp" + utostr(i);
       if (CP->hasProperty(SDNPHasChain)) {
@@ -2531,10 +2531,10 @@ public:
             emitCode("SDOperand " + ChainName + ";");
           }
           
-          std::string Code = Fn + "(";
+          std::string Code = Fn + "(N, ";
           if (CP->hasProperty(SDNPHasChain)) {
             std::string ParentName(RootName.begin(), RootName.end()-1);
-            Code += "N, " + ParentName + ", ";
+            Code += ParentName + ", ";
           }
           Code += RootName;
           for (unsigned i = 0; i < NumOps; i++)
@@ -2662,7 +2662,6 @@ public:
         // value if used multiple times by this pattern result.
         Val = "Tmp"+utostr(ResNo);
       } else if (N->isLeaf() && (CP = NodeGetComplexPattern(N, ISE))) {
-        std::string Fn = CP->getSelectFunc();
         for (unsigned i = 0; i < CP->getNumOperands(); ++i) {
           emitCode("AddToISelQueue(CPTmp" + utostr(i) + ");");
           NodeOps.push_back("CPTmp" + utostr(i));