[llvm] r295566 - [MemorySSA] NFC small fixes
Piotr Padlewski via llvm-commits
llvm-commits at lists.llvm.org
Sat Feb 18 12:34:36 PST 2017
Author: prazek
Date: Sat Feb 18 14:34:36 2017
New Revision: 295566
URL: http://llvm.org/viewvc/llvm-project?rev=295566&view=rev
Log:
[MemorySSA] NFC small fixes
Summary:
2 small fixes extracted from
https://reviews.llvm.org/D29064
Reviewers: kuhar, davide, dberlin, george.burgess.iv
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D30109
Modified:
llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp
Modified: llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp?rev=295566&r1=295565&r2=295566&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp Sat Feb 18 14:34:36 2017
@@ -1322,7 +1322,10 @@ void MemorySSA::OptimizeUses::optimizeUs
// Pop everything that doesn't dominate the current block off the stack,
// increment the PopEpoch to account for this.
- while (!VersionStack.empty()) {
+ while (true) {
+ assert(
+ !VersionStack.empty() &&
+ "Version stack should have liveOnEntry sentinel dominating everything");
BasicBlock *BackBlock = VersionStack.back()->getBlock();
if (DT->dominates(BackBlock, BB))
break;
@@ -1330,6 +1333,7 @@ void MemorySSA::OptimizeUses::optimizeUs
VersionStack.pop_back();
++PopEpoch;
}
+
for (MemoryAccess &MA : *Accesses) {
auto *MU = dyn_cast<MemoryUse>(&MA);
if (!MU) {
@@ -1450,20 +1454,13 @@ void MemorySSA::OptimizeUses::optimizeUs
/// Optimize uses to point to their actual clobbering definitions.
void MemorySSA::OptimizeUses::optimizeUses() {
-
- // We perform a non-recursive top-down dominator tree walk
- struct StackInfo {
- const DomTreeNode *Node;
- DomTreeNode::const_iterator Iter;
- };
-
SmallVector<MemoryAccess *, 16> VersionStack;
- SmallVector<StackInfo, 16> DomTreeWorklist;
DenseMap<MemoryLocOrCall, MemlocStackInfo> LocStackInfo;
VersionStack.push_back(MSSA->getLiveOnEntryDef());
unsigned long StackEpoch = 1;
unsigned long PopEpoch = 1;
+ // We perform a non-recursive top-down dominator tree walk.
for (const auto *DomNode : depth_first(DT->getRootNode()))
optimizeUsesInBlock(DomNode->getBlock(), StackEpoch, PopEpoch, VersionStack,
LocStackInfo);
More information about the llvm-commits
mailing list