diff options
author | Alina Sbirlea <asbirlea@google.com> | 2018-06-20 21:06:13 +0000 |
---|---|---|
committer | Alina Sbirlea <asbirlea@google.com> | 2018-06-20 21:06:13 +0000 |
commit | 201d02c75c8ad92a295309833569bf49f4cf8511 (patch) | |
tree | 7c9de0f4f504fb560cad14c56baf4c1d0eefcf4b /llvm/lib/Analysis | |
parent | c2696d577b25fdb9cf5ca791527d038f97fa92ab (diff) | |
download | bcm5719-llvm-201d02c75c8ad92a295309833569bf49f4cf8511.tar.gz bcm5719-llvm-201d02c75c8ad92a295309833569bf49f4cf8511.zip |
[MemorySSA] Verify Phi incoming blocks are block predecessors.
Summary: Make the MemorySSA verify also check that all Phi incoming blocks are block predecessors.
Reviewers: george.burgess.iv
Subscribers: sanjoy, jlebar, Prazek, llvm-commits
Differential Revision: https://reviews.llvm.org/D48333
llvm-svn: 335174
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r-- | llvm/lib/Analysis/MemorySSA.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/MemorySSA.cpp b/llvm/lib/Analysis/MemorySSA.cpp index dda42274fdc..1a0103dd363 100644 --- a/llvm/lib/Analysis/MemorySSA.cpp +++ b/llvm/lib/Analysis/MemorySSA.cpp @@ -1746,8 +1746,12 @@ void MemorySSA::verifyDefUses(Function &F) const { assert(Phi->getNumOperands() == static_cast<unsigned>(std::distance( pred_begin(&B), pred_end(&B))) && "Incomplete MemoryPhi Node"); - for (unsigned I = 0, E = Phi->getNumIncomingValues(); I != E; ++I) + for (unsigned I = 0, E = Phi->getNumIncomingValues(); I != E; ++I) { verifyUseInDefs(Phi->getIncomingValue(I), Phi); + assert(find(predecessors(&B), Phi->getIncomingBlock(I)) != + pred_end(&B) && + "Incoming phi block not a block predecessor"); + } } for (Instruction &I : B) { |