Home | History | Annotate | Download | only in TableGen

Lines Matching refs:Operator

577 bool RecordPtrCmp::operator()(const Record *LHS, const Record *RHS) const {
1007 static unsigned GetNumNodeResults(Record *Operator, CodeGenDAGPatterns &CDP) {
1008 if (Operator->getName() == "set" ||
1009 Operator->getName() == "implicit")
1012 if (Operator->isSubClassOf("Intrinsic"))
1013 return CDP.getIntrinsic(Operator).IS.RetVTs.size();
1015 if (Operator->isSubClassOf("SDNode"))
1016 return CDP.getSDNodeInfo(Operator).getNumResults();
1018 if (Operator->isSubClassOf("PatFrag")) {
1022 if (TreePattern *PFRec = CDP.getPatternFragmentIfRead(Operator))
1026 DagInit *Tree = Operator->getValueAsDag("Fragment");
1034 if (Operator->isSubClassOf("Instruction")) {
1035 CodeGenInstruction &InstInfo = CDP.getTargetInfo().getInstruction(Operator);
1046 if (Operator->isSubClassOf("SDNodeXForm"))
1049 Operator->dump();
1349 Record *Operator = getOperator();
1350 if (!Operator->isSubClassOf("SDNode")) return false;
1352 return CGP.getSDNodeInfo(Operator).hasProperty(Property);
1681 // If this node is a commutative operator, check that the LHS isn't an
1788 if (!OpDef) error("Pattern has unexpected operator type!");
1789 Record *Operator = OpDef->getDef();
1791 if (Operator->isSubClassOf("ValueType")) {
1792 // If the operator is a ValueType, then this must be "type cast" of a leaf
1801 New->UpdateNodeType(0, getValueType(Operator), *this);
1808 // Verify that this is something that makes sense for an operator.
1809 if (!Operator->isSubClassOf("PatFrag") &&
1810 !Operator->isSubClassOf("SDNode") &&
1811 !Operator->isSubClassOf("Instruction") &&
1812 !Operator->isSubClassOf("SDNodeXForm") &&
1813 !Operator->isSubClassOf("Intrinsic") &&
1814 Operator->getName() != "set" &&
1815 Operator->getName() != "implicit")
1816 error("Unrecognized node '" + Operator->getName() + "'!");
1820 if (Operator->isSubClassOf("Instruction") ||
1821 Operator->isSubClassOf("SDNodeXForm"))
1822 error("Cannot use '" + Operator->getName() + "' in an input pattern!");
1824 if (Operator->isSubClassOf("Intrinsic"))
1825 error("Cannot use '" + Operator->getName() + "' in an output pattern!");
1827 if (Operator->isSubClassOf("SDNode") &&
1828 Operator->getName() != "imm" &&
1829 Operator
1830 Operator->getName() != "tglobaltlsaddr" &&
1831 Operator->getName() != "tconstpool" &&
1832 Operator->getName() != "tjumptable" &&
1833 Operator->getName() != "tframeindex" &&
1834 Operator->getName() != "texternalsym" &&
1835 Operator->getName() != "tblockaddress" &&
1836 Operator->getName() != "tglobaladdr" &&
1837 Operator->getName() != "bb" &&
1838 Operator->getName() != "vt")
1839 error("Cannot use '" + Operator->getName() + "' in an output pattern!");
1848 // If the operator is an intrinsic, then this is just syntactic sugar for for
1851 if (Operator->isSubClassOf("Intrinsic")) {
1852 const CodeGenIntrinsic &Int = getDAGPatterns().getIntrinsic(Operator);
1853 unsigned IID = getDAGPatterns().getIntrinsicID(Operator)+1;
1858 Operator = getDAGPatterns().get_intrinsic_void_sdnode();
1861 Operator = getDAGPatterns().get_intrinsic_w_chain_sdnode();
1863 Operator = getDAGPatterns().get_intrinsic_wo_chain_sdnode();
1869 unsigned NumResults = GetNumNodeResults(Operator, CDP);
1870 TreePatternNode *Result = new TreePatternNode(Operator, Children, NumResults);
2191 // Clone the DefaultInfo dag node, changing the operator from 'ops' to
2446 // Get information about the SDNode for the operator.
2993 /// 'operator' node, put them together in all possible ways.
3087 Record *Operator = N->getOperator();
3096 if (N->getChild(0)->isLeaf() || N->getChild(0)->getOperator() != Operator)
3101 if (N->getChild(1)->isLeaf() || N->getChild(1)->getOperator() != Operator)