Home | History | Annotate | Download | only in TableGen

Lines Matching refs:Operator

1214 static unsigned GetNumNodeResults(Record *Operator, CodeGenDAGPatterns &CDP) {
1215 if (Operator->getName() == "set" ||
1216 Operator->getName() == "implicit")
1219 if (Operator->isSubClassOf("Intrinsic"))
1220 return CDP.getIntrinsic(Operator).IS.RetVTs.size();
1222 if (Operator->isSubClassOf("SDNode"))
1223 return CDP.getSDNodeInfo(Operator).getNumResults();
1225 if (Operator->isSubClassOf("PatFrag")) {
1229 if (TreePattern *PFRec = CDP.getPatternFragmentIfRead(Operator))
1233 DagInit *Tree = Operator->getValueAsDag("Fragment");
1242 if (Operator->isSubClassOf("Instruction")) {
1243 CodeGenInstruction &InstInfo = CDP.getTargetInfo().getInstruction(Operator);
1262 if (Operator->isSubClassOf("SDNodeXForm"))
1265 if (Operator->isSubClassOf("ValueType"))
1268 if (Operator->isSubClassOf("ComplexPattern"))
1271 Operator->dump();
1640 Record *Operator = getOperator();
1641 if (!Operator->isSubClassOf("SDNode")) return false;
1643 return CGP.getSDNodeInfo(Operator).hasProperty(Property);
2021 // If this node is a commutative operator, check that the LHS isn't an
2141 if (!OpDef) error("Pattern has unexpected operator type!");
2142 Record *Operator = OpDef->getDef();
2144 if (Operator->isSubClassOf("ValueType")) {
2145 // If the operator is a ValueType, then this must be "type cast" of a leaf
2154 New->UpdateNodeType(0, getValueType(Operator), *this);
2161 // Verify that this is something that makes sense for an operator.
2162 if (!Operator->isSubClassOf("PatFrag") &&
2163 !Operator->isSubClassOf("SDNode") &&
2164 !Operator->isSubClassOf("Instruction") &&
2165 !Operator->isSubClassOf("SDNodeXForm") &&
2166 !Operator->isSubClassOf("Intrinsic") &&
2167 !Operator->isSubClassOf("ComplexPattern") &&
2168 Operator->getName() != "set" &&
2169 Operator->getName() != "implicit")
2170 error("Unrecognized node '" + Operator->getName() + "'!");
2174 if (Operator->isSubClassOf("Instruction") ||
2175 Operator->isSubClassOf("SDNodeXForm"))
2176 error("Cannot use '" + Operator->getName() + "' in an input pattern!");
2178 if (Operator->isSubClassOf("Intrinsic"))
2179 error("Cannot use '" + Operator->getName() + "' in an output pattern!");
2181 if (Operator->isSubClassOf("SDNode") &&
2182 Operator->getName() != "imm" &&
2183 Operator->getName() != "fpimm" &&
2184 Operator->getName() != "tglobaltlsaddr" &&
2185 Operator->getName() != "tconstpool" &&
2186 Operator->getName() != "tjumptable" &&
2187 Operator->getName() != "tframeindex" &&
2188 Operator->getName() != "texternalsym" &&
2189 Operator->getName() != "tblockaddress" &&
2190 Operator->getName() != "tglobaladdr" &&
2191 Operator->getName() != "bb" &&
2192 Operator->getName() != "vt" &&
2193 Operator->getName() != "mcsym")
2194 error("Cannot use '" + Operator->getName() + "' in an output pattern!");
2203 // If the operator is an intrinsic, then this is just syntactic sugar for for
2206 if (Operator->isSubClassOf("Intrinsic")) {
2207 const CodeGenIntrinsic &Int = getDAGPatterns().getIntrinsic(Operator);
2208 unsigned IID = getDAGPatterns().getIntrinsicID(Operator)+1;
2213 Operator = getDAGPatterns().get_intrinsic_void_sdnode();
2216 Operator = getDAGPatterns().get_intrinsic_w_chain_sdnode();
2218 Operator = getDAGPatterns().get_intrinsic_wo_chain_sdnode();
2224 if (Operator->isSubClassOf("ComplexPattern")) {
2234 auto OperandId = std::make_pair(Operator, i);
2245 unsigned NumResults = GetNumNodeResults(Operator, CDP);
2246 TreePatternNode *Result = new TreePatternNode(Operator, Children, NumResults);
2563 // Clone the DefaultInfo dag node, changing the operator from 'ops' to
2888 /// null_frag operator.
2892 Record *Operator = OpDef->getDef();
2895 if (Operator->getName() == "null_frag") return true;
2907 /// the null_frag operator.
3129 // null_frag operator is as-if no pattern were specified. Normally this
3559 /// 'operator' node, put them together in all possible ways.
3643 Record *Operator = N->getOperator();
3652 if (N->getChild(0)->isLeaf() || N->getChild(0)->getOperator() != Operator)
3657 if (N->getChild(1)->isLeaf() || N->getChild(1)->getOperator() != Operator)