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?
scev-PostDom-transitive.patch (2.22 KB)