llvm / llvm/llvm-project

[OpenMP] commit ea3f107a84eaa2459f6eb5d1c8dbeefea7576689 causes hangs on SPIRV

Open
#222,698 2 comments 0 reactions 0 assignees View on GitHub
clang:openmp openmp
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

After https://github.com/llvm/llvm-project/commit/ea3f107a84eaa2459f6eb5d1c8dbeefea7576689, we see many hangs on SPIR-V, such as:

```
Timed Out Tests (20):
libomptarget :: spirv64-intel :: api/assert.c
libomptarget :: spirv64-intel :: api/omp_device_managed_memory_alloc.c
libomptarget :: spirv64-intel :: api/omp_virtual_func_multiple_inheritance_01.cpp
libomptarget :: spirv64-intel :: jit/empty_kernel_lvl1.c
libomptarget :: spirv64-intel :: jit/empty_kernel_lvl2.c
libomptarget :: spirv64-intel :: mapping/is_device_ptr.cpp
libomptarget :: spirv64-intel :: mapping/mapper_enter_data_always_present_ptee.c
libomptarget :: spirv64-intel :: mapping/ompx_hold/omp_target_disassociate_ptr.c
libomptarget :: spirv64-intel :: mapping/present/target_array_extension.c
libomptarget :: spirv64-intel :: mapping/target_data_array_extension_at_exit.c
libomptarget :: spirv64-intel :: mapping/target_update_array_extension.c
libomptarget :: spirv64-intel :: offloading/bug47654.cpp
libomptarget :: spirv64-intel :: offloading/bug49334.cpp
libomptarget :: spirv64-intel :: offloading/bug50022.cpp
libomptarget :: spirv64-intel :: offloading/ctor_dtor.cpp
libomptarget :: spirv64-intel :: offloading/firstprivate_packed_buffer_lifetime.c
libomptarget :: spirv64-intel :: offloading/high_trip_count_block_limit.cpp
libomptarget :: spirv64-intel :: offloading/target_nowait_target.cpp
libomptarget :: spirv64-intel :: offloading/thread_limit_below_wavefront.c
libomptarget :: spirv64-intel :: offloading/workshare_chunk.c

```

We need to investigate why, for now I plan to restrict the functionality added in this change to non-SPIRV.

Contributor guide

Open the contributing guide

Research direction

Start by comparing commit ea3f107a84eaa2459f6eb5d1c8dbeefea7576689 with the preceding behavior, then run the listed libomptarget spirv64-intel tests to reproduce the hangs. Done means identifying the SPIR-V-specific regression and ensuring the affected tests no longer hang, whether through a targeted restriction or another confirmed fix.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, cpp
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.