Skip to content

[flang][openmp][mlir] - flang-new crashes when omp.task and omp.target are used in the same function #84606

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

Closed
bhandarkar-pranav opened this issue Mar 9, 2024 · 3 comments
Labels
crash Prefer [crash-on-valid] or [crash-on-invalid] flang:ir flang:openmp

Comments

@bhandarkar-pranav
Copy link
Contributor

bhandarkar-pranav commented Mar 9, 2024

Command

flang-new   -O2    -fopenmp --offload-arch=gfx90a  -D__OFFLOAD_ARCH_gfx90a__ f.f95 -o f.out

Crash signature

PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/flang-new -fc1 -triple amdgcn\
-amd-amdhsa -emit-llvm-bc -D __OFFLOAD_ARCH_gfx90a__ -fopenmp -mrelocation-model pic -pic-level 2 -target-cpu gfx90a -fopenmp-host-ir-\
file-path /tmp/f-6566c4.bc -fopenmp-is-target-device -mframe-pointer=none -O2 -o /tmp/f-gfx90a-e38eba.bc -x f95-cpp-input f.f95
 #0 0x00007f98c95dcac0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-\
25_Jan_24_23_23/bin/../lib/libLLVMSupport.so.19.0git+0x1dcac0)
 #1 0x00007f98c95d9ecf llvm::sys::RunSignalHandlers() (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/.\
./lib/libLLVMSupport.so.19.0git+0x1d9ecf)
 #2 0x00007f98c95da025 SignalHandler(int) Signals.cpp:0:0
 #3 0x00007f98c8c42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f98c70cee2c llvm::CodeExtractorAnalysisCache::CodeExtractorAnalysisCache(llvm::Function&) (/work/prbhanda/git/bhandarkar-pr\
anav/build/install_18.0-0-25_Jan_24_23_23/bin/../lib/../lib/libLLVMTransformUtils.so.19.0git+0xcee2c)
 #5 0x00007f98c2d4cbc5 llvm::OpenMPIRBuilder::finalize(llvm::Function*) (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_\
Jan_24_23_23/bin/../lib/../lib/libLLVMFrontendOpenMP.so.19.0git+0x6ebc5)
 #6 0x00007f98ca3b2c31 mlir::LLVM::ModuleTranslation::~ModuleTranslation() (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-\
25_Jan_24_23_23/bin/../lib/../lib/libMLIRTargetLLVMIRExport.so.19.0git+0x24c31)
 #7 0x00007f98ca3c9c13 mlir::translateModuleToLLVMIR(mlir::Operation*, llvm::LLVMContext&, llvm::StringRef) (/work/prbhanda/git/bhanda\
rkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/../lib/../lib/libMLIRTargetLLVMIRExport.so.19.0git+0x3bc13)
 #8 0x00007f98cbdc8fef Fortran::frontend::CodeGenAction::generateLLVMIR() (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-2\
5_Jan_24_23_23/bin/../lib/libflangFrontend.so.19.0git+0x148fef)
 #9 0x00007f98cbdcbba0 Fortran::frontend::CodeGenAction::executeAction() (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25\
