[llvm-dev] PassManager assert: postdomtree usage in scalar-evolution

Christof Douma via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 12 09:29:22 PDT 2016

Hi Chandler.

I recently ran into problems with what looks like a bad interaction between the new pass manager and the legacy pass manager. I try to use PostDominatorTree analysis pass in scalar-evolution (as a transitive requirement) which makes the LegacyPassManager run into an assert:
opt: ../lib/IR/LegacyPassManager.cpp:520: void llvm::PMTopLevelManager::setLastUser(llvm::ArrayRef<llvm::Pass*>, llvm::Pass*): Assertion `AnalysisPass && "Expected analysis pass to exist."' failed.

To reproduce, use the attached patch on ScalarEvolution.cpp and run ./bin/opt  -loop-idiom -loop-unroll empty.ll --debug-pass=Arguments
Note: the patch is based on svn revision 281213.

Any idea how to get this working?


-------------- next part --------------
A non-text attachment was scrubbed...
Name: scev-PostDom-transitive.patch
Type: application/octet-stream
Size: 2272 bytes
Desc: scev-PostDom-transitive.patch
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160912/105c71ff/attachment.obj>

More information about the llvm-dev mailing list