Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiler crash with cilksan -O0 #50

Closed
wheatman opened this issue Apr 25, 2021 · 2 comments
Closed

Compiler crash with cilksan -O0 #50

wheatman opened this issue Apr 25, 2021 · 2 comments

Comments

@wheatman
Copy link
Contributor

When I try and compile with cilksan on -O0 I get a crash from the assertion
clang-10: /home/neboat/opencilk/llvm/lib/Transforms/Utils/ValueMapper.cpp:874: void (anonymous namespace)::Mapper::remapInstruction(llvm::Instruction *): Assertion `(Flags & RF_IgnoreMissingLocals) && "Referenced block not in value map!"' failed.

The same code does not crash with -O1, -O2, -O3, -Os, or -Ofast

The full output is

In file included from test.cpp:15:
In file included from ./SparseMatrix.cpp:3:
In file included from ./helpers.h:4:
./parallel.h:25:10: warning: '__cilkrts_get_worker_number' is deprecated [-Wdeprecated-declarations]
return __cilkrts_get_worker_number();
^
/home/ubuntu/OpenCilk-10.0.1-Linux/lib/clang/10.0.1/include/cilk/cilk_api.h:11:66: note: '__cilkrts_get_worker_number' has been explicitly marked deprecated here
extern unsigned __cilkrts_get_worker_number(void) attribute((deprecated));
^
clang-10: /home/neboat/opencilk/llvm/lib/Transforms/Utils/ValueMapper.cpp:874: void (anonymous namespace)::Mapper::remapInstruction(llvm::Instruction *): Assertion `(Flags & RF_IgnoreMissingLocals) && "Referenced block not in value map!"' failed.
Stack dump:
0. Program arguments: /home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name test.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -fno-rounding-math -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -dwarf-column-info -fno-split-dwarf-inlining -debug-info-kind=limited -dwarf-version=4 -debugger-tuning=gdb -resource-dir /home/ubuntu/OpenCilk-10.0.1-Linux/lib/clang/10.0.1 -D NUM_RAW_BLOCKS=1 -D NUM_DENSE_BLOCKS=512 -D OPENMP=0 -D CILK=1 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/x86_64-linux-gnu/c++/9 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/backward -internal-isystem /usr/local/include -internal-isystem /home/ubuntu/OpenCilk-10.0.1-Linux/lib/clang/10.0.1/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O0 -Wall -Wno-address-of-packed-member -Wextra -std=c++17 -fdeprecated-macro -fdebug-compilation-dir /home/ubuntu/SSTGraph_public -ferror-limit 19 -fmessage-length 0 -fopencilk -mllvm -use-opencilk-runtime-bc=true -mllvm -opencilk-runtime-bc-path=/home/ubuntu/OpenCilk-10.0.1-Linux/lib/clang/10.0.1/lib/x86_64-unknown-linux-gnu/libopencilk-abi.bc -fsanitize=cilk -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -faddrsig -o /tmp/test-7337aa.o -x c++ test.cpp

  1.  <eof> parser at end of file
    
  2.  Per-module optimization passes
    
  3.  Running pass 'Lower Tapir to target' on module 'test.cpp'.
    