_Jan_24_23_23/bin/../lib/libflangFrontend.so.19.0git+0x14bba0)
#10 0x00007f98cbcdb091 Fortran::frontend::FrontendAction::execute() (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_Jan_\
24_23_23/bin/../lib/libflangFrontend.so.19.0git+0x5b091)
#11 0x00007f98cbccb2e3 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/work/prbhanda/git/bhan\
darkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/../lib/libflangFrontend.so.19.0git+0x4b2e3)
#12 0x00007f98cc5a6b1b Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/work/prbhanda/git/bhandark\
ar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/../lib/libflangFrontendTool.so.19.0git+0x4b1b)
#13 0x000055cd42a84c38 fc1_main(llvm::ArrayRef<char const*>, char const*) (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-2\
5_Jan_24_23_23/bin/flang-new+0x5c38)
#14 0x000055cd42a8335d main (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/flang-new+0x435d)
#15 0x00007f98c8c29d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#16 0x00007f98c8c29e40 call_init ./csu/../csu/libc-start.c:128:20
#17 0x00007f98c8c29e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#18 0x000055cd42a83865 _start (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/flang-new+0x4865)
flang-new: error: unable to execute command: Segmentation fault (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 19.0.0git ([email protected]:bhandarkar-pranav/llvm-project.git 2e0ddfc1638597e0d08fb028fdd6754387732107)
Target: x86_64-unknown-linux-gnu
Thread model: posix
cat f.f95
program main
      implicit none
      integer :: N = 5
      integer, dimension(5) :: a
      integer, dimension(5) :: b
      integer :: i
      integer :: target_a = 0
      !$omp task depend(out:a)
      do i = 1, N
         a(i) = i
      end do
      !$omp end task


      !$omp target map(tofrom:target_a) map(tofrom:a)
      do i = 1, N
         target_a = target_a + i
         a(i) = a(i) + i
      end do
      !$omp end target
      print*, target_a
      print*, a
end program main
@github-actions github-actions bot added the flang Flang issues not falling into any other category label Mar 9, 2024
@EugeneZelenko EugeneZelenko added flang:ir crash Prefer [crash-on-valid] or [crash-on-invalid] flang:openmp and removed flang Flang issues not falling into any other category labels Mar 9, 2024
@llvmbot
Copy link
Member

llvmbot commented Mar 9, 2024

@llvm/issue-subscribers-flang-ir

Author: Pranav Bhandarkar (bhandarkar-pranav)

Command ``` flang-new -O2 -fopenmp --offload-arch=gfx90a -D__OFFLOAD_ARCH_gfx90a__ f.f95 -o f.out ``` Crash signature ``` PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. Stack dump: 0. Program arguments: /work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/flang-new -fc1 -triple amdgcn\ -amd-amdhsa -emit-llvm-bc -D __OFFLOAD_ARCH_gfx90a__ -fopenmp -mrelocation-model pic -pic-level 2 -target-cpu gfx90a -fopenmp-host-ir-\ file-path /tmp/f-6566c4.bc -fopenmp-is-target-device -mframe-pointer=none -O2 -o /tmp/f-gfx90a-e38eba.bc -x f95-cpp-input f.f95 #0 0x00007f98c95dcac0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-\ 25_Jan_24_23_23/bin/../lib/libLLVMSupport.so.19.0git+0x1dcac0) #1 0x00007f98c95d9ecf llvm::sys::RunSignalHandlers() (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/.\ ./lib/libLLVMSupport.so.19.0git+0x1d9ecf) #2 0x00007f98c95da025 SignalHandler(int) Signals.cpp:0:0 #3 0x00007f98c8c42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) #4 0x00007f98c70cee2c llvm::CodeExtractorAnalysisCache::CodeExtractorAnalysisCache(llvm::Function&) (/work/prbhanda/git/bhandarkar-pr\ anav/build/install_18.0-0-25_Jan_24_23_23/bin/../lib/../lib/libLLVMTransformUtils.so.19.0git+0xcee2c) #5 0x00007f98c2d4cbc5 llvm::OpenMPIRBuilder::finalize(llvm::Function*) (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_\ Jan_24_23_23/bin/../lib/../lib/libLLVMFrontendOpenMP.so.19.0git+0x6ebc5) #6 0x00007f98ca3b2c31 mlir::LLVM::ModuleTranslation::~ModuleTranslation() (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-\ 25_Jan_24_23_23/bin/../lib/../lib/libMLIRTargetLLVMIRExport.so.19.0git+0x24c31) #7 0x00007f98ca3c9c13 mlir::translateModuleToLLVMIR(mlir::Operation*, llvm::LLVMContext&, llvm::StringRef) (/work/prbhanda/git/bhanda\ rkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/../lib/../lib/libMLIRTargetLLVMIRExport.so.19.0git+0x3bc13) #8 0x00007f98cbdc8fef Fortran::frontend::CodeGenAction::generateLLVMIR() (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-2\ 5_Jan_24_23_23/bin/../lib/libflangFrontend.so.19.0git+0x148fef) #9 0x00007f98cbdcbba0 Fortran::frontend::CodeGenAction::executeAction() (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25\ _Jan_24_23_23/bin/../lib/libflangFrontend.so.19.0git+0x14bba0) #10 0x00007f98cbcdb091 Fortran::frontend::FrontendAction::execute() (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_Jan_\ 24_23_23/bin/../lib/libflangFrontend.so.19.0git+0x5b091) #11 0x00007f98cbccb2e3 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/work/prbhanda/git/bhan\ darkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/../lib/libflangFrontend.so.19.0git+0x4b2e3) #12 0x00007f98cc5a6b1b Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/work/prbhanda/git/bhandark\ ar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/../lib/libflangFrontendTool.so.19.0git+0x4b1b) #13 0x000055cd42a84c38 fc1_main(llvm::ArrayRef<char const*>, char const*) (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-2\ 5_Jan_24_23_23/bin/flang-new+0x5c38) #14 0x000055cd42a8335d main (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/flang-new+0x435d) #15 0x00007f98c8c29d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16 #16 0x00007f98c8c29e40 call_init ./csu/../csu/libc-start.c:128:20 #17 0x00007f98c8c29e40 __libc_start_main ./csu/../csu/libc-start.c:379:5 #18 0x000055cd42a83865 _start (/work/prbhanda/git/bhandarkar-pranav/build/install_18.0-0-25_Jan_24_23_23/bin/flang-new+0x4865) flang-new: error: unable to execute command: Segmentation fault (core dumped) flang-new: error: flang frontend command failed due to signal (use -v to see invocation) flang-new version 19.0.0git ([email protected]:bhandarkar-pranav/llvm-project.git 2e0ddfc) Target: x86_64-unknown-linux-gnu Thread model: posix ```
cat f.f95
program main
      implicit none
      integer :: N = 5
      integer, dimension(5) :: a
      integer, dimension(5) :: b
      integer :: i
      integer :: target_a = 0
      !$omp task depend(out:a)
      do i = 1, N
         a(i) = i
      end do
      !$omp end task


      !$omp target map(tofrom:target_a) map(tofrom:a)
      do i = 1, N
         target_a = target_a + i
         a(i) = a(i) + i
      end do
      !$omp end target
      print*, target_a
      print*, a
end program main

@bhandarkar-pranav bhandarkar-pranav changed the title [flang][openmp] - flang-new crashes when omp.task and omp.target are used in the same function [flang][openmp][mlir] - flang-new crashes when omp.task and omp.target are used in the same function Mar 9, 2024
@bhandarkar-pranav
Copy link
Contributor Author

bhandarkar-pranav commented Mar 9, 2024

Reduced testcase

cat reduced.mlir
module attributes {omp.is_target_device = true } {
  llvm.func @_QQmain() attributes {fir.bindc_name = "main", omp.declare_target = #omp.declaretarget<device_type = (host), capture_clau\se = (to)>} {
    %0 = llvm.mlir.constant(0 : i32) : i32
    %1 = llvm.mlir.constant(1 : i64) : i64
    %2 = llvm.alloca %1 x i32 {bindc_name = "a"} : (i64) -> !llvm.ptr<5>
    %3 = llvm.addrspacecast %2 : !llvm.ptr<5> to !llvm.ptr
    omp.task {
      llvm.store %0, %3 : i32, !llvm.ptr
      omp.terminator
    }
    %4 = omp.map_info var_ptr(%3 : !llvm.ptr, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr {name = "a"}
    omp.target map_entries(%4 -> %arg0 : !llvm.ptr) {
    ^bb0(%arg0: !llvm.ptr):
      %5 = llvm.mlir.constant(5 : i32) : i32
      %6 = llvm.load %arg0  : !llvm.ptr -> i32
      %7 = llvm.add %6, %5  : i32
      llvm.store %7, %arg0  : i32, !llvm.ptr
      omp.terminator
    }
    llvm.return
  }
}

command

mlir-translate` -mlir-to-llvmir reduced.mlir

@tblah
Copy link
Contributor

tblah commented Nov 13, 2024

This works for me with a flang built today. Can this issue be closed?

@tblah tblah closed this as completed Mar 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crash Prefer [crash-on-valid] or [crash-on-invalid] flang:ir flang:openmp
Projects
None yet
4 participants