[llvm-bugs] [Bug 27035] New: [polly] Assert in lib/Analysis/ScopInfo.cpp:3952 caused by trunk at 261866

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Mar 22 14:46:23 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=27035

            Bug ID: 27035
           Summary: [polly] Assert in lib/Analysis/ScopInfo.cpp:3952
                    caused by trunk at 261866
           Product: Polly
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Optimizer
          Assignee: polly-dev at googlegroups.com
          Reporter: lawrence at codeaurora.org
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 16073
  --> https://llvm.org/bugs/attachment.cgi?id=16073&action=edit
reduced testcase

The trackback:
 AAA PollyUseRuntimeAliasChecks=1opt:
/prj/llvm-arm/home/lawrence/llvmtrunk_latest/src/llvm/tools/polly/lib/Analysis/ScopInfo.cpp:3952:
bool polly::ScopInfo::buildAccessMemIntrinsic(polly::MemAccInst, llvm::Loop *,
llvm::Region *, const ScopDetection::BoxedLoopsSetTy *, const
InvariantLoadsSetTy &): Assertion `DestPtrSCEV' failed.
#0 0x00000000010b83c8 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/bin/opt+0x10b83c8)
#1 0x00000000010b68d6 llvm::sys::RunSignalHandlers()
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/bin/opt+0x10b68d6)
#2 0x00000000010b8be9 SignalHandler(int)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/bin/opt+0x10b8be9)
#3 0x00007f3ca7536cb0 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0xfcb0)
#4 0x00007f3ca68780d5 gsignal
/build/eglibc-rrybNj/eglibc-2.15/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:64:0
#5 0x00007f3ca687b83b abort
/build/eglibc-rrybNj/eglibc-2.15/stdlib/abort.c:93:0
#6 0x00007f3ca6870d9e __assert_fail_base
/build/eglibc-rrybNj/eglibc-2.15/assert/assert.c:55:0
#7 0x00007f3ca6870e42 (/lib/x86_64-linux-gnu/libc.so.6+0x2ee42)
#8 0x00007f3ca640127c
polly::ScopInfo::buildAccessMemIntrinsic(polly::MemAccInst, llvm::Loop*,
llvm::Region*, llvm::SetVector<llvm::Loop const*, std::__1::vector<llvm::Loop
const*, std::__1::allocator<llvm::Loop const*> >, llvm::DenseSet<llvm::Loop
const*, llvm::DenseMapInfo<llvm::Loop const*> > > const*,
llvm::SetVector<llvm::AssertingVH<llvm::LoadInst>,
std::__1::vector<llvm::AssertingVH<llvm::LoadInst>,
std::__1::allocator<llvm::AssertingVH<llvm::LoadInst> > >,
llvm::DenseSet<llvm::AssertingVH<llvm::LoadInst>,
llvm::DenseMapInfo<llvm::AssertingVH<llvm::LoadInst> > > > const&)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/lib/LLVMPolly.so+0x7c27c)
#9 0x00007f3ca6401e83 polly::ScopInfo::buildMemoryAccess(polly::MemAccInst,
llvm::Loop*, llvm::Region*, llvm::SetVector<llvm::Loop const*,
std::__1::vector<llvm::Loop const*, std::__1::allocator<llvm::Loop const*> >,
llvm::DenseSet<llvm::Loop const*, llvm::DenseMapInfo<llvm::Loop const*> > >
const*, llvm::SetVector<llvm::AssertingVH<llvm::LoadInst>,
std::__1::vector<llvm::AssertingVH<llvm::LoadInst>,
std::__1::allocator<llvm::AssertingVH<llvm::LoadInst> > >,
llvm::DenseSet<llvm::AssertingVH<llvm::LoadInst>,
llvm::DenseMapInfo<llvm::AssertingVH<llvm::LoadInst> > > > const&,
std::__1::map<llvm::Instruction const*, polly::MemAcc,
std::__1::less<llvm::Instruction const*>,
std::__1::allocator<std::__1::pair<llvm::Instruction const* const,
polly::MemAcc> > > const&)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/lib/LLVMPolly.so+0x7ce83)
#10 0x00007f3ca640270d polly::ScopInfo::buildAccessFunctions(llvm::Region&,
llvm::BasicBlock&, std::__1::map<llvm::Instruction const*, polly::MemAcc,
std::__1::less<llvm::Instruction const*>,
std::__1::allocator<std::__1::pair<llvm::Instruction const* const,
polly::MemAcc> > > const&, llvm::Region*, bool)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/lib/LLVMPolly.so+0x7d70d)
#11 0x00007f3ca640224a polly::ScopInfo::buildAccessFunctions(llvm::Region&,
llvm::Region&, std::__1::map<llvm::Instruction const*, polly::MemAcc,
std::__1::less<llvm::Instruction const*>,
std::__1::allocator<std::__1::pair<llvm::Instruction const* const,
polly::MemAcc> > > const&)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/lib/LLVMPolly.so+0x7d24a)
#12 0x00007f3ca64034dc polly::ScopInfo::buildScop(llvm::Region&,
llvm::AssumptionCache&)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/lib/LLVMPolly.so+0x7e4dc)
#13 0x00007f3ca6403e17 polly::ScopInfo::runOnRegion(llvm::Region*,
llvm::RGPassManager&)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/lib/LLVMPolly.so+0x7ee17)
#14 0x000000000094d0b9 llvm::RGPassManager::runOnFunction(llvm::Function&)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/bin/opt+0x94d0b9)
#15 0x0000000000ce5b9d llvm::FPPassManager::runOnFunction(llvm::Function&)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/bin/opt+0xce5b9d)
#16 0x0000000000ce5deb llvm::FPPassManager::runOnModule(llvm::Module&)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/bin/opt+0xce5deb)
#17 0x0000000000ce6392 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/bin/opt+0xce6392)
#18 0x00000000005b2b7b main
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/bin/opt+0x5b2b7b)
#19 0x00007f3ca686376d __libc_start_main
/build/eglibc-rrybNj/eglibc-2.15/csu/libc-start.c:258:0
#20 0x00000000005a337d _start
(/prj/llvm-arm/home/lawrence/llvmtrunk_latest/build_release/llvm/bin/opt+0x5a337d)


Command to reproduce:
bin/opt -load your_LLVMPolly.so -polly-process-unprofitable -polly-scops
-debug-only=polly-scops -polly-detect-track-failures=false -S
bugpoint-reduced-simplified.ll

This is caused by following patch:
commit c674474a8e1dcafc63f860722328234c29eaeb06
Author: Johannes Doerfert <doerfert at cs.uni-saarland.de>
Date:   Thu Feb 25 14:08:48 2016 +0000

    Support calls with known ModRef function behaviour

      Check the ModRefBehaviour of functions in order to decide whether or
      not a call instruction might be acceptable.

    Differential Revision: http://reviews.llvm.org/D5227


    git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@261866
91177308-0d34-0410-b5e6-96231b3b80d8


Today's latest trunk still have the same issue.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160322/a05107aa/attachment.html>


More information about the llvm-bugs mailing list