Lines Matching defs:TP

348   if (In.empty() || Out == In || TP.hasError())
357 TP.error("Type contradiction");
364 if (TP.hasError())
383 if (TP.hasError())
393 if (TP.hasError())
403 if (TP.hasError())
413 if (TP.hasError())
423 if (TP.hasError() || !Out.empty())
462 if (TP.hasError())
496 TP.error("Incompatible types");
569 if (TP.hasError())
619 if (TP.hasError())
685 if (TP.hasError())
723 if (TP.hasError())
821 const TypeSetByHwMode &LTS = TP.getDAGPatterns().getLegalTypes();
837 Infer.TP.dump();
1536 TreePattern &TP) const {
1537 if (TP.hasError())
1542 TypeInfer &TI = TP.getInfer();
1547 return NodeToApply->UpdateNodeType(ResNo, VVT, TP);
1550 return NodeToApply->UpdateNodeType(ResNo, MVT::iPTR, TP);
1564 return NodeToApply->UpdateNodeType(ResNo, OtherNode->getExtType(OResNo),TP)|
1565 OtherNode->UpdateNodeType(OResNo,NodeToApply->getExtType(ResNo),TP);
1574 TP.error(N->getOperator()->getName() + " expects a VT operand!");
1578 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo();
1646 TreePattern &TP) {
1655 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo();
1656 return UpdateNodeType(ResNo, getValueTypeByHwMode(R, T.getHwModes()), TP);
1661 return UpdateNodeType(ResNo, MVT::iPTR, TP);
1672 CodeGenTarget &Tgt = TP.getDAGPatterns().getTargetInfo();
1673 return UpdateNodeType(ResNo, Tgt.getRegisterClass(RC).getValueTypes(), TP);
1676 bool TreePatternNode::ContainsUnresolvedType(TreePattern &TP) const {
1678 if (!TP.getInfer().isConcrete(Types[i], true))
1681 if (getChild(i)->ContainsUnresolvedType(TP))
1981 TreePatternNodePtr T, TreePattern &TP,
1984 if (TP.hasError())
2005 Child->InlinePatternFragments(Child, TP, ChildAlternatives[i]);
2060 TreePattern *Frag = TP.getDAGPatterns().getPatternFragment(Op);
2064 TP.error("'" + Op->getName() + "' fragment requires " +
2072 Scope = TP.getDAGPatterns().allocateScope();
2100 FragTree->UpdateNodeType(i, getExtType(i), TP);
2108 FragTree->InlinePatternFragments(FragTree, TP, OutAlternatives);
2127 TreePattern &TP) {
2128 CodeGenDAGPatterns &CDP = TP.getDAGPatterns();
2136 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo();
2152 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo();
2166 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo();
2209 TP.getInfer().expandOverloads(VTS);
2226 TP.error("Unknown node flavor used in pattern: " + R->getName());
2340 static void emitTooManyOperandsError(TreePattern &TP,
2344 TP.error("Instruction '" + InstName + "' was provided " + Twine(Actual) +
2348 static void emitTooFewOperandsError(TreePattern &TP,
2351 TP.error("Instruction '" + InstName +
2358 bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) {
2359 if (TP.hasError())
2362 CodeGenDAGPatterns &CDP = TP.getDAGPatterns();
2370 !hasName(), TP), TP);
2378 bool MadeChange = TP.getInfer().EnforceInteger(Types[0]);
2380 if (!TP.getInfer().isConcrete(Types[0], false))
2383 ValueTypeByHwMode VVT = TP.getInfer().getConcrete(Types[0], false);
2399 TP.error("Integer value '" + Twine(II->getValue()) +
2417 MadeChange |= UpdateNodeType(i, Int->IS.RetVTs[i], TP);
2420 TP.error("Intrinsic '" + Int->Name + "' expects " + Twine(NumParamVTs) +
2426 MadeChange |= getChild(0)->UpdateNodeType(0, MVT::iPTR, TP);
2429 MadeChange |= getChild(i+1)->ApplyTypeConstraints(TP, NotRegisters);
2433 MadeChange |= getChild(i+1)->UpdateNodeType(0, OpVT, TP);
2444 TP.error(getOperator()->getName() + " node requires exactly " +
2451 MadeChange |= getChild(i)->ApplyTypeConstraints(TP, NotRegisters);
2452 MadeChange |= NI.ApplyTypeConstraints(this, TP);
2468 MadeChange |= UpdateNodeTypeFromInst(ResNo, Inst.getResult(ResNo), TP);
2481 MadeChange |= UpdateNodeType(ResNo, VT, TP);
2488 MadeChange |= UpdateNodeType(0, getChild(0)->getExtType(0), TP);
2489 MadeChange |= getChild(0)->UpdateNodeType(0, getExtType(0), TP);
2496 TP.error("REG_SEQUENCE requires at least 3 operands!");
2501 TP.error("REG_SEQUENCE requires an odd number of operands!");
2506 TP.error("REG_SEQUENCE requires a RegisterClass for first operand!");
2513 TP.error("REG_SEQUENCE requires a SubRegIndex for operand " +
2547 emitTooFewOperandsError(TP, getOperator()->getName(), getNumChildren());
2566 Child->UpdateNodeTypeFromInst(ChildResNo, SubRec, TP);
2571 emitTooFewOperandsError(TP, getOperator()->getName(),
2579 Child->UpdateNodeTypeFromInst(ChildResNo, SubRec, TP);
2588 MadeChange |= Child->UpdateNodeTypeFromInst(ChildResNo, OperandNode, TP);
2592 emitTooManyOperandsError(TP, getOperator()->getName(),
2598 MadeChange |= getChild(i)->ApplyTypeConstraints(TP, NotRegisters);
2606 MadeChange |= getChild(i)->ApplyTypeConstraints(TP, NotRegisters);
2615 TP.error("Node transform '" + getOperator()->getName() +
2620 bool MadeChange = getChild(0)->ApplyTypeConstraints(TP, NotRegisters);
4078 static bool ForceArbitraryInstResultType(TreePatternNode *N, TreePattern &TP) {
4084 if (ForceArbitraryInstResultType(N->getChild(i), TP))
4092 TypeInfer &TI = TP.getInfer();