[llvm-bugs] [Bug 48059] New: polly crashes while running pass 'Polly - Create polyhedral description of Scops': Assertion `!ArrayAccess && "More then one array access for instruction"' failed

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Nov 3 04:39:31 PST 2020


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

            Bug ID: 48059
           Summary: polly crashes while running pass 'Polly - Create
                    polyhedral description of Scops': Assertion
                    `!ArrayAccess && "More then one array access for
                    instruction"' failed
           Product: Polly
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Optimizer
          Assignee: polly-dev at googlegroups.com
          Reporter: zhendong.su at inf.ethz.ch
                CC: llvm-bugs at lists.llvm.org

[536] % clangtk -v
clang version 12.0.0 (https://github.com/llvm/llvm-project.git
1667d23e585c13835c66b8d61c2d5ef93f196dd5)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/opfuzz/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
[537] % 
[537] % clangtk -Os -mllvm -polly -c small.c
[538] % clangtk -O2 -c small.c
[539] % 
[539] % clangtk -O2 -mllvm -polly -c small.c
clangtk:
/local/suz-local/software/clangbuild/llvm-project/polly/include/polly/ScopInfo.h:1427:
polly::MemoryAccess* polly::ScopStmt::getArrayAccessOrNULLFor(const
llvm::Instruction*) const: Assertion `!ArrayAccess && "More then one array
access for instruction"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash
backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: clangtk -O2 -mllvm -polly -c small.c 
1.      <eof> parser at end of file
2.      Per-module optimization passes
3.      Running pass 'Function Pass Manager' on module 'small.c'.
4.      Running pass 'Region Pass Manager' on function '@e'
5.      Running pass 'Polly - Create polyhedral description of Scops' on basic
block '%for.end12'
 #0 0x0000561356bf6a0c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x3238a0c)
 #1 0x0000561356bf46e4 llvm::sys::RunSignalHandlers()
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x32366e4)
 #2 0x0000561356bf4975 llvm::sys::CleanupOnSignal(unsigned long)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x3236975)
 #3 0x0000561356b5e2b8 CrashRecoverySignalHandler(int)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x31a02b8)
 #4 0x00007f1d5aa6d8a0 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x128a0)
 #5 0x00007f1d5971ef47 raise
/build/glibc-2ORdQG/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007f1d597208b1 abort /build/glibc-2ORdQG/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00007f1d5971042a __assert_fail_base
/build/glibc-2ORdQG/glibc-2.27/assert/assert.c:89:0
 #8 0x00007f1d597104a2 (/lib/x86_64-linux-gnu/libc.so.6+0x304a2)
 #9 0x0000561357b79f16 polly::Scop::lookupBasePtrAccess(polly::MemoryAccess*)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x41bbf16)
#10 0x0000561357b9dad0
polly::ScopBuilder::buildAliasGroup(llvm::SmallVector<polly::MemoryAccess*,
4u>&, llvm::DenseSet<polly::ScopArrayInfo const*,
llvm::DenseMapInfo<polly::ScopArrayInfo const*> >)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x41dfad0)
#11 0x0000561357b9e3c0 polly::ScopBuilder::buildAliasGroups()
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x41e03c0)
#12 0x0000561357b9e6a8 polly::ScopBuilder::buildAliasChecks()
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x41e06a8)
#13 0x0000561357ba5e20 polly::ScopBuilder::buildScop(llvm::Region&,
llvm::AssumptionCache&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x41e7e20)
#14 0x0000561357ba65c5 polly::ScopBuilder::ScopBuilder(llvm::Region*,
llvm::AssumptionCache&, llvm::AAResults&, llvm::DataLayout const&,
llvm::DominatorTree&, llvm::LoopInfo&, polly::ScopDetection&,
llvm::ScalarEvolution&, llvm::OptimizationRemarkEmitter&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x41e85c5)
#15 0x0000561357b7c1ac polly::ScopInfoRegionPass::runOnRegion(llvm::Region*,
llvm::RGPassManager&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x41be1ac)
#16 0x0000561355e37bb6 llvm::RGPassManager::runOnFunction(llvm::Function&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x2479bb6)
#17 0x00005613564bc7a8 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x2afe7a8)
#18 0x00005613564bd2a9 llvm::FPPassManager::runOnModule(llvm::Module&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x2aff2a9)
#19 0x00005613564bc026 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x2afe026)
#20 0x0000561356e98d1e clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout
const&, llvm::Module*, clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x34dad1e)
#21 0x0000561357a99fc6
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x40dbfc6)
#22 0x00005613589ac119 clang::ParseAST(clang::Sema&, bool, bool)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x4fee119)
#23 0x0000561357a98be0 clang::CodeGenAction::ExecuteAction()
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x40dabe0)
#24 0x000056135744ddc9 clang::FrontendAction::Execute()
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x3a8fdc9)
#25 0x00005613574079fa
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x3a499fa)
#26 0x0000561357517ea6
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x3b59ea6)
#27 0x0000561354aa9afc cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/local/suz-local/software/local/clang-trunk/bin/clang-12+0x10ebafc)
#28 0x0000561354aa5769 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x10e7769)
#29 0x00005613572d3065 void llvm::function_ref<void
()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, bool*) const::'lambda'()>(long)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x3915065)
#30 0x0000561356b5e393
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x31a0393)
#31 0x00005613572d3bdf
clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, bool*) const (.part.162)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x3915bdf)
#32 0x00005613572ade08
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&) const
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x38efe08)
#33 0x00005613572aea6f
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x38f0a6f)
#34 0x00005613572b72da
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x38f92da)
#35 0x00005613549d7fe0 main
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x1019fe0)
#36 0x00007f1d59701b97 __libc_start_main
/build/glibc-2ORdQG/glibc-2.27/csu/../csu/libc-start.c:344:0
#37 0x0000561354aa52ca _start
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x10e72ca)
clang-12: error: clang frontend command failed with exit code 134 (use -v to
see invocation)
clang version 12.0.0 (https://github.com/llvm/llvm-project.git
1667d23e585c13835c66b8d61c2d5ef93f196dd5)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/opfuzz/bin
clang-12: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-12: note: diagnostic msg: /tmp/small-b68581.c
clang-12: note: diagnostic msg: /tmp/small-b68581.sh
clang-12: note: diagnostic msg: 

********************
[540] % 
[540] % cat small.c
int b, *c = &b, **a = &c;
static int d;

void e() {
  int f, g;
  if (b)
    for (f = 0; f < 2; f++)
      for (d = 0; d < 35; d++) {
        *a = c;
        for (; g; g++)
          for (; b; b++)
            ;
        *c = 0;
      }
}

-- 
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/20201103/92d16823/attachment-0001.html>


More information about the llvm-bugs mailing list