[PATCH] D17442: [LPM] Remove the last worrisome split in the primary loop pass pipeline, allowing LICM and friends to always run over the outer loop after unrolling has a chance to remove the inner loop.

Haicheng Wu via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 19 21:01:18 PST 2016


haicheng added a comment.

> 2. Assertion failed: (InnerAST && "Where is my AST?"), function collectAliasInfoFromSubLoops, file /Users/buildslave/devel/llvm.git/lib/Transforms/Scalar/LICM.cpp, line 1048.

I ran into this issue before. Once LICM is done processing the inner loop, it assumes no other pass can modify it before LICM starts processing the outer loop.  This assumption is true when LICM is the only one in the loop pipe.  However, changing the loop pass manager can break the assumption.

Before this patch, I have a work-around fix in http://reviews.llvm.org/D17370 which uses the original loop pass manager.  It is supposed to work with this patch at the cost of longer compilation time.


http://reviews.llvm.org/D17442





More information about the llvm-commits mailing list