Lines Matching refs:TP
372 if (In.empty() || Out == In || TP.hasError()) in MergeInTypeInfo()
381 TP.error("Type contradiction"); in MergeInTypeInfo()
388 if (TP.hasError()) in forceArbitrary()
407 if (TP.hasError()) in EnforceInteger()
417 if (TP.hasError()) in EnforceFloatingPoint()
427 if (TP.hasError()) in EnforceScalar()
437 if (TP.hasError()) in EnforceVector()
447 if (TP.hasError() || !Out.empty()) in EnforceAny()
486 if (TP.hasError()) in EnforceSmallerThan()
531 TP.error("Incompatible types"); in EnforceSmallerThan()
606 if (TP.hasError()) in EnforceVectorEltTypeIs()
658 if (TP.hasError()) in EnforceVectorSubVectorTypeIs()
726 if (TP.hasError()) in EnforceSameNumElts()
777 if (TP.hasError()) in EnforceSameSize()
864 const TypeSetByHwMode <S = TP.getDAGPatterns().getLegalTypes(); in getLegalTypes()
880 Infer.TP.dump(); in ~ValidateOnExit()
882 Infer.TP.getRecord()->dump(); in ~ValidateOnExit()
884 PrintFatalError(Infer.TP.getRecord()->getLoc(), in ~ValidateOnExit()
886 Infer.TP.getRecord()->getName() + "'"); in ~ValidateOnExit()
1621 TreePattern &TP) const { in ApplyTypeConstraint()
1622 if (TP.hasError()) in ApplyTypeConstraint()
1627 TypeInfer &TI = TP.getInfer(); in ApplyTypeConstraint()
1632 return NodeToApply->UpdateNodeType(ResNo, VVT, TP); in ApplyTypeConstraint()
1635 return NodeToApply->UpdateNodeType(ResNo, MVT::iPTR, TP); in ApplyTypeConstraint()
1650 OtherNode->getExtType(OResNo), TP) | in ApplyTypeConstraint()
1652 NodeToApply->getExtType(ResNo), TP); in ApplyTypeConstraint()
1661 TP.error(N->getOperator()->getName() + " expects a VT operand!"); in ApplyTypeConstraint()
1665 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in ApplyTypeConstraint()
1734 TreePattern &TP) { in UpdateNodeTypeFromInst() argument
1743 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in UpdateNodeTypeFromInst()
1744 return UpdateNodeType(ResNo, getValueTypeByHwMode(R, T.getHwModes()), TP); in UpdateNodeTypeFromInst()
1749 return UpdateNodeType(ResNo, MVT::iPTR, TP); in UpdateNodeTypeFromInst()
1760 CodeGenTarget &Tgt = TP.getDAGPatterns().getTargetInfo(); in UpdateNodeTypeFromInst()
1761 return UpdateNodeType(ResNo, Tgt.getRegisterClass(RC).getValueTypes(), TP); in UpdateNodeTypeFromInst()
1764 bool TreePatternNode::ContainsUnresolvedType(TreePattern &TP) const { in ContainsUnresolvedType()
1766 if (!TP.getInfer().isConcrete(Types[i], true)) in ContainsUnresolvedType()
1769 if (getChild(i)->ContainsUnresolvedType(TP)) in ContainsUnresolvedType()
2077 TreePattern &TP, std::vector<TreePatternNodePtr> &OutAlternatives) { in InlinePatternFragments() argument
2079 if (TP.hasError()) in InlinePatternFragments()
2100 Child->InlinePatternFragments(TP, ChildAlternatives[i]); in InlinePatternFragments()
2159 TreePattern *Frag = TP.getDAGPatterns().getPatternFragment(Op); in InlinePatternFragments()
2163 TP.error("'" + Op->getName() + "' fragment requires " + in InlinePatternFragments()
2171 Scope = TP.getDAGPatterns().allocateScope(); in InlinePatternFragments()
2199 FragTree->UpdateNodeType(i, getExtType(i), TP); in InlinePatternFragments()
2210 FragTree->InlinePatternFragments(TP, OutAlternatives); in InlinePatternFragments()
2229 TreePattern &TP) { in getImplicitType() argument
2230 CodeGenDAGPatterns &CDP = TP.getDAGPatterns(); in getImplicitType()
2238 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in getImplicitType()
2254 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in getImplicitType()
2268 const CodeGenTarget &T = TP.getDAGPatterns().getTargetInfo(); in getImplicitType()
2313 TP.getInfer().expandOverloads(VTS); in getImplicitType()
2330 TP.error("Unknown node flavor used in pattern: " + R->getName()); in getImplicitType()
2444 static void emitTooManyOperandsError(TreePattern &TP, in emitTooManyOperandsError() argument
2448 TP.error("Instruction '" + InstName + "' was provided " + Twine(Actual) + in emitTooManyOperandsError()
2452 static void emitTooFewOperandsError(TreePattern &TP, in emitTooFewOperandsError() argument
2455 TP.error("Instruction '" + InstName + in emitTooFewOperandsError()
2462 bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) { in ApplyTypeConstraints() argument
2463 if (TP.hasError()) in ApplyTypeConstraints()
2466 CodeGenDAGPatterns &CDP = TP.getDAGPatterns(); in ApplyTypeConstraints()
2474 !hasName(), TP), TP); in ApplyTypeConstraints()
2482 bool MadeChange = TP.getInfer().EnforceInteger(Types[0]); in ApplyTypeConstraints()
2484 if (!TP.getInfer().isConcrete(Types[0], false)) in ApplyTypeConstraints()
2487 ValueTypeByHwMode VVT = TP.getInfer().getConcrete(Types[0], false); in ApplyTypeConstraints()
2503 TP.error("Integer value '" + Twine(II->getValue()) + in ApplyTypeConstraints()
2522 i, getValueType(Int->IS.RetTys[i]->getValueAsDef("VT")), TP); in ApplyTypeConstraints()
2525 TP.error("Intrinsic '" + Int->Name + "' expects " + Twine(NumParamVTs) + in ApplyTypeConstraints()
2531 MadeChange |= getChild(0)->UpdateNodeType(0, MVT::iPTR, TP); in ApplyTypeConstraints()
2534 MadeChange |= getChild(i+1)->ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2539 MadeChange |= getChild(i + 1)->UpdateNodeType(0, OpVT, TP); in ApplyTypeConstraints()
2550 TP.error(getOperator()->getName() + " node requires exactly " + in ApplyTypeConstraints()
2557 MadeChange |= getChild(i)->ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2558 MadeChange |= NI.ApplyTypeConstraints(this, TP); in ApplyTypeConstraints()
2574 MadeChange |= UpdateNodeTypeFromInst(ResNo, Inst.getResult(ResNo), TP); in ApplyTypeConstraints()
2587 MadeChange |= UpdateNodeType(ResNo, VT, TP); in ApplyTypeConstraints()
2594 MadeChange |= UpdateNodeType(0, getChild(0)->getExtType(0), TP); in ApplyTypeConstraints()
2595 MadeChange |= getChild(0)->UpdateNodeType(0, getExtType(0), TP); in ApplyTypeConstraints()
2602 TP.error("REG_SEQUENCE requires at least 3 operands!"); in ApplyTypeConstraints()
2607 TP.error("REG_SEQUENCE requires an odd number of operands!"); in ApplyTypeConstraints()
2612 TP.error("REG_SEQUENCE requires a RegisterClass for first operand!"); in ApplyTypeConstraints()
2619 TP.error("REG_SEQUENCE requires a SubRegIndex for operand " + in ApplyTypeConstraints()
2657 emitTooFewOperandsError(TP, getOperator()->getName(), getNumChildren()); in ApplyTypeConstraints()
2676 Child->UpdateNodeTypeFromInst(ChildResNo, SubRec, TP); in ApplyTypeConstraints()
2681 emitTooFewOperandsError(TP, getOperator()->getName(), in ApplyTypeConstraints()
2689 Child->UpdateNodeTypeFromInst(ChildResNo, SubRec, TP); in ApplyTypeConstraints()
2698 MadeChange |= Child->UpdateNodeTypeFromInst(ChildResNo, OperandNode, TP); in ApplyTypeConstraints()
2702 emitTooManyOperandsError(TP, getOperator()->getName(), in ApplyTypeConstraints()
2708 MadeChange |= getChild(i)->ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2728 MadeChange |= UpdateNodeType(0, VVT, TP); in ApplyTypeConstraints()
2732 MadeChange |= getChild(i)->ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
2741 TP.error("Node transform '" + getOperator()->getName() + in ApplyTypeConstraints()
2746 bool MadeChange = getChild(0)->ApplyTypeConstraints(TP, NotRegisters); in ApplyTypeConstraints()
4210 static bool ForceArbitraryInstResultType(TreePatternNode *N, TreePattern &TP) { in ForceArbitraryInstResultType() argument
4216 if (ForceArbitraryInstResultType(N->getChild(i), TP)) in ForceArbitraryInstResultType()
4224 TypeInfer &TI = TP.getInfer(); in ForceArbitraryInstResultType()