Lines Matching defs:TreePatternNode

1409 static bool isImmAllOnesAllZerosMatch(const TreePatternNode &P) {
1423 static unsigned getPatternSize(const TreePatternNode &P,
1443 for (const TreePatternNode &Child : P.children()) {
1579 static TreePatternNode &getOperandNum(unsigned OpNo, TreePatternNode &N,
1602 bool SDTypeConstraint::ApplyTypeConstraint(TreePatternNode &N,
1609 TreePatternNode &NodeToApply = getOperandNum(OperandNo, N, NodeInfo, ResNo);
1630 TreePatternNode &OtherNode =
1653 TreePatternNode &OtherNode =
1661 TreePatternNode &BigOperand =
1668 TreePatternNode &VecOperand =
1677 TreePatternNode &BigVecOperand =
1690 TreePatternNode &OtherNode =
1697 TreePatternNode &OtherNode =
1761 bool TreePatternNode::UpdateNodeTypeFromInst(unsigned ResNo,
1793 bool TreePatternNode::ContainsUnresolvedType(TreePattern &TP) const {
1797 for (const TreePatternNode &Child : children())
1803 bool TreePatternNode::hasProperTypeByHwMode() const {
1813 bool TreePatternNode::hasPossibleType() const {
1823 bool TreePatternNode::setDefaultMode(unsigned Mode) {
1891 // TreePatternNode implementation
1966 void TreePatternNode::print(raw_ostream &OS) const {
1981 for (const TreePatternNode &Child : children()) {
2003 void TreePatternNode::dump() const { print(errs()); }
2012 bool TreePatternNode::isIsomorphicTo(const TreePatternNode &N,
2049 TreePatternNodePtr TreePatternNode::clone() const {
2052 New = makeIntrusiveRefCnt<TreePatternNode>(getLeafValue(), getNumTypes());
2056 for (const TreePatternNode &Child : children())
2058 New = makeIntrusiveRefCnt<TreePatternNode>(
2071 void TreePatternNode::RemoveAllTypes() {
2076 for (TreePatternNode &Child : children())
2082 void TreePatternNode::SubstituteFormalArguments(
2088 TreePatternNode &Child = getChild(i);
2113 void TreePatternNode::InlinePatternFragments(
2161 TreePatternNodePtr R = makeIntrusiveRefCnt<TreePatternNode>(
2373 TreePatternNode::getIntrinsicInfo(const CodeGenDAGPatterns &CDP) const {
2386 TreePatternNode::getComplexPatternInfo(const CodeGenDAGPatterns &CGP) const {
2401 unsigned TreePatternNode::getNumMIResults(const CodeGenDAGPatterns &CGP) const {
2421 bool TreePatternNode::NodeHasProperty(SDNP Property,
2446 bool TreePatternNode::TreeHasProperty(SDNP Property,
2450 for (const TreePatternNode &Child : children())
2458 bool TreePatternNode::isCommutativeIntrinsic(
2465 static bool isOperandClass(const TreePatternNode &N, StringRef Class) {
2491 bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) {
2582 for (TreePatternNode &Child : children())
2643 TreePatternNode &SubIdxChild = getChild(I + 1);
2688 TreePatternNode *Child = &getChild(ChildNo++);
2733 for (TreePatternNode &Child : children())
2757 for (TreePatternNode &Child : children())
2778 static bool OnlyOnRHSOfCommutative(const TreePatternNode &N) {
2793 bool TreePatternNode::canPatternMatch(std::string &Reason,
2798 for (const TreePatternNode &Child : children())
2872 void TreePattern::ComputeNamedNodes(TreePatternNode &N) {
2876 for (TreePatternNode &Child : N.children())
2889 // TreePatternNode of its own. For example:
2899 TreePatternNodePtr Res = makeIntrusiveRefCnt<TreePatternNode>(DI, 1);
2914 TreePatternNodePtr Res = makeIntrusiveRefCnt<TreePatternNode>(TheInit, 1);
2925 return makeIntrusiveRefCnt<TreePatternNode>(TheInit, 1);
3051 Children.insert(Children.begin(), makeIntrusiveRefCnt<TreePatternNode>(
3075 TreePatternNodePtr Result = makeIntrusiveRefCnt<TreePatternNode>(
3134 const StringMap<SmallVector<TreePatternNode *, 1>> *InNamedTypes) {
3148 SmallVectorImpl<TreePatternNode *> &Nodes = Entry.second;
3160 const SmallVectorImpl<TreePatternNode *> &InNodes = InIter->second;
3163 for (TreePatternNode *Node : Nodes) {
3187 TreePatternNode *N1 = Nodes[i], *N2 = Nodes[i + 1];
3489 /// FindPatternInputsAndOutputs - Scan the specified TreePatternNode (which is
3600 const TreePatternNode &N = Pat.getSrcPattern();
3607 bool IsNodeBitcast(const TreePatternNode &N) const {
3626 void AnalyzeNode(const TreePatternNode &N) {
3645 for (const TreePatternNode &Child : N.children())
3774 static void getInstructionsInTree(TreePatternNode &Tree,
3780 for (TreePatternNode &Child : Tree.children())
3949 OpNode = makeIntrusiveRefCnt<TreePatternNode>(Xform, std::move(Children),
3960 TreePatternNodePtr ResultPattern = makeIntrusiveRefCnt<TreePatternNode>(
4045 typedef std::pair<TreePatternNode *, unsigned> NameRecord;
4047 static void FindNames(TreePatternNode &P,
4061 for (TreePatternNode &Child : P.children())
4241 static bool ForceArbitraryInstResultType(TreePatternNode &N, TreePattern &TP) {
4246 for (TreePatternNode &Child : N.children())
4274 return makeIntrusiveRefCnt<TreePatternNode>(Xform, std::move(Children),
4424 static void collectModes(std::set<unsigned> &Modes, const TreePatternNode &N) {
4429 for (const TreePatternNode &Child : N.children())
4456 const TreePatternNode *SrcP = nullptr, *DstP = nullptr;
4510 static void FindDepVarsOf(TreePatternNode &N, DepVarMap &DepMap) {
4515 for (TreePatternNode &Child : N.children())
4521 static void FindDepVars(TreePatternNode &N, MultipleUseVarSet &DepVars) {
4575 TreePatternNodePtr R = makeIntrusiveRefCnt<TreePatternNode>(
4740 TreePatternNode &Child = N->getChild(i);