summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2017-08-20 14:34:44 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2017-08-20 14:34:44 +0000
commit2e5be849cc73cab1ea05a054fd79454eced2f7eb (patch)
tree5b2e5ef228d4fa6ad5f11a2661844d79ed8ab407 /llvm/lib/Transforms/Utils
parent9a5a278f783b708b9bdf3d8b8fbcecf7433ec8bf (diff)
downloadbcm5719-llvm-2e5be849cc73cab1ea05a054fd79454eced2f7eb.tar.gz
bcm5719-llvm-2e5be849cc73cab1ea05a054fd79454eced2f7eb.zip
[Mem2Reg] Modernize code a bit.
No functionality change intended. llvm-svn: 311290
Diffstat (limited to 'llvm/lib/Transforms/Utils')
-rw-r--r--llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp34
1 files changed, 11 insertions, 23 deletions
diff --git a/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp b/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
index cdba982e664..1a3ab3b89af 100644
--- a/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
+++ b/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
@@ -156,18 +156,11 @@ class RenamePassData {
public:
typedef std::vector<Value *> ValVector;
- RenamePassData() : BB(nullptr), Pred(nullptr), Values() {}
- RenamePassData(BasicBlock *B, BasicBlock *P, const ValVector &V)
- : BB(B), Pred(P), Values(V) {}
+ RenamePassData(BasicBlock *B, BasicBlock *P, ValVector V)
+ : BB(B), Pred(P), Values(std::move(V)) {}
BasicBlock *BB;
BasicBlock *Pred;
ValVector Values;
-
- void swap(RenamePassData &RHS) {
- std::swap(BB, RHS.BB);
- std::swap(Pred, RHS.Pred);
- Values.swap(RHS.Values);
- }
};
/// \brief This assigns and keeps a per-bb relative ordering of load/store
@@ -629,8 +622,8 @@ void PromoteMem2Reg::run() {
});
unsigned CurrentVersion = 0;
- for (unsigned i = 0, e = PHIBlocks.size(); i != e; ++i)
- QueuePhiNode(PHIBlocks[i], AllocaNum, CurrentVersion);
+ for (BasicBlock *BB : PHIBlocks)
+ QueuePhiNode(BB, AllocaNum, CurrentVersion);
}
if (Allocas.empty())
@@ -652,8 +645,7 @@ void PromoteMem2Reg::run() {
std::vector<RenamePassData> RenamePassWorkList;
RenamePassWorkList.emplace_back(&F.front(), nullptr, std::move(Values));
do {
- RenamePassData RPD;
- RPD.swap(RenamePassWorkList.back());
+ RenamePassData RPD = std::move(RenamePassWorkList.back());
RenamePassWorkList.pop_back();
// RenamePass may add new worklist entries.
RenamePass(RPD.BB, RPD.Pred, RPD.Values, RenamePassWorkList);
@@ -663,9 +655,7 @@ void PromoteMem2Reg::run() {
Visited.clear();
// Remove the allocas themselves from the function.
- for (unsigned i = 0, e = Allocas.size(); i != e; ++i) {
- Instruction *A = Allocas[i];
-
+ for (Instruction *A : Allocas) {
// If there are any uses of the alloca instructions left, they must be in
// unreachable basic blocks that were not processed by walking the dominator
// tree. Just delete the users now.
@@ -675,8 +665,8 @@ void PromoteMem2Reg::run() {
}
// Remove alloca's dbg.declare instrinsics from the function.
- for (unsigned i = 0, e = AllocaDbgDeclares.size(); i != e; ++i)
- if (DbgDeclareInst *DDI = AllocaDbgDeclares[i])
+ for (DbgDeclareInst *DDI : AllocaDbgDeclares)
+ if (DDI)
DDI->eraseFromParent();
// Loop over all of the PHI nodes and see if there are any that we can get
@@ -762,8 +752,8 @@ void PromoteMem2Reg::run() {
while ((SomePHI = dyn_cast<PHINode>(BBI++)) &&
SomePHI->getNumIncomingValues() == NumBadPreds) {
Value *UndefVal = UndefValue::get(SomePHI->getType());
- for (unsigned pred = 0, e = Preds.size(); pred != e; ++pred)
- SomePHI->addIncoming(UndefVal, Preds[pred]);
+ for (BasicBlock *Pred : Preds)
+ SomePHI->addIncoming(UndefVal, Pred);
}
}
@@ -834,9 +824,7 @@ void PromoteMem2Reg::ComputeLiveInBlocks(
// Since the value is live into BB, it is either defined in a predecessor or
// live into it to. Add the preds to the worklist unless they are a
// defining block.
- for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI) {
- BasicBlock *P = *PI;
-
+ for (BasicBlock *P : predecessors(BB)) {
// The value is not live into a predecessor if it defines the value.
if (DefBlocks.count(P))
continue;
OpenPOWER on IntegriCloud