Lines Matching defs:TP
366 if (In.empty() || Out == In || TP.hasError())
375 TP.error("Type contradiction");
382 if (TP.hasError())
401 if (TP.hasError())
411 if (TP.hasError())
421 if (TP.hasError())
431 if (TP.hasError())
441 if (TP.hasError() || !Out.empty())
480 if (TP.hasError())
525 TP.error("Incompatible types");
600 if (TP.hasError())
652 if (TP.hasError())
720 if (TP.hasError())
771 if (TP.hasError())
858 const TypeSetByHwMode <S = TP.getDAGPatterns().getLegalTypes();
874 Infer.TP.dump();
876 Infer.TP.getRecord()->dump();
878 PrintFatalError(Infer.TP.getRecord()->getLoc(),
880 Infer.TP.getRecord()->getName() + "'");
1604 TreePattern &TP) const {
1605 if (TP.hasError())
1610 TypeInfer &TI = TP.getInfer();
1615 return NodeToApply.UpdateNodeType(ResNo, VVT, TP);
1618 return NodeToApply.UpdateNodeType(ResNo, MVT::iPTR, TP);
1633 TP) |
1635 TP);
1644 TP.error(N.getOperator()->getName() + " expects a VT operand!");
1648 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo();
1763 TreePattern &TP) {
1772 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo();
1773 return UpdateNodeType(ResNo, getValueTypeByHwMode(R, T.getHwModes()), TP);
1778 return UpdateNodeType(ResNo, MVT::iPTR, TP);
1789 CodeGenTarget &Tgt = TP.getDAGPatterns().getTargetInfo();
1790 return UpdateNodeType(ResNo, Tgt.getRegisterClass(RC).getValueTypes(), TP);
1793 bool TreePatternNode::ContainsUnresolvedType(TreePattern &TP) const {
1795 if (!TP.getInfer().isConcrete(Types[i], true))
1798 if (Child.ContainsUnresolvedType(TP))
2114 TreePattern &TP, std::vector<TreePatternNodePtr> &OutAlternatives) {
2116 if (TP.hasError())
2137 Child->InlinePatternFragments(TP, ChildAlternatives[i]);
2196 TreePattern *Frag = TP.getDAGPatterns().getPatternFragment(Op);
2200 TP.error("'" + Op->getName() + "' fragment requires " +
2208 Scope = TP.getDAGPatterns().allocateScope();
2236 FragTree->UpdateNodeType(i, getExtType(i), TP);
2247 FragTree->InlinePatternFragments(TP, OutAlternatives);
2265 TreePattern &TP) {
2266 CodeGenDAGPatterns &CDP = TP.getDAGPatterns();
2274 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo();
2290 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo();
2304 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo();
2349 TP.getInfer().expandOverloads(VTS);
2366 TP.error("Unknown node flavor used in pattern: " + R->getName());
2476 static void emitTooManyOperandsError(TreePattern &TP, StringRef InstName,
2478 TP.error("Instruction '" + InstName + "' was provided " + Twine(Actual) +
2482 static void emitTooFewOperandsError(TreePattern &TP, StringRef InstName,
2484 TP.error("Instruction '" + InstName + "' expects more than the provided " +
2491 bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) {
2492 if (TP.hasError())
2495 CodeGenDAGPatterns &CDP = TP.getDAGPatterns();
2502 i, getImplicitType(DI->getDef(), i, NotRegisters, !hasName(), TP),
2503 TP);
2511 bool MadeChange = TP.getInfer().EnforceInteger(Types[0]);
2513 if (!TP.getInfer().isConcrete(Types[0], false))
2516 ValueTypeByHwMode VVT = TP.getInfer().getConcrete(Types[0], false);
2528 TP.error("Integer value '" + Twine(Val) +
2548 i, getValueType(Int->IS.RetTys[i]->getValueAsDef("VT")), TP);
2551 TP.error("Intrinsic '" + Int->Name + "' expects " + Twine(NumParamVTs) +
2557 MadeChange |= getChild(0).UpdateNodeType(0, MVT::iPTR, TP);
2560 MadeChange |= getChild(i + 1).ApplyTypeConstraints(TP, NotRegisters);
2565 MadeChange |= getChild(i + 1).UpdateNodeType(0, OpVT, TP);
2576 TP.error(getOperator()->getName() + " node requires exactly " +
2583 MadeChange |= Child.ApplyTypeConstraints(TP, NotRegisters);
2584 MadeChange |= NI.ApplyTypeConstraints(*this, TP);
2600 MadeChange |= UpdateNodeTypeFromInst(ResNo, Inst.getResult(ResNo), TP);
2613 MadeChange |= UpdateNodeType(ResNo, VT, TP);
2620 MadeChange |= UpdateNodeType(0, getChild(0).getExtType(0), TP);
2621 MadeChange |= getChild(0).UpdateNodeType(0, getExtType(0), TP);
2628 TP.error("REG_SEQUENCE requires at least 3 operands!");
2633 TP.error("REG_SEQUENCE requires an odd number of operands!");
2638 TP.error("REG_SEQUENCE requires a RegisterClass for first operand!");
2645 TP.error("REG_SEQUENCE requires a SubRegIndex for operand " +
2684 emitTooFewOperandsError(TP, getOperator()->getName(), getNumChildren());
2702 MadeChange |= Child->UpdateNodeTypeFromInst(ChildResNo, SubRec, TP);
2707 emitTooFewOperandsError(TP, getOperator()->getName(),
2715 Child->UpdateNodeTypeFromInst(ChildResNo, SubRec, TP);
2724 MadeChange |= Child->UpdateNodeTypeFromInst(ChildResNo, OperandNode, TP);
2728 emitTooManyOperandsError(TP, getOperator()->getName(), ChildNo,
2734 MadeChange |= Child.ApplyTypeConstraints(TP, NotRegisters);
2754 MadeChange |= UpdateNodeType(0, VVT, TP);
2758 MadeChange |= Child.ApplyTypeConstraints(TP, NotRegisters);
2767 TP.error("Node transform '" + getOperator()->getName() +
2772 bool MadeChange = getChild(0).ApplyTypeConstraints(TP, NotRegisters);
4241 static bool ForceArbitraryInstResultType(TreePatternNode &N, TreePattern &TP) {
4247 if (ForceArbitraryInstResultType(Child, TP))
4255 TypeInfer &TI = TP.getInfer();