summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2017-10-15 14:43:39 +0000
committerSanjay Patel <spatel@rotateright.com>2017-10-15 14:43:39 +0000
commit30f30d37fb15fc59ffe71e8d7a24457ff6e2a184 (patch)
treeb8ce2f9869825cc7bb405362bc584ea61707aa0d /llvm/lib/Transforms/Utils/SimplifyCFG.cpp
parent615eb47035ab980dff74bc5a93fb534f3b8af6b9 (diff)
downloadbcm5719-llvm-30f30d37fb15fc59ffe71e8d7a24457ff6e2a184.tar.gz
bcm5719-llvm-30f30d37fb15fc59ffe71e8d7a24457ff6e2a184.zip
[SimplifyCFG] use range-for-loops, tidy; NFCI
There seems to be something missing here as shown in PR34471: https://bugs.llvm.org/show_bug.cgi?id=34471 llvm-svn: 315855
Diffstat (limited to 'llvm/lib/Transforms/Utils/SimplifyCFG.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/SimplifyCFG.cpp30
1 files changed, 10 insertions, 20 deletions
diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
index 09c9611a538..63bf68e4cee 100644
--- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
@@ -4446,38 +4446,28 @@ static PHINode *FindPHIForConditionForwarding(ConstantInt *CaseValue,
/// Try to forward the condition of a switch instruction to a phi node
/// dominated by the switch, if that would mean that some of the destination
-/// blocks of the switch can be folded away.
-/// Returns true if a change is made.
+/// blocks of the switch can be folded away. Return true if a change is made.
static bool ForwardSwitchConditionToPHI(SwitchInst *SI) {
typedef DenseMap<PHINode *, SmallVector<int, 4>> ForwardingNodesMap;
ForwardingNodesMap ForwardingNodes;
- for (auto Case : SI->cases()) {
+ for (auto &Case : SI->cases()) {
ConstantInt *CaseValue = Case.getCaseValue();
BasicBlock *CaseDest = Case.getCaseSuccessor();
-
- int PhiIndex;
- PHINode *PHI =
- FindPHIForConditionForwarding(CaseValue, CaseDest, &PhiIndex);
- if (!PHI)
- continue;
-
- ForwardingNodes[PHI].push_back(PhiIndex);
+ int PhiIdx;
+ if (auto *Phi = FindPHIForConditionForwarding(CaseValue, CaseDest, &PhiIdx))
+ ForwardingNodes[Phi].push_back(PhiIdx);
}
bool Changed = false;
-
- for (ForwardingNodesMap::iterator I = ForwardingNodes.begin(),
- E = ForwardingNodes.end();
- I != E; ++I) {
- PHINode *Phi = I->first;
- SmallVectorImpl<int> &Indexes = I->second;
-
+ for (auto &ForwardingNode : ForwardingNodes) {
+ PHINode *Phi = ForwardingNode.first;
+ SmallVectorImpl<int> &Indexes = ForwardingNode.second;
if (Indexes.size() < 2)
continue;
- for (size_t I = 0, E = Indexes.size(); I != E; ++I)
- Phi->setIncomingValue(Indexes[I], SI->getCondition());
+ for (int Index : Indexes)
+ Phi->setIncomingValue(Index, SI->getCondition());
Changed = true;
}
OpenPOWER on IntegriCloud