[Openmp-commits] [PATCH] D89802: [OpenMP] Add Passing in Original Declaration Names To Mapper API

Shilei Tian via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Wed Oct 28 10:45:15 PDT 2020


tianshilei1992 added a comment.

In D89802#2359537 <https://reviews.llvm.org/D89802#2359537>, @jhuber6 wrote:

> In D89802#2359504 <https://reviews.llvm.org/D89802#2359504>, @tianshilei1992 wrote:
>
>> This patch caused segment fault in D90099 <https://reviews.llvm.org/D90099> where the map variable info pointer is `nullptr` but it is deferenced.
>
> Was it this one, or was it D90172 <https://reviews.llvm.org/D90172>. This patch only changes the code generation in Clang so I don't think it references the generated mapping pointers. It's possible I forget to check the status of the pointer somewhere in the RTL.

The dereference is in the Clang. I happened to have a full log:

  $ clang -cc1 -DCK1 -verify -fopenmp -fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple powerpc64le-unknown-unknown -emit-llvm $HOME/Documents/vscode/llvm-project/clang/test/OpenMP/target_exit_data_codegen.cpp -o target_exit_data_codegen.ll
  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: clang -cc1 -DCK1 -verify -fopenmp -fopenmp-targets=powerpc64le-ibm-linux-gnu -x c++ -triple powerpc64le-unknown-unknown -emit-llvm /home/shiltian/Documents/vscode/llvm-project/clang/test/OpenMP/target_exit_data_codegen.cpp -o target_exit_data_codegen.ll
  1.      <eof> parser at end of file
  2.      Per-file LLVM IR generation
  3.      /home/shiltian/Documents/vscode/llvm-project/clang/test/OpenMP/target_exit_data_codegen.cpp:48:6: Generating code for declaration 'foo'
   #0 0x000055b62a4406ec llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x1f3d6ec)
   #1 0x000055b62a43e3c4 llvm::sys::RunSignalHandlers() (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x1f3b3c4)
   #2 0x000055b62a43e533 SignalHandler(int) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x1f3b533)
   #3 0x00007f0bb92d98a0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x128a0)
   #4 0x000055b629ce8dbc llvm::CallInst::init(llvm::FunctionType*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::ArrayRef<llvm::OperandBundleDefT<llvm::Value*> >, llvm::Twine const&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x17e5dbc)
   #5 0x000055b629cc48c2 llvm::IRBuilderBase::CreateCall(llvm::FunctionType*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::ArrayRef<llvm::OperandBundleDefT<llvm::Value*> >, llvm::Twine const&, llvm::MDNode*) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x17c18c2)
   #6 0x000055b62a95d7e1 clang::CodeGen::CodeGenFunction::EmitRuntimeCall(llvm::FunctionCallee, llvm::ArrayRef<llvm::Value*>, llvm::Twine const&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x245a7e1)
   #7 0x000055b62aa7756b void clang::CodeGen::RegionCodeGenTy::CallbackFn<clang::CodeGen::CGOpenMPRuntime::emitTargetDataStandAloneCall(clang::CodeGen::CodeGenFunction&, clang::OMPExecutableDirective const&, clang::Expr const*, clang::Expr const*)::'lambda'(clang::CodeGen::CodeGenFunction&, clang::CodeGen::PrePostActionTy&)>(long, clang::CodeGen::CodeGenFunction&, clang::CodeGen::PrePostActionTy&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x257456b)
   #8 0x000055b62aa735b0 clang::CodeGen::RegionCodeGenTy::operator()(clang::CodeGen::CodeGenFunction&) const (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x25705b0)
   #9 0x000055b62a74bd59 clang::CodeGen::CodeGenFunction::EmitOMPTargetTaskBasedDirective(clang::OMPExecutableDirective const&, clang::CodeGen::RegionCodeGenTy const&, clang::CodeGen::CodeGenFunction::OMPTargetDataInfo&)::'lambda3'(clang::CodeGen::CodeGenFunction&, clang::CodeGen::PrePostActionTy&)::operator()(clang::CodeGen::CodeGenFunction&, clang::CodeGen::PrePostActionTy&) const (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x2248d59)
  #10 0x000055b62aa7361f clang::CodeGen::RegionCodeGenTy::operator()(clang::CodeGen::CodeGenFunction&) const (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x257061f)
  #11 0x000055b62aa738af (anonymous namespace)::CGOpenMPRegionInfo::EmitBody(clang::CodeGen::CodeGenFunction&, clang::Stmt const*) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x25708af)
  #12 0x000055b62a72f42e clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction(clang::CapturedStmt const&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x222c42e)
  #13 0x000055b62aab4708 clang::CodeGen::CGOpenMPRuntime::emitTaskOutlinedFunction(clang::OMPExecutableDirective const&, clang::VarDecl const*, clang::VarDecl const*, clang::VarDecl const*, llvm::omp::Directive, clang::CodeGen::RegionCodeGenTy const&, bool, unsigned int&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x25b1708)
  #14 0x000055b62a74d469 clang::CodeGen::CodeGenFunction::EmitOMPTargetTaskBasedDirective(clang::OMPExecutableDirective const&, clang::CodeGen::RegionCodeGenTy const&, clang::CodeGen::CodeGenFunction::OMPTargetDataInfo&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x224a469)
  #15 0x000055b62aac0c70 clang::CodeGen::CGOpenMPRuntime::emitTargetDataStandAloneCall(clang::CodeGen::CodeGenFunction&, clang::OMPExecutableDirective const&, clang::Expr const*, clang::Expr const*)::'lambda0'(clang::CodeGen::CodeGenFunction&, clang::CodeGen::PrePostActionTy&)::operator()(clang::CodeGen::CodeGenFunction&, clang::CodeGen::PrePostActionTy&) const (.isra.2413) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x25bdc70)
  #16 0x000055b62aa735b0 clang::CodeGen::RegionCodeGenTy::operator()(clang::CodeGen::CodeGenFunction&) const (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x25705b0)
  #17 0x000055b62aa745c8 clang::CodeGen::CGOpenMPRuntime::emitIfClause(clang::CodeGen::CodeGenFunction&, clang::Expr const*, clang::CodeGen::RegionCodeGenTy const&, clang::CodeGen::RegionCodeGenTy const&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x25715c8)
  #18 0x000055b62aa74b1d clang::CodeGen::CGOpenMPRuntime::emitTargetDataStandAloneCall(clang::CodeGen::CodeGenFunction&, clang::OMPExecutableDirective const&, clang::Expr const*, clang::Expr const*) (.part.1404) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x2571b1d)
  #19 0x000055b62a74c7db clang::CodeGen::CodeGenFunction::EmitOMPTargetExitDataDirective(clang::OMPTargetExitDataDirective const&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x22497db)
  #20 0x000055b62a7301cd clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x222d1cd)
  #21 0x000055b62a73048c clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x222d48c)
  #22 0x000055b62a77bccb clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x2278ccb)
  #23 0x000055b62a78bffd clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x2288ffd)
  #24 0x000055b62a7d5723 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x22d2723)
  #25 0x000055b62a7d30c5 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x22d00c5)
  #26 0x000055b62a7da877 clang::CodeGen::CodeGenModule::EmitDeferred() (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x22d7877)
  #27 0x000055b62a7dad6c clang::CodeGen::CodeGenModule::Release() (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x22d7d6c)
  #28 0x000055b62b2c3737 (anonymous namespace)::CodeGeneratorImpl::HandleTranslationUnit(clang::ASTContext&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x2dc0737)
  #29 0x000055b62b2c1f35 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x2dbef35)
  #30 0x000055b62bf051e9 clang::ParseAST(clang::Sema&, bool, bool) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x3a021e9)
  #31 0x000055b62b2c0e90 clang::CodeGenAction::ExecuteAction() (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x2dbde90)
  #32 0x000055b62ac95729 clang::FrontendAction::Execute() (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x2792729)
  #33 0x000055b62ac4f75a clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x274c75a)
  #34 0x000055b62ad5fc26 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0x285cc26)
  #35 0x000055b629189d7c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0xc86d7c)
  #36 0x000055b629184879 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0xc81879)
  #37 0x000055b6290ff094 main (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0xbfc094)
  #38 0x00007f0bb7f6db97 __libc_start_main /build/glibc-2ORdQG/glibc-2.27/csu/../csu/libc-start.c:344:0
  #39 0x000055b6291843da _start (/home/shiltian/Documents/deploy/llvm/release/bin/clang-12+0xc813da)
  [1]    25935 segmentation fault (core dumped)  clang -cc1 -DCK1 -verify -fopenmp -fopenmp-targets=powerpc64le-ibm-linux-gnu


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89802/new/

https://reviews.llvm.org/D89802



More information about the Openmp-commits mailing list