[clang] [openmp] [Clang][OpenMP] Fix mapping of structs to device (PR #75642)

Shilei Tian via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 18 20:47:46 PST 2023


shiltian wrote:

The newly added test `offloading/struct_mapping_with_pointers.cpp` fails on NVIDIA GPUs as well.
```
******************** TEST 'libomptarget :: nvptx64-nvidia-cuda :: offloading/struct_mapping_with_pointers.cpp' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/bin/clang++ -fopenmp -pthread   -I /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test -I /gpfs/jlse
-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src -L /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget -L /gpfs/jlse-fs0/users/ac.shilei.tian/build/ll
vm/release/./lib -L /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src  -Wl,-rpath,/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget -Wl,-rpa
th,/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src -Wl,-rpath,/gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/./lib -Wl,-rpath,/soft/compilers/cuda/cud
a-11.8.0/targets/x86_64-linux/lib --libomptarget-nvptx-bc-path=/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget/DeviceRTL -fopenmp-targets=nvptx64-nvidia-cuda
 /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/struct_mapping_with_pointers.cpp -o /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/releas
e/libomptarget/test/nvptx64-nvidia-cuda/offloading/Output/struct_mapping_with_pointers.cpp.tmp /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget/libomptarget.d
evicertl.a && env LIBOMPTARGET_DEBUG=1 /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget/test/nvptx64-nvidia-cuda/offloading/Output/struct_mapping_with_pointer
s.cpp.tmp 2>&1 | /gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/bin/FileCheck /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/struct
_mapping_with_pointers.cpp
# executed command: /gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/bin/clang++ -fopenmp -pthread -I /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/
test -I /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src -L /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget -L /gpfs/jlse-fs0/users/ac.sh
ilei.tian/build/llvm/release/./lib -L /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src -Wl,-rpath,/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libo
mptarget -Wl,-rpath,/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/runtime/src -Wl,-rpath,/gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/./lib -Wl,-rpath,/soft/c
ompilers/cuda/cuda-11.8.0/targets/x86_64-linux/lib --libomptarget-nvptx-bc-path=/gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget/DeviceRTL -fopenmp-targets=nv
ptx64-nvidia-cuda /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/struct_mapping_with_pointers.cpp -o /gpfs/jlse-fs0/users/ac.shilei.tian/bu
ild/openmp/release/libomptarget/test/nvptx64-nvidia-cuda/offloading/Output/struct_mapping_with_pointers.cpp.tmp /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarg
et/libomptarget.devicertl.a
# executed command: env LIBOMPTARGET_DEBUG=1 /gpfs/jlse-fs0/users/ac.shilei.tian/build/openmp/release/libomptarget/test/nvptx64-nvidia-cuda/offloading/Output/struct_mapping_with_p
ointers.cpp.tmp
# executed command: /gpfs/jlse-fs0/users/ac.shilei.tian/build/llvm/release/bin/FileCheck /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/str
uct_mapping_with_pointers.cpp
# .---command stderr------------
# | /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/struct_mapping_with_pointers.cpp:106:12: error: CHECK: expected string not found in inpu
t
# |  // CHECK: dat.datum[dat.arr[0][0]] = 0
# |            ^
# | <stdin>:124:24: note: scanning from here
# | dat.val_more_datum = 18
# |                        ^
# | <stdin>:125:1: note: possible intended match here
# | dat.datum[dat.arr[0][0]] = 32542
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/ac.shilei.tian/Documents/vscode/llvm-project/openmp/libomptarget/test/offloading/struct_mapping_with_pointers.cpp
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            119: omptarget --> Done unregistering library!
# |            120: omptarget --> Deinit offload library!
# |            121: TARGET CUDA RTL --> Missing 2 resources to be returned
# |            122: dat.xi = 4
# |            123: dat.val_datum = 8
# |            124: dat.val_more_datum = 18
# | check:106'0                            X error: no match found
# |            125: dat.datum[dat.arr[0][0]] = 32542
# | check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:106'1     ?                                 possible intended match
# |            126: dat.val_arr = 4
# | check:106'0     ~~~~~~~~~~~~~~~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

********************
```

https://github.com/llvm/llvm-project/pull/75642


More information about the cfe-commits mailing list