Code generation failure for box_t::extend via nvc++ OpenMP
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 89
- Forks
- 24
- PR merge metrics
- No merged PRs in 30d
Description
Following the discussion in #43 about the issue there being potentially a compiler bug I decided to try and compile the downstream library I am working on XDG using nvc++ rather than llvm/clang and I came across what seemed to be a code generation bug when using the method box_t::extend() for creation of bounding boxes on device.
I have created a minimal working example here - https://github.com/Waqar-ukaea/cuBQL-issue-reproducer. The specific main file can be found here - https://github.com/Waqar-ukaea/cuBQL-issue-reproducer/blob/main/reproducers/bounds_extend_fail.cpp. When running the executable after compilation with clang vs nvc++:
Compiling with llvm/clang-22 there is no issues. However compilation with nvc++ seems to fail.
EDIT - nvc++ seems to have no issue when the CMake build type is set to Debug (-g -O0) with no optimization but when set to Release (-fast -O3) it fails to compile with the error shown above.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with reproducers/bounds_extend_fail.cpp in the linked minimal reproducer and compare execution after building with llvm/clang-22 and nvc++. Check the CMake Debug (-g -O0) and Release (-fast -O3) configurations; done means the nvc++ Release behavior is reproduced and the library-side cause or compiler-specific failure is clearly identified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- compilers, hpc
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100