[PATCH] D118808: Loop Strength Reduce - Optimize unused IVs to final values in the exit block with SCEV
Mikael Holmén via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue May 17 04:04:31 PDT 2022
uabelho added a comment.
Hi,
The following starts crashing with this patch:
llc -O1 -o /dev/null bbi-69670_x86.ll
I get:
llc: ../lib/Transforms/Utils/LoopUtils.cpp:1385: int llvm::rewriteLoopExitValues(llvm::Loop *, llvm::LoopInfo *, llvm::TargetLibraryInfo *, llvm::ScalarEvolution *, const llvm::TargetTransformInfo *, llvm::SCEVExpander &, llvm::DominatorTree *, llvm::ReplaceExitVal, SmallVector<llvm::WeakTrackingVH, 16> &): Assertion `EVL->contains(L) && "LCSSA breach detected!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: ../../main-github/llvm/build-all/bin/llc -O1 -o /dev/null bbi-69670_x86.ll
1. Running pass 'Function Pass Manager' on module 'bbi-69670_x86.ll'.
2. Running pass 'Loop Pass Manager' on function '@func_1'
3. Running pass 'Loop Strength Reduction' on basic block '%for.cond6418'
#0 0x0000000002abded3 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (../../main-github/llvm/build-all/bin/llc+0x2abded3)
#1 0x0000000002abbb4e llvm::sys::RunSignalHandlers() (../../main-github/llvm/build-all/bin/llc+0x2abbb4e)
#2 0x0000000002abe256 SignalHandler(int) Signals.cpp:0:0
#3 0x00007fcb1f00e630 __restore_rt sigaction.c:0:0
#4 0x00007fcb1c755387 raise (/lib64/libc.so.6+0x36387)
#5 0x00007fcb1c756a78 abort (/lib64/libc.so.6+0x37a78)
#6 0x00007fcb1c74e1a6 __assert_fail_base (/lib64/libc.so.6+0x2f1a6)
#7 0x00007fcb1c74e252 (/lib64/libc.so.6+0x2f252)
#8 0x0000000002b80be3 llvm::rewriteLoopExitValues(llvm::Loop*, llvm::LoopInfo*, llvm::TargetLibraryInfo*, llvm::ScalarEvolution*, llvm::TargetTransformInfo const*, llvm::SCEVExpander&, llvm::DominatorTree*, llvm::ReplaceExitVal, llvm::SmallVector<llvm::WeakTrackingVH, 16u>&) (../../main-github/llvm/build-all/bin/llc+0x2b80be3)
#9 0x00000000024c0a1e ReduceLoopStrength(llvm::Loop*, llvm::IVUsers&, llvm::ScalarEvolution&, llvm::DominatorTree&, llvm::LoopInfo&, llvm::TargetTransformInfo const&, llvm::AssumptionCache&, llvm::TargetLibraryInfo&, llvm::MemorySSA*) LoopStrengthReduce.cpp:0:0
#10 0x00000000024ec121 (anonymous namespace)::LoopStrengthReduce::runOnLoop(llvm::Loop*, llvm::LPPassManager&) LoopStrengthReduce.cpp:0:0
#11 0x0000000001b2d17b llvm::LPPassManager::runOnFunction(llvm::Function&) (../../main-github/llvm/build-all/bin/llc+0x1b2d17b)
#12 0x000000000230895f llvm::FPPassManager::runOnFunction(llvm::Function&) (../../main-github/llvm/build-all/bin/llc+0x230895f)
#13 0x000000000230f398 llvm::FPPassManager::runOnModule(llvm::Module&) (../../main-github/llvm/build-all/bin/llc+0x230f398)
#14 0x0000000002308f2d llvm::legacy::PassManagerImpl::run(llvm::Module&) (../../main-github/llvm/build-all/bin/llc+0x2308f2d)
#15 0x000000000074a073 main (../../main-github/llvm/build-all/bin/llc+0x74a073)
#16 0x00007fcb1c741555 __libc_start_main (/lib64/libc.so.6+0x22555)
#17 0x0000000000747670 _start (../../main-github/llvm/build-all/bin/llc+0x747670)
Abort
F23089069: bbi-69670_x86.ll <https://reviews.llvm.org/F23089069>
I wouldn't be surprised if it's the dead bb jumping to non-dead code that trips up something:
for.cond6403: ; preds = %dead, %cont5825
%1 = phi i32 [ %.lcssa221, %dead ], [ 0, %cont5825 ]
br label %for.cond6418
[...]
dead: ; No predecessors!
br label %for.cond6403
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D118808/new/
https://reviews.llvm.org/D118808
More information about the llvm-commits
mailing list