The current code is basically just emulating what the analysis manager does.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Hello,
I bisected a crash back to this commit:
opt -passes='function(loop-flatten,loop(loop-unroll-and-jam,loop-deletion))' bbi-73307.ll -o /dev/null
crashes with
opt: ../include/llvm/Analysis/LoopInfo.h:160: const std::vector<LoopT *> &llvm::LoopBase<llvm::BasicBlock, llvm::Loop>::getSubLoops() const [BlockT = llvm::BasicBlock, LoopT = llvm::Loop]: Assertion `!isInvalid() && "Loop not in a valid state!"' failed.
Comment Actions
reverted
I think the issue is that the loop nest analysis is a loop analysis. If we already have the loop nest analysis cached, if there's an inner loop that gets modified (deleted in this case), the loop nest analysis on the outer-most loop is not invalidated. Perhaps the loop nest shouldn't be a loop analysis.