diff options
author | Sergei Barannikov <barannikov88@gmail.com> | 2024-12-13 22:05:57 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-13 22:05:57 +0300 |
commit | d1f51c67fde6f77b78f78901fb78e3589430a299 (patch) | |
tree | 5432dac3e972d883e5f66819ef19b7109082beb7 /llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp | |
parent | 3b3394baec18d77e8d5b984882c82f7b3a59f981 (diff) | |
download | llvm-d1f51c67fde6f77b78f78901fb78e3589430a299.zip llvm-d1f51c67fde6f77b78f78901fb78e3589430a299.tar.gz llvm-d1f51c67fde6f77b78f78901fb78e3589430a299.tar.bz2 |
[TableGen] Add TreePatternNode::children and use it in for loops (NFC) (#119877)
Diffstat (limited to 'llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp')
-rw-r--r-- | llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp | 71 |
1 files changed, 35 insertions, 36 deletions
diff --git a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp index b6b669f..10f6590 100644 --- a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp +++ b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp @@ -1440,8 +1440,7 @@ static unsigned getPatternSize(const TreePatternNode &P, ++Size; // Count children in the count if they are also nodes. - for (unsigned i = 0, e = P.getNumChildren(); i != e; ++i) { - const TreePatternNode &Child = P.getChild(i); + for (const TreePatternNode &Child : P.children()) { if (!Child.isLeaf() && Child.getNumTypes()) { const TypeSetByHwMode &T0 = Child.getExtType(0); // At this point, all variable type sets should be simple, i.e. only @@ -1747,8 +1746,8 @@ bool TreePatternNode::ContainsUnresolvedType(TreePattern &TP) const { for (unsigned i = 0, e = Types.size(); i != e; ++i) if (!TP.getInfer().isConcrete(Types[i], true)) return true; - for (unsigned i = 0, e = getNumChildren(); i != e; ++i) - if (getChild(i).ContainsUnresolvedType(TP)) + for (const TreePatternNode &Child : children()) + if (Child.ContainsUnresolvedType(TP)) return true; return false; } @@ -1923,9 +1922,9 @@ void TreePatternNode::print(raw_ostream &OS) const { if (getNumChildren() != 0) { OS << " "; ListSeparator LS; - for (unsigned i = 0, e = getNumChildren(); i != e; ++i) { + for (const TreePatternNode &Child : children()) { OS << LS; - getChild(i).print(OS); + Child.print(OS); } } OS << ")"; @@ -1998,8 +1997,8 @@ TreePatternNodePtr TreePatternNode::clone() const { } else { std::vector<TreePatternNodePtr> CChildren; CChildren.reserve(Children.size()); - for (unsigned i = 0, e = getNumChildren(); i != e; ++i) - CChildren.push_back(getChild(i).clone()); + for (const TreePatternNode &Child : children()) + CChildren.push_back(Child.clone()); New = makeIntrusiveRefCnt<TreePatternNode>( getOperator(), std::move(CChildren), getNumTypes()); } @@ -2018,8 +2017,8 @@ void TreePatternNode::RemoveAllTypes() { std::fill(Types.begin(), Types.end(), TypeSetByHwMode()); if (isLeaf()) return; - for (unsigned i = 0, e = getNumChildren(); i != e; ++i) - getChild(i).RemoveAllTypes(); + for (TreePatternNode &Child : children()) + Child.RemoveAllTypes(); } /// SubstituteFormalArguments - Replace the formal arguments in this tree @@ -2392,8 +2391,8 @@ bool TreePatternNode::TreeHasProperty(SDNP Property, const CodeGenDAGPatterns &CGP) const { if (NodeHasProperty(Property, CGP)) return true; - for (unsigned i = 0, e = getNumChildren(); i != e; ++i) - if (getChild(i).TreeHasProperty(Property, CGP)) + for (const TreePatternNode &Child : children()) + if (Child.TreeHasProperty(Property, CGP)) return true; return false; } @@ -2528,8 +2527,8 @@ bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) { } bool MadeChange = false; - for (unsigned i = 0, e = getNumChildren(); i != e; ++i) - MadeChange |= getChild(i).ApplyTypeConstraints(TP, NotRegisters); + for (TreePatternNode &Child : children()) + MadeChange |= Child.ApplyTypeConstraints(TP, NotRegisters); MadeChange |= NI.ApplyTypeConstraints(*this, TP); return MadeChange; } @@ -2679,8 +2678,8 @@ bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) { return false; } - for (unsigned i = 0, e = getNumChildren(); i != e; ++i) - MadeChange |= getChild(i).ApplyTypeConstraints(TP, NotRegisters); + for (TreePatternNode &Child : children()) + MadeChange |= Child.ApplyTypeConstraints(TP, NotRegisters); return MadeChange; } @@ -2703,8 +2702,8 @@ bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) { MadeChange |= UpdateNodeType(0, VVT, TP); } - for (unsigned i = 0; i < getNumChildren(); ++i) - MadeChange |= getChild(i).ApplyTypeConstraints(TP, NotRegisters); + for (TreePatternNode &Child : children()) + MadeChange |= Child.ApplyTypeConstraints(TP, NotRegisters); return MadeChange; } @@ -2724,7 +2723,7 @@ bool TreePatternNode::ApplyTypeConstraints(TreePattern &TP, bool NotRegisters) { /// OnlyOnRHSOfCommutative - Return true if this value is only allowed on the /// RHS of a commutative operation, not the on LHS. -static bool OnlyOnRHSOfCommutative(TreePatternNode &N) { +static bool OnlyOnRHSOfCommutative(const TreePatternNode &N) { if (!N.isLeaf() && N.getOperator()->getName() == "imm") return true; if (N.isLeaf() && isa<IntInit>(N.getLeafValue())) @@ -2740,12 +2739,12 @@ static bool OnlyOnRHSOfCommutative(TreePatternNode &N) { /// that can never possibly work), and to prevent the pattern permuter from /// generating stuff that is useless. bool TreePatternNode::canPatternMatch(std::string &Reason, - const CodeGenDAGPatterns &CDP) { + const CodeGenDAGPatterns &CDP) const { if (isLeaf()) return true; - for (unsigned i = 0, e = getNumChildren(); i != e; ++i) - if (!getChild(i).canPatternMatch(Reason, CDP)) + for (const TreePatternNode &Child : children()) + if (!Child.canPatternMatch(Reason, CDP)) return false; // If this is an intrinsic, handle cases that would make it not match. For @@ -2822,8 +2821,8 @@ void TreePattern::ComputeNamedNodes(TreePatternNode &N) { if (!N.getName().empty()) NamedNodes[N.getName()].push_back(&N); - for (unsigned i = 0, e = N.getNumChildren(); i != e; ++i) - ComputeNamedNodes(N.getChild(i)); + for (TreePatternNode &Child : N.children()) + ComputeNamedNodes(Child); } TreePatternNodePtr TreePattern::ParseTreePattern(const Init *TheInit, @@ -3595,8 +3594,8 @@ public: } // Analyze children. - for (unsigned i = 0, e = N.getNumChildren(); i != e; ++i) - AnalyzeNode(N.getChild(i)); + for (const TreePatternNode &Child : N.children()) + AnalyzeNode(Child); // Notice properties of the node. if (N.NodeHasProperty(SDNPMayStore, CDP)) @@ -3730,8 +3729,8 @@ static void getInstructionsInTree(TreePatternNode &Tree, return; if (Tree.getOperator()->isSubClassOf("Instruction")) Instrs.push_back(Tree.getOperator()); - for (unsigned i = 0, e = Tree.getNumChildren(); i != e; ++i) - getInstructionsInTree(Tree.getChild(i), Instrs); + for (TreePatternNode &Child : Tree.children()) + getInstructionsInTree(Child, Instrs); } /// Check the class of a pattern leaf node against the instruction operand it @@ -4010,8 +4009,8 @@ static void FindNames(TreePatternNode &P, } if (!P.isLeaf()) { - for (unsigned i = 0, e = P.getNumChildren(); i != e; ++i) - FindNames(P.getChild(i), Names, PatternTop); + for (TreePatternNode &Child : P.children()) + FindNames(Child, Names, PatternTop); } } @@ -4195,8 +4194,8 @@ static bool ForceArbitraryInstResultType(TreePatternNode &N, TreePattern &TP) { return false; // Analyze children. - for (unsigned i = 0, e = N.getNumChildren(); i != e; ++i) - if (ForceArbitraryInstResultType(N.getChild(i), TP)) + for (TreePatternNode &Child : N.children()) + if (ForceArbitraryInstResultType(Child, TP)) return true; if (!N.getOperator()->isSubClassOf("Instruction")) @@ -4378,8 +4377,8 @@ static void collectModes(std::set<unsigned> &Modes, const TreePatternNode &N) { for (const auto &I : VTS) Modes.insert(I.first); - for (unsigned i = 0, e = N.getNumChildren(); i != e; ++i) - collectModes(Modes, N.getChild(i)); + for (const TreePatternNode &Child : N.children()) + collectModes(Modes, Child); } void CodeGenDAGPatterns::ExpandHwModeBasedTypes() { @@ -4464,8 +4463,8 @@ static void FindDepVarsOf(TreePatternNode &N, DepVarMap &DepMap) { if (N.hasName() && isa<DefInit>(N.getLeafValue())) DepMap[N.getName()]++; } else { - for (size_t i = 0, e = N.getNumChildren(); i != e; ++i) - FindDepVarsOf(N.getChild(i), DepMap); + for (TreePatternNode &Child : N.children()) + FindDepVarsOf(Child, DepMap); } } |