[PATCH] D44919: [LoopUnroll][NFC] Remove redundant canPeel check

Ikhlas Ajbar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 2 05:02:24 PDT 2018


iajbar added a comment.

Maybe it passes for you because my patch was reverted. When I compile opt with your patch and my patch, I see the error
https://reviews.llvm.org/D44919
https://reviews.llvm.org/D44880

Could you please try with both patches

opt -march=hexagon -O3 -S < test.ll

opt: /w/src/llvm.org/lib/Transforms/Utils/LoopUnrollPeel.cpp:482: bool llvm::peelLoop(llvm::Loop *, unsigned int, llvm::LoopInfo *, llvm::ScalarEvolution *, llvm::DominatorTree *, llvm::AssumptionCache *, bool): Assertion `canPeel(L) && "Attempt to peel a loop which is not peelable?"' failed.
#0 0x0000000001ed3814 PrintStackTraceSignalHandler(void*) (/w/bld/org/bin/opt+0x1ed3814)
#1 0x0000000001ed3a96 SignalHandler(int) (/w/bld/org/bin/opt+0x1ed3a96)
#2 0x00007f373ace8330 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x10330)
#3 0x00007f3739bdbc37 gsignal /build/eglibc-ripdx6/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0
#4 0x00007f3739bdf028 abort /build/eglibc-ripdx6/eglibc-2.19/stdlib/abort.c:91:0
#5 0x00007f3739bd4bf6 __assert_fail_base /build/eglibc-ripdx6/eglibc-2.19/assert/assert.c:92:0
#6 0x00007f3739bd4ca2 (/lib/x86_64-linux-gnu/libc.so.6+0x2fca2)
#7 0x0000000001f50cec llvm::peelLoop(llvm::Loop*, unsigned int, llvm::LoopInfo*, llvm::ScalarEvolution*, llvm::DominatorTree*, llvm::AssumptionCache*, bool) (/w/bld/org/bin/opt+0x1f50cec)
#8 0x0000000001f45d2e llvm::UnrollLoop(llvm::Loop*, unsigned int, unsigned int, bool, bool, bool, bool, bool, unsigned int, unsigned int, bool, llvm::LoopInfo*, llvm::ScalarEvolution*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::OptimizationRemarkEmitter*, bool) (/w/bld/org/bin/opt+0x1f45d2e)
#9 0x0000000001d4779d tryToUnrollLoop(llvm::Loop*, llvm::DominatorTree&, llvm::LoopInfo*, llvm::ScalarEvolution&, llvm::TargetTransformInfo const&, llvm::AssumptionCache&, llvm::OptimizationRemarkEmitter&, bool, int, llvm::Optional<unsigned int>, llvm::Optional<unsigned int>, llvm::Optional<bool>, llvm::Optional<bool>, llvm::Optional<bool>, llvm::Optional<bool>) (/w/bld/org/bin/opt+0x1d4779d)
#10 0x0000000001d48cc3 (anonymous namespace)::LoopUnroll::runOnLoop(llvm::Loop*, llvm::LPPassManager&) (/w/bld/org/bin/opt+0x1d48cc3)
#11 0x00000000014126dc llvm::LPPassManager::runOnFunction(llvm::Function&) (/w/bld/org/bin/opt+0x14126dc)
#12 0x00000000019723af llvm::FPPassManager::runOnFunction(llvm::Function&) (/w/bld/org/bin/opt+0x19723af)
#13 0x000000000136f5ea (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) (/w/bld/org/bin/opt+0x136f5ea)
#14 0x0000000001972bb2 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/w/bld/org/bin/opt+0x1972bb2)
#15 0x000000000077d18a main (/w/bld/org/bin/opt+0x77d18a)
#16 0x00007f3739bc6f45 __libc_start_main /build/eglibc-ripdx6/eglibc-2.19/csu/libc-start.c:321:0
#17 0x0000000000769b6f _start (/w/bld/org/bin/opt+0x769b6f)
Stack dump:
0.      Program arguments: /w/bld/org/bin/opt -march=hexagon -O3 -S

1. Running pass 'CallGraph Pass Manager' on module '<stdin>'.
2. Running pass 'Loop Pass Manager' on function '@f2'
3. Running pass 'Unroll loops' on basic block '%b2'

Aborted (core dumped)

Thank you.


Repository:
  rL LLVM

https://reviews.llvm.org/D44919





More information about the llvm-commits mailing list