Lines Matching defs:TreePatternNodePtr

1807   for (const TreePatternNodePtr &C : Children)
1817 for (const TreePatternNodePtr &C : Children)
1830 for (const TreePatternNodePtr &C : Children)
2049 TreePatternNodePtr TreePatternNode::clone() const {
2050 TreePatternNodePtr New;
2054 std::vector<TreePatternNodePtr> CChildren;
2083 std::map<std::string, TreePatternNodePtr> &ArgMap) {
2097 TreePatternNodePtr NewChild = ArgMap[Child.getName()];
2114 TreePattern &TP, std::vector<TreePatternNodePtr> &OutAlternatives) {
2133 std::vector<std::vector<TreePatternNodePtr>> ChildAlternatives(
2136 TreePatternNodePtr Child = getChildShared(i);
2145 [&](const TreePatternNodePtr &NewChild) {
2157 std::vector<TreePatternNodePtr> NewChildren;
2161 TreePatternNodePtr R = makeIntrusiveRefCnt<TreePatternNode>(
2211 std::map<std::string, TreePatternNodePtr> ArgMap;
2213 TreePatternNodePtr Child = getChildShared(i);
2223 TreePatternNodePtr FragTree = Alternative->clone();
2852 TreePattern::TreePattern(const Record *TheRec, TreePatternNodePtr Pat,
2868 for (TreePatternNodePtr &Tree : Trees)
2880 TreePatternNodePtr TreePattern::ParseTreePattern(const Init *TheInit,
2899 TreePatternNodePtr Res = makeIntrusiveRefCnt<TreePatternNode>(DI, 1);
2914 TreePatternNodePtr Res = makeIntrusiveRefCnt<TreePatternNode>(TheInit, 1);
2956 TreePatternNodePtr New = ParseCastOperand(Dag, OpName);
2981 TreePatternNodePtr New = ParseCastOperand(Dag, OpName);
3024 std::vector<TreePatternNodePtr> Children;
3057 TreePatternNodePtr Child = Children[i];
3075 TreePatternNodePtr Result = makeIntrusiveRefCnt<TreePatternNode>(
3092 static bool SimplifyTree(TreePatternNodePtr &N) {
3141 for (TreePatternNodePtr &Tree : Trees) {
3199 for (const TreePatternNodePtr &Tree : Trees)
3217 for (const TreePatternNodePtr &Tree : Trees) {
3417 const TreePatternNodePtr &T = P.getTree(0);
3419 TreePatternNodePtr TPN = T->getChildShared(op);
3438 static bool HandleUse(TreePattern &I, TreePatternNodePtr Pat,
3439 std::map<std::string, TreePatternNodePtr> &InstInputs) {
3465 TreePatternNodePtr &Slot = InstInputs[Pat->getName()];
3493 TreePattern &I, TreePatternNodePtr Pat,
3494 std::map<std::string, TreePatternNodePtr> &InstInputs,
3495 MapVector<std::string, TreePatternNodePtr, std::map<std::string, unsigned>>
3544 TreePatternNodePtr Dest = Pat->getChildShared(i);
3814 std::map<std::string, TreePatternNodePtr> InstInputs;
3818 MapVector<std::string, TreePatternNodePtr, std::map<std::string, unsigned>>
3828 TreePatternNodePtr Pat = I.getTree(j);
3857 SmallVector<TreePatternNodePtr, 2> ResNodes;
3863 [](const std::pair<std::string, TreePatternNodePtr> &P) {
3878 TreePatternNodePtr RNode = InstResultIter->second;
3900 std::vector<TreePatternNodePtr> ResultNodeOperands;
3924 TreePatternNodePtr InVal = InIter->second;
3939 TreePatternNodePtr OpNode = InVal->clone();
3947 std::vector<TreePatternNodePtr> Children;
3960 TreePatternNodePtr ResultPattern = makeIntrusiveRefCnt<TreePatternNode>(
3972 TreePatternNodePtr Pattern = I.getTree(0);
3973 TreePatternNodePtr SrcPattern;
4034 TreePatternNodePtr SrcPattern = TheInst.getSrcPattern();
4035 TreePatternNodePtr ResultPattern = TheInst.getResultPattern();
4269 static TreePatternNodePtr PromoteXForms(TreePatternNodePtr N) {
4272 std::vector<TreePatternNodePtr> Children;
4280 TreePatternNodePtr Child = N->getChildShared(i);
4351 TreePatternNodePtr DstShared = PromoteXForms(Result.getOnlyTree());
4411 std::map<std::string, TreePatternNodePtr> InstInputs;
4412 MapVector<std::string, TreePatternNodePtr, std::map<std::string, unsigned>>
4443 TreePatternNodePtr NewSrc = P.getSrcPattern().clone();
4444 TreePatternNodePtr NewDst = P.getDstPattern().clone();
4548 TreePatternNodePtr Orig,
4549 const std::vector<std::vector<TreePatternNodePtr>> &ChildVariants,
4550 std::vector<TreePatternNodePtr> &OutVariants, CodeGenDAGPatterns &CDP,
4571 std::vector<TreePatternNodePtr> NewChildren;
4575 TreePatternNodePtr R = makeIntrusiveRefCnt<TreePatternNode>(
4594 none_of(OutVariants, [&](TreePatternNodePtr Variant) {
4615 static void CombineChildVariants(TreePatternNodePtr Orig,
4616 const std::vector<TreePatternNodePtr> &LHS,
4617 const std::vector<TreePatternNodePtr> &RHS,
4618 std::vector<TreePatternNodePtr> &OutVariants,
4621 std::vector<std::vector<TreePatternNodePtr>> ChildVariants;
4628 GatherChildrenOfAssociativeOpcode(TreePatternNodePtr N,
4629 std::vector<TreePatternNodePtr> &Children) {
4655 static void GenerateVariantsOf(TreePatternNodePtr N,
4656 std::vector<TreePatternNodePtr> &OutVariants,
4671 std::vector<TreePatternNodePtr> MaximalChildren;
4678 std::vector<TreePatternNodePtr> AVariants, BVariants, CVariants;
4688 std::vector<TreePatternNodePtr> ABVariants;
4689 std::vector<TreePatternNodePtr> BAVariants;
4690 std::vector<TreePatternNodePtr> ACVariants;
4691 std::vector<TreePatternNodePtr> CAVariants;
4692 std::vector<TreePatternNodePtr> BCVariants;
4693 std::vector<TreePatternNodePtr> CBVariants;
4721 std::vector<std::vector<TreePatternNodePtr>> ChildVariants(
4774 std::vector<TreePatternNodePtr> Variants;
4793 TreePatternNodePtr Variant = Variants[v];