Skip to content

opencilk compiler crashing #177

@gblelloch

Description

@gblelloch

Describe the bug

opencilk clang++ crashes and tells me to: PLEASE submit a bug report to https://github.com/OpenCilk/opencilk-project/issues/

The crash is on compiling a single files of the test suite for parlaylib. Printout below. Based on version of opencilk I cloned today. You can likely reproduce it given instructions below.

Expected behavior

Compile

OpenCilk version

clang version 14.0.6 (https://github.com/OpenCilk/opencilk-project fc90ded\

Built from source as described in: https://www.opencilk.org/doc/users-guide/build-opencilk-from-source/
Also tried downloading and using: https://github.com/OpenCilk/opencilk-project/releases/download/opencilk/v2.0/OpenCilk-2.0.0-x86_64-Linux-Ubuntu-22.04.sh

-OR-

Built from source:

  • opencilk-project: branch commit# (or tag)
  • cheetah: branch commit# (or tag)
  • productivity-tools: branch commit# (or tag)
  • infrastructure: branch commit# (or tag) (if applicable)

System information

Ubuntu22

  • OS: distribution, version [e.g., Ubuntu 20.04]
  • CPU: [e.g., Intel Xeon Platinum 8260]

Steps to reproduce (include relevant output)

TO REPRODUCE:

git clone https://github.com/cmuparlay/parlaylib.git
cd parlaylib
mkdir build
cd build
cmake -DCMAKE_CXX_COMPILER=<pathtoopencilk++> -DPARLAY_OPENCILK=On -DCMAKE_BUILD_TYPE=RELEASE -DPARLAY_TEST=On ..
cd test
make test_delayed_filter_op-nosan

  1. [E.g., clone repo X]

  2. [E.g., build with parameters XYZ]

    Pass the -v flag to OpenCilk clang/clang++ to show verbose compilation
    commands and output.

  3. [E.g., compiler crash output, runtime failure...]

make test_delayed_filter_op-nosan
[ 50%] Built target gtest
[ 50%] Built target gtest_main
[ 50%] Building CXX object test/CMakeFiles/test_delayed_filter_op-nosan.dir/test_delayed_filter_op.cpp.o
clang++: /home/ubuntu/opencilk/opencilk/llvm/lib/Transforms/Utils/LCSSA.cpp:406: bool llvm::formLCSSA(Loop&, const DominatorTree&, const LoopInfo*, ScalarEvolution*): Ass
ertion `L.isLCSSAForm(DT)' failed.
PLEASE submit a bug report to https://github.com/OpenCilk/opencilk-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /home/ubuntu/opencilk/build/bin/clang++ -DDEBUG -DPARLAY_OPENCILK -I/home/ubuntu/parlaylib/include -isystem /home/ubuntu/parlaylib/buildclang/_
deps/googletest-src/googletest/include -isystem /home/ubuntu/parlaylib/buildclang/_deps/googletest-src/googletest -O3 -DNDEBUG -Wall -Wextra -Wfatal-errors -g -Og -fno-om
it-frame-pointer -fopencilk -std=gnu++17 -MD -MT test/CMakeFiles/test_delayed_filter_op-nosan.dir/test_delayed_filter_op.cpp.o -MF CMakeFiles/test_delayed_filter_op-nosan
.dir/test_delayed_filter_op.cpp.o.d -o CMakeFiles/test_delayed_filter_op-nosan.dir/test_delayed_filter_op.cpp.o -c /home/ubuntu/parlaylib/test/test_delayed_filter_op.cpp

  1.  <eof> parser at end of file                                                                                                                                        
    
  2.  Optimizer                                                                                                                                                          
    

#0 0x000055a2b33b15c8 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#1 0x000055a2b33af1ac llvm::sys::CleanupOnSignal(unsigned long) (/home/ubuntu/opencilk/build/bin/clang+++0x270d1ac)
#2 0x000055a2b32fcbe8 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007f3553042520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007f3553096a7c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x96a7c)
#5 0x00007f3553042476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
#6 0x00007f35530287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
#7 0x00007f355302871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
#8 0x00007f3553039e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#9 0x000055a2b34f5876 llvm::formLCSSA(llvm::Loop&, llvm::DominatorTree const&, llvm::LoopInfo const*, llvm::ScalarEvolution*) (/home/ubuntu/opencilk/build/bin/clang+++0x
2853876)
#10 0x000055a2b34f64c7 llvm::LCSSAPass::run(llvm::Function&, llvm::AnalysisManagerllvm::Function&) (/home/ubuntu/opencilk/build/bin/clang+++0x28544c7)
#11 0x000055a2b46c1ba5 llvm::detail::PassModel<llvm::Function, llvm::LCSSAPass, llvm::PreservedAnalyses, llvm::AnalysisManagerllvm::Function >::run(llvm::Function&, llv
m::AnalysisManagerllvm::Function&) (/home/ubuntu/opencilk/build/bin/clang+++0x3a1fba5)
#12 0x000055a2b64b2113 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManagerllvm::Function&) (/home/ubuntu/opencilk/build/bin/clang+++0x5810113)
#13 0x000055a2b46bf0d5 llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManagerllvm::Function >::run(llvm
::Function&, llvm::AnalysisManagerllvm::Function&) (/home/ubuntu/opencilk/build/bin/clang+++0x3a1d0d5)
#14 0x000055a2b37ce037 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManagerllvm::Function >, llvm::PreservedAnalyses, llvm::A
nalysisManagerllvm::Function >::run(llvm::Function&, llvm::AnalysisManagerllvm::Function&) (/home/ubuntu/opencilk/build/bin/clang+++0x2b2c037)
#15 0x000055a2b6538c74 llvm::CGSCCToFunctionPassAdaptor::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::Lazy
CallGraph&, llvm::CGSCCUpdateResult&) (/home/ubuntu/opencilk/build/bin/clang+++0x5896c74)
#16 0x000055a2b46bf085 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::CGSCCToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGr
aph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::Laz
yCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/home/ubuntu/opencilk/build/bin/clang+++0x3a1d085)
#17 0x000055a2b653033c llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSC
CUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/
home/ubuntu/opencilk/build/bin/clang+++0x588e33c)
#18 0x000055a2b2c4f865 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm:
:LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::L
azyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llv
m::CGSCCUpdateResult&) (/home/ubuntu/opencilk/build/bin/clang+++0x1fad865)
#19 0x000055a2b653483b llvm::DevirtSCCRepeatedPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallG
raph&, llvm::CGSCCUpdateResult&) (/home/ubuntu/opencilk/build/bin/clang+++0x589283b)
#20 0x000055a2b2c4f815 llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::DevirtSCCRepeatedPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::LazyCallGraph::
SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCall
Graph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/home/ubuntu/opencilk/build/bin/clang+++0x1fad815)
#21 0x000055a2b65322fc llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManagerllvm::Module&) (/home/ubuntu/opencilk/build/bin/clang+++0x58902f
c)
#22 0x000055a2b2c4f8b5 llvm::detail::PassModel<llvm::Module, llvm::ModuleToPostOrderCGSCCPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManagerllvm::Module >::run(
llvm::Module&, llvm::AnalysisManagerllvm::Module&) (/home/ubuntu/opencilk/build/bin/clang+++0x1fad8b5)
#23 0x000055a2b2b0633d llvm::PassManager<llvm::Module, llvm::AnalysisManagerllvm::Module >::run(llvm::Module&, llvm::AnalysisManagerllvm::Module&) (/home/ubuntu/openc
ilk/build/bin/clang+++0x1e6433d)
#24 0x000055a2b2c56708 llvm::ModuleInlinerWrapperPass::run(llvm::Module&, llvm::AnalysisManagerllvm::Module&) (/home/ubuntu/opencilk/build/bin/clang+++0x1fb4708)
#25 0x000055a2b46c2a75 llvm::detail::PassModel<llvm::Module, llvm::ModuleInlinerWrapperPass, llvm::PreservedAnalyses, llvm::AnalysisManagerllvm::Module >::run(llvm::Mod
#24 0x000055a2b2c56708 llvm::ModuleInlinerWrapperPass::run(llvm::Module&, llvm::AnalysisManagerllvm::Module&) (/home/ubuntu/opencilk/build/bin/clang+++0x1fb4708)
#25 0x000055a2b46c2a75 llvm::detail::PassModel<llvm::Module, llvm::ModuleInlinerWrapperPass, llvm::PreservedAnalyses, llvm::AnalysisManagerllvm::Module >::run(llvm::Mod
ule&, llvm::AnalysisManagerllvm::Module&) (/home/ubuntu/opencilk/build/bin/clang+++0x3a20a75)
#26 0x000055a2b2b0633d llvm::PassManager<llvm::Module, llvm::AnalysisManagerllvm::Module >::run(llvm::Module&, llvm::AnalysisManagerllvm::Module&) (/home/ubuntu/openc
ilk/build/bin/clang+++0x1e6433d)
#27 0x000055a2b37cf537 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_dele
tellvm::raw_pwrite_stream >&, std::unique_ptr<llvm::ToolOutputFile, std::default_deletellvm::ToolOutputFile >&) (.constprop.0) BackendUtil.cpp:0:0
#28 0x000055a2b37d3500 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, c
lang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_deletellvm::raw_pwrite_stream >) (
/home/ubuntu/opencilk/build/bin/clang+++0x2b31500)
#29 0x000055a2b464ab2d clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/ubuntu/opencilk/build/bin/clang+++0x39a8b2d)
#30 0x000055a2b5314da9 clang::ParseAST(clang::Sema&, bool, bool) (/home/ubuntu/opencilk/build/bin/clang+++0x4672da9)
#31 0x000055a2b3f2d9e9 clang::FrontendAction::Execute() (/home/ubuntu/opencilk/build/bin/clang+++0x328b9e9)
#32 0x000055a2b3eb7a7e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/ubuntu/opencilk/build/bin/clang+++0x3215a7e)
#33 0x000055a2b3ff787b clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/ubuntu/opencilk/build/bin/clang+++0x335587b)
#34 0x000055a2b1a3a076 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/ubuntu/opencilk/build/bin/clang+++0xd98076)
#35 0x000055a2b1a35fee ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#36 0x000055a2b3d2eb79 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optionalllvm::StringRef >, std::__cxx11::ba
sic_string<char, std::char_traits, std::allocator >, bool) const::'lambda'()>(long) Job.cpp:0:0
#37 0x000055a2b32fcd9a llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/ubuntu/opencilk/build/bin/clang+++0x265ad9a)
#38 0x000055a2b3d303e4 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optionalllvm::StringRef >, std::__cxx11::basic_string<char, std::char_traits, std::
allocator >, bool) const (.part.0) Job.cpp:0:0
#39 0x000055a2b3cfe06b clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/home/ubuntu/opencilk/build/bin/cl
ang+++0x305c06b)
#40 0x000055a2b3cfec09 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) cons
t (/home/ubuntu/opencilk/build/bin/clang+++0x305cc09)
#41 0x000055a2b3d0d1e9 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/ho
me/ubuntu/opencilk/build/bin/clang+++0x306b1e9)
#42 0x000055a2b19ab3f7 main (/home/ubuntu/opencilk/build/bin/clang+++0xd093f7)
#43 0x00007f3553029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#44 0x00007f3553029e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#45 0x000055a2b1a35615 _start (/home/ubuntu/opencilk/build/bin/clang+++0xd93615)
clang-14: fatal error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 14.0.6 (https://github.com/OpenCilk/opencilk-project fc90ded)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/ubuntu/opencilk/build/bin
clang-14: note: diagnostic msg:


PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-14: note: diagnostic msg: /tmp/test_delayed_filter_op-a983d7.cpp
clang-14: note: diagnostic msg: /tmp/test_delayed_filter_op-a983d7.sh
clang-14: note: diagnostic msg:


make[3]: *** [test/CMakeFiles/test_delayed_filter_op-nosan.dir/build.make:76: test/CMakeFiles/test_delayed_filter_op-nosan.dir/test_delayed_filter_op.cpp.o] Error 134
make[2]: *** [CMakeFiles/Makefile2:1526: test/CMakeFiles/test_delayed_filter_op-nosan.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:1533: test/CMakeFiles/test_delayed_filter_op-nosan.dir/rule] Error 2
make: *** [Makefile:330: test/CMakeFiles/test_delayed_filter_op-nosan.dir/rule] Error 2

Working example code

If applicable, include a working code example which triggers the bug.

Additional comments

Add any other comments about the issue here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions