Lines Matching refs:TP
343 if (In.empty() || Out == In || TP.hasError()) in MergeInTypeInfo()
352 TP.error("Type contradiction"); in MergeInTypeInfo()
359 if (TP.hasError()) in forceArbitrary()
378 if (TP.hasError()) in EnforceInteger()
388 if (TP.hasError()) in EnforceFloatingPoint()
398 if (TP.hasError()) in EnforceScalar()
408 if (TP.hasError()) in EnforceVector()
418 if (TP.hasError() || !Out.empty()) in EnforceAny()
457 if (TP.hasError()) in EnforceSmallerThan()
492 TP.error("Incompatible types"); in EnforceSmallerThan()
567 if (TP.hasError()) in EnforceVectorEltTypeIs()
619 if (TP.hasError()) in EnforceVectorSubVectorTypeIs()
687 if (TP.hasError()) in EnforceSameNumElts()
740 if (TP.hasError()) in EnforceSameSize()
842 const TypeSetByHwMode <S = TP.getDAGPatterns().getLegalTypes(); in getLegalTypes()
858 Infer.TP.dump(); in ~ValidateOnExit()
860 Infer.TP.getRecord()->dump(); in ~ValidateOnExit()
861 PrintFatalError(Infer.TP.getRecord()->getLoc(), in ~ValidateOnExit()
863 Infer.TP.getRecord()->getName() + "'"); in ~ValidateOnExit()
1587 TreePattern &TP) const { in ApplyTypeConstraint()
1588 if (TP.hasError()) in ApplyTypeConstraint()
1593 TypeInfer &TI = TP.getInfer(); in ApplyTypeConstraint()
1598 return NodeToApply->UpdateNodeType(ResNo, VVT, TP); in ApplyTypeConstraint()
1601 return NodeToApply->UpdateNodeType(ResNo, MVT::iPTR, TP); in ApplyTypeConstraint()
1615 return NodeToApply->UpdateNodeType(ResNo, OtherNode->getExtType(OResNo),TP)| in ApplyTypeConstraint()
1616 OtherNode->UpdateNodeType(OResNo,NodeToApply->getExtType(ResNo),TP); in ApplyTypeConstraint()
1625 TP.error(N->getOperator()->getName() + " expects a VT operand!"); in ApplyTypeConstraint()
1629 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in ApplyTypeConstraint()
1697 TreePattern &TP) { in UpdateNodeTypeFromInst() argument
1706 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in UpdateNodeTypeFromInst()
1707 return UpdateNodeType(ResNo, getValueTypeByHwMode(R, T.getHwModes()), TP); in UpdateNodeTypeFromInst()
1712 return UpdateNodeType(ResNo, MVT::iPTR, TP); in UpdateNodeTypeFromInst()
1723 CodeGenTarget &Tgt = TP.getDAGPatterns().getTargetInfo(); in UpdateNodeTypeFromInst()
1724 return UpdateNodeType(ResNo, Tgt.getRegisterClass(RC).getValueTypes(), TP); in UpdateNodeTypeFromInst()
1727 bool TreePatternNode::ContainsUnresolvedType(TreePattern &TP) const { in ContainsUnresolvedType()
1729 if (!TP.getInfer().isConcrete(Types[i], true)) in ContainsUnresolvedType()
1732 if (getChild(i)->ContainsUnresolvedType(TP)) in ContainsUnresolvedType()
2032 TreePatternNodePtr T, TreePattern &TP, in InlinePatternFragments() argument
2035 if (TP.hasError()) in InlinePatternFragments()
2056 Child->InlinePatternFragments(Child, TP, ChildAlternatives[i]); in InlinePatternFragments()
2114 TreePattern *Frag = TP.getDAGPatterns().getPatternFragment(Op); in InlinePatternFragments()
2118 TP.error("'" + Op->getName() + "' fragment requires " + in InlinePatternFragments()
2126 Scope = TP.getDAGPatterns().allocateScope(); in InlinePatternFragments()
2154 FragTree->UpdateNodeType(i, getExtType(i), TP); in InlinePatternFragments()
2162 FragTree->InlinePatternFragments(FragTree, TP, OutAlternatives); in InlinePatternFragments()
2181 TreePattern &TP) { in getImplicitType() argument
2182 CodeGenDAGPatterns &CDP = TP.getDAGPatterns(); in getImplicitType()
2190 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in getImplicitType()
2206 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in getImplicitType()
2220 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in getImplicitType()
2263 TP.getInfer().expandOverloads(VTS); in getImplicitType()
2280 TP.error("Unknown node flavor used in pattern: " + R->getName()); in getImplicitType()
2394 static void emitTooManyOperandsError(TreePattern &TP, in emitTooManyOperandsError() argument
2398 TP.error("Instruction '" + InstName + "' was provided " + Twine(Actual) + in emitTooManyOperandsError()
2402 static void emitTooFewOperandsError(TreePattern &TP, in emitTooFewOperandsError() argument
2405 TP.error("Instruction '" + InstName + in emitTooFewOperandsError()
2412 bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) { in ApplyTypeConstraints() argument
2413 if (TP.hasError()) in ApplyTypeConstraints()
2416 CodeGenDAGPatterns &CDP = TP.getDAGPatterns(); in ApplyTypeConstraints()
2424 !hasName(), TP), TP); in ApplyTypeConstraints()
2432 bool MadeChange = TP.getInfer().EnforceInteger(Types[0]); in ApplyTypeConstraints()
2434 if (!TP.getInfer().isConcrete(Types[0], false)) in ApplyTypeConstraints()
2437 ValueTypeByHwMode VVT = TP.getInfer().getConcrete(Types[0], false); in ApplyTypeConstraints()
2453 TP.error("Integer value '" + Twine(II->getValue()) + in ApplyTypeConstraints()
2471 MadeChange |= UpdateNodeType(i, Int->IS.RetVTs[i], TP); in ApplyTypeConstraints()
2474 TP.error("Intrinsic '" + Int->Name + "' expects " + Twine(NumParamVTs) + in ApplyTypeConstraints()
2480 MadeChange |= getChild(0)->UpdateNodeType(0, MVT::iPTR, TP); in ApplyTypeConstraints()
2483 MadeChange |= getChild(i+1)->ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2487 MadeChange |= getChild(i+1)->UpdateNodeType(0, OpVT, TP); in ApplyTypeConstraints()
2498 TP.error(getOperator()->getName() + " node requires exactly " + in ApplyTypeConstraints()
2505 MadeChange |= getChild(i)->ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2506 MadeChange |= NI.ApplyTypeConstraints(this, TP); in ApplyTypeConstraints()
2522 MadeChange |= UpdateNodeTypeFromInst(ResNo, Inst.getResult(ResNo), TP); in ApplyTypeConstraints()
2535 MadeChange |= UpdateNodeType(ResNo, VT, TP); in ApplyTypeConstraints()
2542 MadeChange |= UpdateNodeType(0, getChild(0)->getExtType(0), TP); in ApplyTypeConstraints()
2543 MadeChange |= getChild(0)->UpdateNodeType(0, getExtType(0), TP); in ApplyTypeConstraints()
2550 TP.error("REG_SEQUENCE requires at least 3 operands!"); in ApplyTypeConstraints()
2555 TP.error("REG_SEQUENCE requires an odd number of operands!"); in ApplyTypeConstraints()
2560 TP.error("REG_SEQUENCE requires a RegisterClass for first operand!"); in ApplyTypeConstraints()
2567 TP.error("REG_SEQUENCE requires a SubRegIndex for operand " + in ApplyTypeConstraints()
2605 emitTooFewOperandsError(TP, getOperator()->getName(), getNumChildren()); in ApplyTypeConstraints()
2624 Child->UpdateNodeTypeFromInst(ChildResNo, SubRec, TP); in ApplyTypeConstraints()
2629 emitTooFewOperandsError(TP, getOperator()->getName(), in ApplyTypeConstraints()
2637 Child->UpdateNodeTypeFromInst(ChildResNo, SubRec, TP); in ApplyTypeConstraints()
2646 MadeChange |= Child->UpdateNodeTypeFromInst(ChildResNo, OperandNode, TP); in ApplyTypeConstraints()
2650 emitTooManyOperandsError(TP, getOperator()->getName(), in ApplyTypeConstraints()
2656 MadeChange |= getChild(i)->ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2664 MadeChange |= getChild(i)->ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2673 TP.error("Node transform '" + getOperator()->getName() + in ApplyTypeConstraints()
2678 bool MadeChange = getChild(0)->ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
4140 static bool ForceArbitraryInstResultType(TreePatternNode *N, TreePattern &TP) { in ForceArbitraryInstResultType() argument
4146 if (ForceArbitraryInstResultType(N->getChild(i), TP)) in ForceArbitraryInstResultType()
4154 TypeInfer &TI = TP.getInfer(); in ForceArbitraryInstResultType()