summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/MemorySSA.cpp
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2016-02-07 01:52:15 +0000
committerDaniel Berlin <dberlin@dberlin.org>2016-02-07 01:52:15 +0000
commit7898ca658eadb85e5aa1bb15c11703caed53dcf0 (patch)
tree12e8038509d4d51c56e0efcf2d5874890c4ec555 /llvm/lib/Transforms/Utils/MemorySSA.cpp
parent1b2e4ffa581decb6c3f06781c629343e718c3d59 (diff)
downloadbcm5719-llvm-7898ca658eadb85e5aa1bb15c11703caed53dcf0.tar.gz
bcm5719-llvm-7898ca658eadb85e5aa1bb15c11703caed53dcf0.zip
Only insert into definingblocks once per block
llvm-svn: 260013
Diffstat (limited to 'llvm/lib/Transforms/Utils/MemorySSA.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/MemorySSA.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Utils/MemorySSA.cpp b/llvm/lib/Transforms/Utils/MemorySSA.cpp
index 382a18b025a..81c8737645b 100644
--- a/llvm/lib/Transforms/Utils/MemorySSA.cpp
+++ b/llvm/lib/Transforms/Utils/MemorySSA.cpp
@@ -253,17 +253,20 @@ MemorySSAWalker *MemorySSA::buildMemorySSA(AliasAnalysis *AA,
// Go through each block, figure out where defs occur, and chain together all
// the accesses.
for (BasicBlock &B : F) {
+ bool InsertIntoDef = false;
AccessListType *Accesses = nullptr;
for (Instruction &I : B) {
MemoryAccess *MA = createNewAccess(&I, true);
if (!MA)
continue;
if (isa<MemoryDef>(MA))
- DefiningBlocks.insert(&B);
+ InsertIntoDef = true;
if (!Accesses)
Accesses = getOrCreateAccessList(&B);
Accesses->push_back(MA);
}
+ if (InsertIntoDef)
+ DefiningBlocks.insert(&B);
}
// Determine where our MemoryPhi's should go
OpenPOWER on IntegriCloud