Lines Matching refs:TreePatternNode

584 static void FindDepVarsOf(TreePatternNode *N, DepVarMap &DepMap) {  in FindDepVarsOf()
595 static void FindDepVars(TreePatternNode *N, MultipleUseVarSet &DepVars) { in FindDepVars()
690 static unsigned getPatternSize(const TreePatternNode *P, in getPatternSize()
714 TreePatternNode *Child = P->getChild(i); in getPatternSize()
809 static TreePatternNode *getOperandNum(unsigned OpNo, TreePatternNode *N, in getOperandNum()
835 bool SDTypeConstraint::ApplyTypeConstraint(TreePatternNode *N, in ApplyTypeConstraint()
839 TreePatternNode *NodeToApply = getOperandNum(OperandNo, N, NodeInfo, ResNo); in ApplyTypeConstraint()
860 TreePatternNode *OtherNode = in ApplyTypeConstraint()
879 TreePatternNode *OtherNode = in ApplyTypeConstraint()
887 TreePatternNode *BigOperand = in ApplyTypeConstraint()
895 TreePatternNode *VecOperand = in ApplyTypeConstraint()
906 TreePatternNode *BigVecOperand = in ApplyTypeConstraint()
998 TreePatternNode::~TreePatternNode() { in ~TreePatternNode()
1052 void TreePatternNode::print(raw_ostream &OS) const { in print()
1081 void TreePatternNode::dump() const { in dump()
1092 bool TreePatternNode::isIsomorphicTo(const TreePatternNode *N, in isIsomorphicTo()
1121 TreePatternNode *TreePatternNode::clone() const { in clone()
1122 TreePatternNode *New; in clone()
1124 New = new TreePatternNode(getLeafValue(), getNumTypes()); in clone()
1126 std::vector<TreePatternNode*> CChildren; in clone()
1130 New = new TreePatternNode(getOperator(), CChildren, getNumTypes()); in clone()
1140 void TreePatternNode::RemoveAllTypes() { in RemoveAllTypes()
1151 void TreePatternNode::
1152 SubstituteFormalArguments(std::map<std::string, TreePatternNode*> &ArgMap) { in SubstituteFormalArguments()
1156 TreePatternNode *Child = getChild(i); in SubstituteFormalArguments()
1162 TreePatternNode *NewChild = ArgMap[Child->getName()]; in SubstituteFormalArguments()
1179 TreePatternNode *TreePatternNode::InlinePatternFragments(TreePattern &TP) { in InlinePatternFragments()
1186 TreePatternNode *Child = getChild(i); in InlinePatternFragments()
1187 TreePatternNode *NewChild = Child->InlinePatternFragments(TP); in InlinePatternFragments()
1207 TreePatternNode *FragTree = Frag->getOnlyTree()->clone(); in InlinePatternFragments()
1216 std::map<std::string, TreePatternNode*> ArgMap; in InlinePatternFragments()
1314 const CodeGenIntrinsic *TreePatternNode::
1329 TreePatternNode::getComplexPatternInfo(const CodeGenDAGPatterns &CGP) const { in getComplexPatternInfo()
1339 bool TreePatternNode::NodeHasProperty(SDNP Property, in NodeHasProperty()
1358 bool TreePatternNode::TreeHasProperty(SDNP Property, in TreeHasProperty()
1371 TreePatternNode::isCommutativeIntrinsic(const CodeGenDAGPatterns &CDP) const { in isCommutativeIntrinsic()
1382 bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) { in ApplyTypeConstraints()
1436 TreePatternNode *SetVal = getChild(NC-1); in ApplyTypeConstraints()
1440 TreePatternNode *Child = getChild(i); in ApplyTypeConstraints()
1593 TreePatternNode *Child = getChild(ChildNo++); in ApplyTypeConstraints()
1651 static bool OnlyOnRHSOfCommutative(TreePatternNode *N) { in OnlyOnRHSOfCommutative()
1665 bool TreePatternNode::canPatternMatch(std::string &Reason, in canPatternMatch()
1717 TreePattern::TreePattern(Record *TheRec, TreePatternNode *Pat, bool isInput, in TreePattern()
1733 void TreePattern::ComputeNamedNodes(TreePatternNode *N) { in ComputeNamedNodes()
1742 TreePatternNode *TreePattern::ParseTreePattern(Init *TheInit, StringRef OpName){ in ParseTreePattern()
1756 TreePatternNode *Res = new TreePatternNode(DI, 1); in ParseTreePattern()
1770 return new TreePatternNode(II, 1); in ParseTreePattern()
1796 TreePatternNode *New = ParseTreePattern(Dag->getArg(0), Dag->getArgName(0)); in ParseTreePattern()
1841 std::vector<TreePatternNode*> Children; in ParseTreePattern()
1864 TreePatternNode *IIDNode = new TreePatternNode(IntInit::get(IID), 1); in ParseTreePattern()
1869 TreePatternNode *Result = new TreePatternNode(Operator, Children, NumResults); in ParseTreePattern()
1885 static bool SimplifyTree(TreePatternNode *&N) { in SimplifyTree()
1903 TreePatternNode *Child = N->getChild(i); in SimplifyTree()
1916 InferAllTypes(const StringMap<SmallVector<TreePatternNode*,1> > *InNamedTypes) { in InferAllTypes() argument
1929 for (StringMap<SmallVector<TreePatternNode*,1> >::iterator in InferAllTypes()
1931 SmallVectorImpl<TreePatternNode*> &Nodes = I->second; in InferAllTypes()
1940 const SmallVectorImpl<TreePatternNode*> &InNodes = in InferAllTypes()
1969 TreePatternNode *N1 = Nodes[i], *N2 = Nodes[i+1]; in InferAllTypes()
2205 TreePatternNode *T = P.getTree(0); in ParseDefaultOperands()
2207 TreePatternNode *TPN = T->getChild(op); in ParseDefaultOperands()
2230 static bool HandleUse(TreePattern *I, TreePatternNode *Pat, in HandleUse()
2231 std::map<std::string, TreePatternNode*> &InstInputs) { in HandleUse()
2256 TreePatternNode *&Slot = InstInputs[Pat->getName()]; in HandleUse()
2281 FindPatternInputsAndOutputs(TreePattern *I, TreePatternNode *Pat, in FindPatternInputsAndOutputs()
2282 std::map<std::string, TreePatternNode*> &InstInputs, in FindPatternInputsAndOutputs()
2283 std::map<std::string, TreePatternNode*>&InstResults, in FindPatternInputsAndOutputs()
2294 TreePatternNode *Dest = Pat->getChild(i); in FindPatternInputsAndOutputs()
2335 TreePatternNode *Dest = Pat->getChild(i); in FindPatternInputsAndOutputs()
2397 bool IsNodeBitcast(const TreePatternNode *N) const { in IsNodeBitcast()
2404 const TreePatternNode *N0 = N->getChild(0); in IsNodeBitcast()
2408 const TreePatternNode *N1 = N->getChild(1); in IsNodeBitcast()
2420 void AnalyzeNode(const TreePatternNode *N) { in AnalyzeNode()
2577 std::map<std::string, TreePatternNode*> InstInputs; in ParseInstructions()
2581 std::map<std::string, TreePatternNode*> InstResults; in ParseInstructions()
2588 TreePatternNode *Pat = I->getTree(j); in ParseInstructions()
2609 TreePatternNode *Res0Node = 0; in ParseInstructions()
2617 TreePatternNode *RNode = InstResults[OpName]; in ParseInstructions()
2640 std::map<std::string, TreePatternNode*> InstInputsCheck(InstInputs); in ParseInstructions()
2642 std::vector<TreePatternNode*> ResultNodeOperands; in ParseInstructions()
2664 TreePatternNode *InVal = InstInputsCheck[OpName]; in ParseInstructions()
2677 TreePatternNode *OpNode = InVal->clone(); in ParseInstructions()
2685 std::vector<TreePatternNode*> Children; in ParseInstructions()
2687 OpNode = new TreePatternNode(Xform, Children, OpNode->getNumTypes()); in ParseInstructions()
2697 TreePatternNode *ResultPattern = in ParseInstructions()
2698 new TreePatternNode(I->getRecord(), ResultNodeOperands, in ParseInstructions()
2731 TreePatternNode *Pattern = I->getTree(0); in ParseInstructions()
2732 TreePatternNode *SrcPattern; in ParseInstructions()
2753 typedef std::pair<const TreePatternNode*, unsigned> NameRecord;
2755 static void FindNames(const TreePatternNode *P, in FindNames()
2844 static bool ForceArbitraryInstResultType(TreePatternNode *N, TreePattern &TP) { in ForceArbitraryInstResultType()
2947 std::map<std::string, TreePatternNode*> InstInputs; in ParsePatterns()
2948 std::map<std::string, TreePatternNode*> InstResults; in ParsePatterns()
2956 TreePatternNode *DstPattern = Result->getOnlyTree(); in ParsePatterns()
2957 std::vector<TreePatternNode*> ResultNodeOperands; in ParsePatterns()
2959 TreePatternNode *OpNode = DstPattern->getChild(ii); in ParsePatterns()
2962 std::vector<TreePatternNode*> Children; in ParsePatterns()
2964 OpNode = new TreePatternNode(Xform, Children, OpNode->getNumTypes()); in ParsePatterns()
2970 DstPattern = new TreePatternNode(DstPattern->getOperator(), in ParsePatterns()
2993 static void CombineChildVariants(TreePatternNode *Orig, in CombineChildVariants()
2994 const std::vector<std::vector<TreePatternNode*> > &ChildVariants, in CombineChildVariants()
2995 std::vector<TreePatternNode*> &OutVariants, in CombineChildVariants()
3018 std::vector<TreePatternNode*> NewChildren; in CombineChildVariants()
3021 TreePatternNode *R = new TreePatternNode(Orig->getOperator(), NewChildren, in CombineChildVariants()
3070 static void CombineChildVariants(TreePatternNode *Orig, in CombineChildVariants()
3071 const std::vector<TreePatternNode*> &LHS, in CombineChildVariants()
3072 const std::vector<TreePatternNode*> &RHS, in CombineChildVariants()
3073 std::vector<TreePatternNode*> &OutVariants, in CombineChildVariants()
3076 std::vector<std::vector<TreePatternNode*> > ChildVariants; in CombineChildVariants()
3083 static void GatherChildrenOfAssociativeOpcode(TreePatternNode *N, in GatherChildrenOfAssociativeOpcode()
3084 std::vector<TreePatternNode *> &Children) { in GatherChildrenOfAssociativeOpcode()
3109 static void GenerateVariantsOf(TreePatternNode *N, in GenerateVariantsOf()
3110 std::vector<TreePatternNode*> &OutVariants, in GenerateVariantsOf()
3125 std::vector<TreePatternNode*> MaximalChildren; in GenerateVariantsOf()
3132 std::vector<TreePatternNode*> AVariants, BVariants, CVariants; in GenerateVariantsOf()
3142 std::vector<TreePatternNode*> ABVariants; in GenerateVariantsOf()
3143 std::vector<TreePatternNode*> BAVariants; in GenerateVariantsOf()
3144 std::vector<TreePatternNode*> ACVariants; in GenerateVariantsOf()
3145 std::vector<TreePatternNode*> CAVariants; in GenerateVariantsOf()
3146 std::vector<TreePatternNode*> BCVariants; in GenerateVariantsOf()
3147 std::vector<TreePatternNode*> CBVariants; in GenerateVariantsOf()
3175 std::vector<std::vector<TreePatternNode*> > ChildVariants; in GenerateVariantsOf()
3191 TreePatternNode *Child = N->getChild(i); in GenerateVariantsOf()
3207 std::vector<std::vector<TreePatternNode*> > Variants; in GenerateVariantsOf()
3237 std::vector<TreePatternNode*> Variants; in GenerateVariants()
3256 TreePatternNode *Variant = Variants[v]; in GenerateVariants()