aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
diff options
context:
space:
mode:
authorSergei Barannikov <barannikov88@gmail.com>2024-12-13 22:05:57 +0300
committerGitHub <noreply@github.com>2024-12-13 22:05:57 +0300
commitd1f51c67fde6f77b78f78901fb78e3589430a299 (patch)
tree5432dac3e972d883e5f66819ef19b7109082beb7 /llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
parent3b3394baec18d77e8d5b984882c82f7b3a59f981 (diff)
downloadllvm-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.cpp71
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);
}
}