mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Convert a bunch of loops to foreach. NFC.
This uses the new SDNode::op_values() iterator range committed in r240805. llvm-svn: 240822
This commit is contained in:
parent
634851fffb
commit
9a73f7ed21
@ -187,8 +187,7 @@ bool ISD::isBuildVectorOfConstantSDNodes(const SDNode *N) {
|
||||
if (N->getOpcode() != ISD::BUILD_VECTOR)
|
||||
return false;
|
||||
|
||||
for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) {
|
||||
SDValue Op = N->getOperand(i);
|
||||
for (const SDValue &Op : N->op_values()) {
|
||||
if (Op.getOpcode() == ISD::UNDEF)
|
||||
continue;
|
||||
if (!isa<ConstantSDNode>(Op))
|
||||
@ -203,8 +202,7 @@ bool ISD::isBuildVectorOfConstantFPSDNodes(const SDNode *N) {
|
||||
if (N->getOpcode() != ISD::BUILD_VECTOR)
|
||||
return false;
|
||||
|
||||
for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) {
|
||||
SDValue Op = N->getOperand(i);
|
||||
for (const SDValue &Op : N->op_values()) {
|
||||
if (Op.getOpcode() == ISD::UNDEF)
|
||||
continue;
|
||||
if (!isa<ConstantFPSDNode>(Op))
|
||||
@ -244,8 +242,8 @@ bool ISD::allOperandsUndef(const SDNode *N) {
|
||||
if (N->getNumOperands() == 0)
|
||||
return false;
|
||||
|
||||
for (unsigned i = 0, e = N->getNumOperands(); i != e ; ++i)
|
||||
if (N->getOperand(i).getOpcode() != ISD::UNDEF)
|
||||
for (const SDValue &Op : N->op_values())
|
||||
if (Op.getOpcode() != ISD::UNDEF)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@ -6674,8 +6672,8 @@ bool SDNode::isOnlyUserOf(SDNode *N) const {
|
||||
/// isOperand - Return true if this node is an operand of N.
|
||||
///
|
||||
bool SDValue::isOperandOf(SDNode *N) const {
|
||||
for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i)
|
||||
if (*this == N->getOperand(i))
|
||||
for (const SDValue &Op : N->op_values())
|
||||
if (*this == Op)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
@ -6743,8 +6741,8 @@ SDNode::hasPredecessorHelper(const SDNode *N,
|
||||
// Haven't visited N yet. Continue the search.
|
||||
while (!Worklist.empty()) {
|
||||
const SDNode *M = Worklist.pop_back_val();
|
||||
for (unsigned i = 0, e = M->getNumOperands(); i != e; ++i) {
|
||||
SDNode *Op = M->getOperand(i).getNode();
|
||||
for (const SDValue &OpV : M->op_values()) {
|
||||
SDNode *Op = OpV.getNode();
|
||||
if (Visited.insert(Op).second)
|
||||
Worklist.push_back(Op);
|
||||
if (Op == N)
|
||||
@ -7093,8 +7091,8 @@ BuildVectorSDNode::getConstantFPSplatNode(BitVector *UndefElements) const {
|
||||
}
|
||||
|
||||
bool BuildVectorSDNode::isConstant() const {
|
||||
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
|
||||
unsigned Opc = getOperand(i).getOpcode();
|
||||
for (const SDValue &Op : op_values()) {
|
||||
unsigned Opc = Op.getOpcode();
|
||||
if (Opc != ISD::UNDEF && Opc != ISD::Constant && Opc != ISD::ConstantFP)
|
||||
return false;
|
||||
}
|
||||
@ -7135,8 +7133,8 @@ static void checkForCyclesHelper(const SDNode *N,
|
||||
abort();
|
||||
}
|
||||
|
||||
for(unsigned i = 0, e = N->getNumOperands(); i != e; ++i)
|
||||
checkForCyclesHelper(N->getOperand(i).getNode(), Visited, Checked, DAG);
|
||||
for (const SDValue &Op : N->op_values())
|
||||
checkForCyclesHelper(Op.getNode(), Visited, Checked, DAG);
|
||||
|
||||
Checked.insert(N);
|
||||
Visited.erase(N);
|
||||
|
@ -546,12 +546,12 @@ void SDNode::print_details(raw_ostream &OS, const SelectionDAG *G) const {
|
||||
}
|
||||
|
||||
static void DumpNodes(const SDNode *N, unsigned indent, const SelectionDAG *G) {
|
||||
for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i)
|
||||
if (N->getOperand(i).getNode()->hasOneUse())
|
||||
DumpNodes(N->getOperand(i).getNode(), indent+2, G);
|
||||
for (const SDValue &Op : N->op_values())
|
||||
if (Op.getNode()->hasOneUse())
|
||||
DumpNodes(Op.getNode(), indent+2, G);
|
||||
else
|
||||
dbgs() << "\n" << std::string(indent+2, ' ')
|
||||
<< (void*)N->getOperand(i).getNode() << ": <multiple use>";
|
||||
<< (void*)Op.getNode() << ": <multiple use>";
|
||||
|
||||
dbgs() << '\n';
|
||||
dbgs().indent(indent);
|
||||
@ -608,10 +608,8 @@ static void DumpNodesr(raw_ostream &OS, const SDNode *N, unsigned indent,
|
||||
OS << "\n";
|
||||
|
||||
// Dump children that have grandchildren on their own line(s).
|
||||
for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) {
|
||||
const SDNode *child = N->getOperand(i).getNode();
|
||||
DumpNodesr(OS, child, indent+2, G, once);
|
||||
}
|
||||
for (const SDValue &Op : N->op_values())
|
||||
DumpNodesr(OS, Op.getNode(), indent+2, G, once);
|
||||
}
|
||||
|
||||
void SDNode::dumpr() const {
|
||||
@ -637,12 +635,12 @@ static void printrWithDepthHelper(raw_ostream &OS, const SDNode *N,
|
||||
if (depth < 1)
|
||||
return;
|
||||
|
||||
for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) {
|
||||
for (const SDValue &Op : N->op_values()) {
|
||||
// Don't follow chain operands.
|
||||
if (N->getOperand(i).getValueType() == MVT::Other)
|
||||
if (Op.getValueType() == MVT::Other)
|
||||
continue;
|
||||
OS << '\n';
|
||||
printrWithDepthHelper(OS, N->getOperand(i).getNode(), G, depth-1, indent+2);
|
||||
printrWithDepthHelper(OS, Op.getNode(), G, depth-1, indent+2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -637,9 +637,9 @@ void SelectionDAGISel::ComputeLiveOutVRegInfo() {
|
||||
continue;
|
||||
|
||||
// Otherwise, add all chain operands to the worklist.
|
||||
for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i)
|
||||
if (N->getOperand(i).getValueType() == MVT::Other)
|
||||
Worklist.push_back(N->getOperand(i).getNode());
|
||||
for (const SDValue &Op : N->op_values())
|
||||
if (Op.getValueType() == MVT::Other)
|
||||
Worklist.push_back(Op.getNode());
|
||||
|
||||
// If this is a CopyToReg with a vreg dest, process it.
|
||||
if (N->getOpcode() != ISD::CopyToReg)
|
||||
@ -1814,12 +1814,12 @@ static bool findNonImmUse(SDNode *Use, SDNode* Def, SDNode *ImmedUse,
|
||||
if (!Visited.insert(Use).second)
|
||||
return false;
|
||||
|
||||
for (unsigned i = 0, e = Use->getNumOperands(); i != e; ++i) {
|
||||
for (const SDValue &Op : Use->op_values()) {
|
||||
// Ignore chain uses, they are validated by HandleMergeInputChains.
|
||||
if (Use->getOperand(i).getValueType() == MVT::Other && IgnoreChains)
|
||||
if (Op.getValueType() == MVT::Other && IgnoreChains)
|
||||
continue;
|
||||
|
||||
SDNode *N = Use->getOperand(i).getNode();
|
||||
SDNode *N = Op.getNode();
|
||||
if (N == Def) {
|
||||
if (Use == ImmedUse || Use == Root)
|
||||
continue; // We are not looking for immediate use.
|
||||
@ -2212,10 +2212,10 @@ HandleMergeInputChains(SmallVectorImpl<SDNode*> &ChainNodesMatched,
|
||||
|
||||
// If we have a token factor, we want to add all inputs of the token factor
|
||||
// that are not part of the pattern we're matching.
|
||||
for (unsigned op = 0, e = N->getNumOperands(); op != e; ++op) {
|
||||
for (const SDValue &Op : N->op_values()) {
|
||||
if (!std::count(ChainNodesMatched.begin(), ChainNodesMatched.end(),
|
||||
N->getOperand(op).getNode()))
|
||||
InputChains.push_back(N->getOperand(op));
|
||||
Op.getNode()))
|
||||
InputChains.push_back(Op);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user