In the SPMD case, we need to initialize the data sharing and globalization infrastructure. This covers the case when an SPMD region calls a function in a different compilation unit.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp | ||
---|---|---|
84–85 ↗ | (On Diff #155002) | In case I'm not missing something obvious this function doesn't exist (yet) in libomptarget-nvptx? |
1110–1114 ↗ | (On Diff #155002) | Why is this call being removed? There's no mention in the summary AFAICS |
lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp | ||
---|---|---|
84–85 ↗ | (On Diff #155002) | Correct. There's a libomptarget patch coming up as well. |
1110–1114 ↗ | (On Diff #155002) | Not needed on workers after libomptarget patch. I could perhaps put this into a separate patch along with the test fix. |
test/OpenMP/nvptx_data_sharing.cpp | ||
---|---|---|
33 ↗ | (On Diff #155037) | It is better to check that this call is not emitted, like this CK1-NOT: call void @__kmpc_data_sharing_init_stack |
test/OpenMP/nvptx_data_sharing_spmd.cpp | ||
1–24 ↗ | (On Diff #155037) | I think we already have some tests with SPMD construct, you can just modify the existing tests instead of adding another one (e.g. nvptx_target_parallel_codegen.cpp) |