#0 0x0000000004813454 PrintStackTraceSignalHandler(void*) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x4813454)
#1 0x00000000048110fe llvm::sys::RunSignalHandlers() (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x48110fe)
#2 0x0000000004813865 SignalHandler(int) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x4813865)
#3 0x00007f25878943c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x153c0)
#4 0x00007f2585d8918b raise /build/glibc-eX1tMB/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#5 0x00007f2585d68859 abort /build/glibc-eX1tMB/glibc-2.31/stdlib/abort.c:81:7
#6 0x00007f2585d68729 get_sysdep_segment_value /build/glibc-eX1tMB/glibc-2.31/intl/loadmsgcat.c:509:8
#7 0x00007f2585d68729 _nl_load_domain /build/glibc-eX1tMB/glibc-2.31/intl/loadmsgcat.c:970:34
#8 0x00007f2585d79f36 (/lib/x86_64-linux-gnu/libc.so.6+0x36f36)
#9 0x000000000492ef9f (anonymous namespace)::Mapper::remapInstruction(llvm::Instruction*) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x492ef9f)
#10 0x000000000492e912 llvm::ValueMapper::remapInstruction(llvm::Instruction&) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x492e912)
#11 0x00000000058ca094 llvm::CloneIntoFunction(llvm::Function*, llvm::Function const*, std::vector<llvm::BasicBlock*, std::allocatorllvm::BasicBlock* >, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex > >&, bool, llvm::SmallVectorImplllvm::ReturnInst*&, llvm::StringRef, llvm::SmallPtrSetImplllvm::BasicBlock*, llvm::SmallPtrSetImplllvm::BasicBlock*, llvm::SmallPtrSetImplllvm::BasicBlock*, llvm::DISubprogram, llvm::ClonedCodeInfo*, llvm::ValueMapTypeRemapper*, llvm::OutlineMaterializer*) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x58ca094)
#12 0x00000000058ccde1 llvm::CreateHelper(llvm::SetVector<llvm::Value*, std::vector<llvm::Value*, std::allocatorllvm::Value* >, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfollvm::Value* > > const&, llvm::SetVector<llvm::Value*, std::vector<llvm::Value*, std::allocatorllvm::Value* >, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfollvm::Value* > > const&, std::vector<llvm::BasicBlock*, std::allocatorllvm::BasicBlock* >, llvm::BasicBlock*, llvm::BasicBlock const*, llvm::BasicBlock const*, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex > >&, llvm::Module*, bool, llvm::SmallVectorImplllvm::ReturnInst*&, llvm::StringRef, llvm::SmallPtrSetImplllvm::BasicBlock*, llvm::SmallPtrSetImplllvm::BasicBlock*, llvm::SmallPtrSetImplllvm::BasicBlock*, llvm::BasicBlock const, llvm::SmallPtrSetImplllvm::BasicBlock*, llvm::Type, llvm::ClonedCodeInfo*, llvm::ValueMapTypeRemapper*, llvm::OutlineMaterializer*) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x58ccde1)
#13 0x00000000058a6972 llvm::createHelperForTask(llvm::Function&, llvm::Task*, llvm::SetVector<llvm::Value*, std::vector<llvm::Value*, std::allocatorllvm::Value* >, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfollvm::Value* > >&, llvm::Module*, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex > >&, llvm::Type*, llvm::AssumptionCache*, llvm::DominatorTree*) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x58a6972)
#14 0x00000000058a965d llvm::outlineTask(llvm::Task*, llvm::SetVector<llvm::Value*, std::vector<llvm::Value*, std::allocatorllvm::Value* >, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfollvm::Value* > >&, llvm::SmallVectorImplllvm::Value*&, llvm::Module*, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex > >&, llvm::TapirTarget::ArgStructMode, llvm::Type*, llvm::ValueMap<llvm::Value const*, llvm::WeakTrackingVH, llvm::ValueMapConfig<llvm::Value const*, llvm::sys::SmartMutex > >&, llvm::AssumptionCache*, llvm::DominatorTree*) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x58a965d)
#15 0x00000000058d24ee TapirToTargetImpl::outlineAllTasks(llvm::Function&, llvm::SmallVectorImplllvm::Spindle*&, llvm::DominatorTree&, llvm::AssumptionCache&, llvm::TaskInfo&) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x58d24ee)
#16 0x00000000058d4b10 TapirToTargetImpl::processFunction(llvm::Function&, llvm::SmallVectorImplllvm::Function*&) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x58d4b10)
#17 0x00000000058d5453 TapirToTargetImpl::run() (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x58d5453)
#18 0x00000000058d5cae (anonymous namespace)::LowerTapirToTarget::runOnModule(llvm::Module&) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x58d5cae)
#19 0x00000000041304a0 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x41304a0)
#20 0x0000000004a0ea6b 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_deletellvm::raw_pwrite_stream >) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x4a0ea6b)
#21 0x000000000519da15 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x519da15)
#22 0x0000000005fb74a3 clang::ParseAST(clang::Sema&, bool, bool) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x5fb74a3)
#23 0x00000000050ebd40 clang::FrontendAction::Execute() (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x50ebd40)
#24 0x0000000005048ad3 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x5048ad3)
#25 0x0000000005198130 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x5198130)
#26 0x0000000002b7e21d cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x2b7e21d)
#27 0x0000000002b7c1ec ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x2b7c1ec)
#28 0x0000000002b7bebb main (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x2b7bebb)
#29 0x00007f2585d6a0b3 __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:342:3
#30 0x0000000002b78fce _start (/home/ubuntu/OpenCilk-10.0.1-Linux/bin/clang-10+0x2b78fce)
clang-10: error: unable to execute command: Aborted (core dumped)
clang-10: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 10.0.1 ([email protected]:OpenCilk/opencilk-project.git 8435006)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/ubuntu/SSTGraph_public/../OpenCilk-10.0.1-Linux/bin
clang-10: note: diagnostic msg: PLEASE submit a bug report to https://github.com/OpenCilk/opencilk-project/issues and include the crash backtrace, preprocessed source, and associated run script.
clang-10: note: diagnostic msg:


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


@VoxSciurorum
Copy link
Contributor

Can you upload the files mentioned at the end of the crash dump, test-e5be17.cpp and test-e5be17.sh?

@neboat
Copy link
Collaborator

neboat commented Oct 22, 2021

This issue has been fixed in version 1.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants