Lines Matching full:operator
574 bool RecordPtrCmp::operator()(const Record *LHS, const Record *RHS) const {
1005 static unsigned GetNumNodeResults(Record *Operator, CodeGenDAGPatterns &CDP) {
1006 if (Operator->getName() == "set" ||
1007 Operator->getName() == "implicit")
1010 if (Operator->isSubClassOf("Intrinsic"))
1011 return CDP.getIntrinsic(Operator).IS.RetVTs.size();
1013 if (Operator->isSubClassOf("SDNode"))
1014 return CDP.getSDNodeInfo(Operator).getNumResults();
1016 if (Operator->isSubClassOf("PatFrag")) {
1020 if (TreePattern *PFRec = CDP.getPatternFragmentIfRead(Operator))
1024 DagInit *Tree = Operator->getValueAsDag("Fragment");
1032 if (Operator->isSubClassOf("Instruction")) {
1033 CodeGenInstruction &InstInfo = CDP.getTargetInfo().getInstruction(Operator);
1044 if (Operator->isSubClassOf("SDNodeXForm"))
1047 Operator->dump();
1347 Record *Operator = getOperator();
1348 if (!Operator->isSubClassOf("SDNode")) return false;
1350 return CGP.getSDNodeInfo(Operator).hasProperty(Property);
1680 // If this node is a commutative operator, check that the LHS isn't an
1787 if (!OpDef) error("Pattern has unexpected operator type!");
1788 Record *Operator = OpDef->getDef();
1790 if (Operator->isSubClassOf("ValueType")) {
1791 // If the operator is a ValueType, then this must be "type cast" of a leaf
1800 New->UpdateNodeType(0, getValueType(Operator), *this);
1807 // Verify that this is something that makes sense for an operator.
1808 if (!Operator->isSubClassOf("PatFrag") &&
1809 !Operator->isSubClassOf("SDNode") &&
1810 !Operator->isSubClassOf("Instruction") &&
1811 !Operator->isSubClassOf("SDNodeXForm") &&
1812 !Operator->isSubClassOf("Intrinsic") &&
1813 Operator->getName() != "set" &&
1814 Operator->getName() != "implicit")
1815 error("Unrecognized node '" + Operator->getName() + "'!");
1819 if (Operator->isSubClassOf("Instruction") ||
1820 Operator->isSubClassOf("SDNodeXForm"))
1821 error("Cannot use '" + Operator->getName() + "' in an input pattern!");
1823 if (Operator->isSubClassOf("Intrinsic"))
1824 error("Cannot use '" + Operator->getName() + "' in an output pattern!");
1826 if (Operator->isSubClassOf("SDNode") &&
1827 Operator->getName() != "imm" &&
1828 Operator->getName() != "fpimm" &&
1829 Operator->getName() != "tglobaltlsaddr" &&
1830 Operator->getName() != "tconstpool" &&
1831 Operator->getName() != "tjumptable" &&
1832 Operator->getName() != "tframeindex" &&
1833 Operator->getName() != "texternalsym" &&
1834 Operator->getName() != "tblockaddress" &&
1835 Operator->getName() != "tglobaladdr" &&
1836 Operator->getName() != "bb" &&
1837 Operator->getName() != "vt")
1838 error("Cannot use '" + Operator->getName() + "' in an output pattern!");
1847 // If the operator is an intrinsic, then this is just syntactic sugar for for
1850 if (Operator->isSubClassOf("Intrinsic")) {
1851 const CodeGenIntrinsic &Int = getDAGPatterns().getIntrinsic(Operator);
1852 unsigned IID = getDAGPatterns().getIntrinsicID(Operator)+1;
1857 Operator = getDAGPatterns().get_intrinsic_void_sdnode();
1860 Operator = getDAGPatterns().get_intrinsic_w_chain_sdnode();
1862 Operator = getDAGPatterns().get_intrinsic_wo_chain_sdnode();
1868 unsigned NumResults = GetNumNodeResults(Operator, CDP);
1869 TreePatternNode *Result = new TreePatternNode(Operator, Children, NumResults);
2190 // Clone the DefaultInfo dag node, changing the operator from 'ops' to
2445 // Get information about the SDNode for the operator.
2992 /// 'operator' node, put them together in all possible ways.
3086 Record *Operator = N->getOperator();
3095 if (N->getChild(0)->isLeaf() || N->getChild(0)->getOperator() != Operator)
3100 if (N->getChild(1)->isLeaf() || N->getChild(1)->getOperator() != Operator)