Home | History | Annotate | Download | only in TableGen

Lines Matching defs:Operator

1079 static unsigned GetNumNodeResults(Record *Operator, CodeGenDAGPatterns &CDP) {
1080 if (Operator->getName() == "set" ||
1081 Operator->getName() == "implicit")
1084 if (Operator->isSubClassOf("Intrinsic"))
1085 return CDP.getIntrinsic(Operator).IS.RetVTs.size();
1087 if (Operator->isSubClassOf("SDNode"))
1088 return CDP.getSDNodeInfo(Operator).getNumResults();
1090 if (Operator->isSubClassOf("PatFrag")) {
1094 if (TreePattern *PFRec = CDP.getPatternFragmentIfRead(Operator))
1098 DagInit *Tree = Operator->getValueAsDag("Fragment");
1107 if (Operator->isSubClassOf("Instruction")) {
1108 CodeGenInstruction &InstInfo = CDP.getTargetInfo().getInstruction(Operator);
1119 if (Operator->isSubClassOf("SDNodeXForm"))
1122 Operator->dump();
1427 Record *Operator = getOperator();
1428 if (!Operator->isSubClassOf("SDNode")) return false;
1430 Operator).hasProperty(Property);
1726 // If this node is a commutative operator, check that the LHS isn't an
1836 if (!OpDef) error("Pattern has unexpected operator type!");
1837 Record *Operator = OpDef->getDef();
1839 if (Operator->isSubClassOf("ValueType")) {
1840 // If the operator is a ValueType, then this must be "type cast" of a leaf
1849 New->UpdateNodeType(0, getValueType(Operator), *this);
1856 // Verify that this is something that makes sense for an operator.
1857 if (!Operator->isSubClassOf("PatFrag") &&
1858 !Operator->isSubClassOf("SDNode") &&
1859 !Operator->isSubClassOf("Instruction") &&
1860 !Operator->isSubClassOf("SDNodeXForm") &&
1861 !Operator->isSubClassOf("Intrinsic") &&
1862 Operator->getName() != "set" &&
1863 Operator->getName() != "implicit")
1864 error("Unrecognized node '" + Operator->getName() + "'!");
1868 if (Operator->isSubClassOf("Instruction") ||
1869 Operator->isSubClassOf("SDNodeXForm"))
1870 error("Cannot use '" + Operator->getName() + "' in an input pattern!");
1872 if (Operator->isSubClassOf("Intrinsic"))
1873 error("Cannot use '" + Operator->getName() + "' in an output pattern!");
1875 Operator->isSubClassOf("SDNode") &&
1876 Operator->getName() != "imm" &&
1877 Operator->getName() != "fpimm" &&
1878 Operator->getName() != "tglobaltlsaddr" &&
1879 Operator->getName() != "tconstpool" &&
1880 Operator->getName() != "tjumptable" &&
1881 Operator->getName() != "tframeindex" &&
1882 Operator->getName() != "texternalsym" &&
1883 Operator->getName() != "tblockaddress" &&
1884 Operator->getName() != "tglobaladdr" &&
1885 Operator->getName() != "bb" &&
1886 Operator->getName() != "vt")
1887 error("Cannot use '" + Operator->getName() + "' in an output pattern!");
1896 // If the operator is an intrinsic, then this is just syntactic sugar for for
1899 if (Operator->isSubClassOf("Intrinsic")) {
1900 const CodeGenIntrinsic &Int = getDAGPatterns().getIntrinsic(Operator);
1901 unsigned IID = getDAGPatterns().getIntrinsicID(Operator)+1;
1906 Operator = getDAGPatterns().get_intrinsic_void_sdnode();
1909 Operator = getDAGPatterns().get_intrinsic_w_chain_sdnode();
1911 Operator = getDAGPatterns().get_intrinsic_wo_chain_sdnode();
1917 unsigned NumResults = GetNumNodeResults(Operator, CDP);
1918 TreePatternNode *Result = new TreePatternNode(Operator, Children, NumResults);
2233 // Clone the DefaultInfo dag node, changing the operator from 'ops' to
2477 // Get information about the SDNode for the operator.
2557 /// null_frag operator.
2561 Record *Operator = OpDef->getDef();
2564 if (Operator->getName() == "null_frag") return true;
2576 /// the null_frag operator.
2613 // null_frag operator is as-if no pattern were specified. Normally this
3207 /// 'operator' node, put them together in all possible ways.
3301 Record *Operator = N->getOperator();
3310 if (N->getChild(0)->isLeaf() || N->getChild(0)->getOperator() != Operator)
3315 if (N->getChild(1)->isLeaf() || N->getChild(1)->getOperator() != Operator)