diff options
| -rw-r--r-- | llvm/utils/TableGen/DAGISelEmitter.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/DAGISelEmitter.cpp b/llvm/utils/TableGen/DAGISelEmitter.cpp index de74ac13a41..eca9ad11cef 100644 --- a/llvm/utils/TableGen/DAGISelEmitter.cpp +++ b/llvm/utils/TableGen/DAGISelEmitter.cpp @@ -485,7 +485,7 @@ static unsigned char getIntrinsicType(Record *R, bool NotRegisters,      return MVT::Other;    } else if (R->isSubClassOf("ComplexPattern")) {      return TP.getDAGISelEmitter().getComplexPattern(R).getValueType(); -  } else if (R->getName() == "node") { +  } else if (R->getName() == "node" || R->getName() == "srcvalue") {      // Placeholder.      return MVT::isUnknown;    } @@ -973,6 +973,10 @@ static bool HandleUse(TreePattern *I, TreePatternNode *Pat,      Rec = Pat->getOperator();    } +  // SRCVALUE nodes are ignored. +  if (Rec->getName() == "srcvalue") +    return false; +    TreePatternNode *&Slot = InstInputs[Pat->getName()];    if (!Slot) {      Slot = Pat; @@ -1832,6 +1836,8 @@ public:              }            } else if (LeafRec->isSubClassOf("ComplexPattern")) {              // Handle complex pattern. Nothing to do here. +          } else if (LeafRec->getName() == "srcvalue") { +            // Place holder for SRCVALUE nodes. Nothing to do here.            } else if (LeafRec->isSubClassOf("ValueType")) {              // Make sure this is the specified value type.              OS << "      if (cast<VTSDNode>(" << RootName << OpNo << ")->getVT() != "  | 

