Lines Matching refs:TP
366 if (In.empty() || Out == In || TP.hasError()) in MergeInTypeInfo()
375 TP.error("Type contradiction"); in MergeInTypeInfo()
382 if (TP.hasError()) in forceArbitrary()
401 if (TP.hasError()) in EnforceInteger()
411 if (TP.hasError()) in EnforceFloatingPoint()
421 if (TP.hasError()) in EnforceScalar()
431 if (TP.hasError()) in EnforceVector()
441 if (TP.hasError() || !Out.empty()) in EnforceAny()
480 if (TP.hasError()) in EnforceSmallerThan()
525 TP.error("Incompatible types"); in EnforceSmallerThan()
600 if (TP.hasError()) in EnforceVectorEltTypeIs()
652 if (TP.hasError()) in EnforceVectorSubVectorTypeIs()
720 if (TP.hasError()) in EnforceSameNumElts()
771 if (TP.hasError()) in EnforceSameSize()
858 const TypeSetByHwMode <S = TP.getDAGPatterns().getLegalTypes(); in getLegalTypes()
874 Infer.TP.dump(); in ~ValidateOnExit()
876 Infer.TP.getRecord()->dump(); in ~ValidateOnExit()
878 PrintFatalError(Infer.TP.getRecord()->getLoc(), in ~ValidateOnExit()
880 Infer.TP.getRecord()->getName() + "'"); in ~ValidateOnExit()
1622 TreePattern &TP) const { in ApplyTypeConstraint()
1623 if (TP.hasError()) in ApplyTypeConstraint()
1628 TypeInfer &TI = TP.getInfer(); in ApplyTypeConstraint()
1633 return NodeToApply.UpdateNodeType(ResNo, VVT, TP); in ApplyTypeConstraint()
1636 return NodeToApply.UpdateNodeType(ResNo, MVT::iPTR, TP); in ApplyTypeConstraint()
1651 TP) | in ApplyTypeConstraint()
1653 TP); in ApplyTypeConstraint()
1662 TP.error(N.getOperator()->getName() + " expects a VT operand!"); in ApplyTypeConstraint()
1666 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in ApplyTypeConstraint()
1728 TreePattern &TP) { in UpdateNodeTypeFromInst() argument
1737 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in UpdateNodeTypeFromInst()
1738 return UpdateNodeType(ResNo, getValueTypeByHwMode(R, T.getHwModes()), TP); in UpdateNodeTypeFromInst()
1743 return UpdateNodeType(ResNo, MVT::iPTR, TP); in UpdateNodeTypeFromInst()
1754 CodeGenTarget &Tgt = TP.getDAGPatterns().getTargetInfo(); in UpdateNodeTypeFromInst()
1755 return UpdateNodeType(ResNo, Tgt.getRegisterClass(RC).getValueTypes(), TP); in UpdateNodeTypeFromInst()
1758 bool TreePatternNode::ContainsUnresolvedType(TreePattern &TP) const { in ContainsUnresolvedType()
1760 if (!TP.getInfer().isConcrete(Types[i], true)) in ContainsUnresolvedType()
1763 if (getChild(i).ContainsUnresolvedType(TP)) in ContainsUnresolvedType()
2072 TreePattern &TP, std::vector<TreePatternNodePtr> &OutAlternatives) { in InlinePatternFragments() argument
2074 if (TP.hasError()) in InlinePatternFragments()
2095 Child->InlinePatternFragments(TP, ChildAlternatives[i]); in InlinePatternFragments()
2154 TreePattern *Frag = TP.getDAGPatterns().getPatternFragment(Op); in InlinePatternFragments()
2158 TP.error("'" + Op->getName() + "' fragment requires " + in InlinePatternFragments()
2166 Scope = TP.getDAGPatterns().allocateScope(); in InlinePatternFragments()
2194 FragTree->UpdateNodeType(i, getExtType(i), TP); in InlinePatternFragments()
2205 FragTree->InlinePatternFragments(TP, OutAlternatives); in InlinePatternFragments()
2223 TreePattern &TP) { in getImplicitType() argument
2224 CodeGenDAGPatterns &CDP = TP.getDAGPatterns(); in getImplicitType()
2232 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in getImplicitType()
2248 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in getImplicitType()
2262 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in getImplicitType()
2307 TP.getInfer().expandOverloads(VTS); in getImplicitType()
2324 TP.error("Unknown node flavor used in pattern: " + R->getName()); in getImplicitType()
2434 static void emitTooManyOperandsError(TreePattern &TP, StringRef InstName, in emitTooManyOperandsError() argument
2436 TP.error("Instruction '" + InstName + "' was provided " + Twine(Actual) + in emitTooManyOperandsError()
2440 static void emitTooFewOperandsError(TreePattern &TP, StringRef InstName, in emitTooFewOperandsError() argument
2442 TP.error("Instruction '" + InstName + "' expects more than the provided " + in emitTooFewOperandsError()
2449 bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) { in ApplyTypeConstraints() argument
2450 if (TP.hasError()) in ApplyTypeConstraints()
2453 CodeGenDAGPatterns &CDP = TP.getDAGPatterns(); in ApplyTypeConstraints()
2460 i, getImplicitType(DI->getDef(), i, NotRegisters, !hasName(), TP), in ApplyTypeConstraints()
2461 TP); in ApplyTypeConstraints()
2469 bool MadeChange = TP.getInfer().EnforceInteger(Types[0]); in ApplyTypeConstraints()
2471 if (!TP.getInfer().isConcrete(Types[0], false)) in ApplyTypeConstraints()
2474 ValueTypeByHwMode VVT = TP.getInfer().getConcrete(Types[0], false); in ApplyTypeConstraints()
2490 TP.error("Integer value '" + Twine(II->getValue()) + in ApplyTypeConstraints()
2509 i, getValueType(Int->IS.RetTys[i]->getValueAsDef("VT")), TP); in ApplyTypeConstraints()
2512 TP.error("Intrinsic '" + Int->Name + "' expects " + Twine(NumParamVTs) + in ApplyTypeConstraints()
2518 MadeChange |= getChild(0).UpdateNodeType(0, MVT::iPTR, TP); in ApplyTypeConstraints()
2521 MadeChange |= getChild(i + 1).ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2526 MadeChange |= getChild(i + 1).UpdateNodeType(0, OpVT, TP); in ApplyTypeConstraints()
2537 TP.error(getOperator()->getName() + " node requires exactly " + in ApplyTypeConstraints()
2544 MadeChange |= getChild(i).ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2545 MadeChange |= NI.ApplyTypeConstraints(*this, TP); in ApplyTypeConstraints()
2561 MadeChange |= UpdateNodeTypeFromInst(ResNo, Inst.getResult(ResNo), TP); in ApplyTypeConstraints()
2574 MadeChange |= UpdateNodeType(ResNo, VT, TP); in ApplyTypeConstraints()
2581 MadeChange |= UpdateNodeType(0, getChild(0).getExtType(0), TP); in ApplyTypeConstraints()
2582 MadeChange |= getChild(0).UpdateNodeType(0, getExtType(0), TP); in ApplyTypeConstraints()
2589 TP.error("REG_SEQUENCE requires at least 3 operands!"); in ApplyTypeConstraints()
2594 TP.error("REG_SEQUENCE requires an odd number of operands!"); in ApplyTypeConstraints()
2599 TP.error("REG_SEQUENCE requires a RegisterClass for first operand!"); in ApplyTypeConstraints()
2606 TP.error("REG_SEQUENCE requires a SubRegIndex for operand " + in ApplyTypeConstraints()
2645 emitTooFewOperandsError(TP, getOperator()->getName(), getNumChildren()); in ApplyTypeConstraints()
2663 MadeChange |= Child->UpdateNodeTypeFromInst(ChildResNo, SubRec, TP); in ApplyTypeConstraints()
2668 emitTooFewOperandsError(TP, getOperator()->getName(), in ApplyTypeConstraints()
2676 Child->UpdateNodeTypeFromInst(ChildResNo, SubRec, TP); in ApplyTypeConstraints()
2685 MadeChange |= Child->UpdateNodeTypeFromInst(ChildResNo, OperandNode, TP); in ApplyTypeConstraints()
2689 emitTooManyOperandsError(TP, getOperator()->getName(), ChildNo, in ApplyTypeConstraints()
2695 MadeChange |= getChild(i).ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2715 MadeChange |= UpdateNodeType(0, VVT, TP); in ApplyTypeConstraints()
2719 MadeChange |= getChild(i).ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2728 TP.error("Node transform '" + getOperator()->getName() + in ApplyTypeConstraints()
2733 bool MadeChange = getChild(0).ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
4214 static bool ForceArbitraryInstResultType(TreePatternNode &N, TreePattern &TP) { in ForceArbitraryInstResultType() argument
4220 if (ForceArbitraryInstResultType(N.getChild(i), TP)) in ForceArbitraryInstResultType()
4228 TypeInfer &TI = TP.getInfer(); in ForceArbitraryInstResultType()