In our ongoing work, we are using AbstractAttributor to deduct execution model
of device functions, and potententially remove unnecessary function calls to
__kmpc_is_spmd_exec_mode. In current device runtime, we have mixed use of
isSPMDMode and __kmpc_is_spmd_exec_mode, but in fact in __kmpc_is_spmd_exec_mode
it simply calls isSPMDMode. Since all functions starting with __kmpc is C
function, which doesn't have things like name mangling. It is more optimization
friendly. In this patch, we simply replaced all calls to isSPMDMode with
__kmpc_is_spmd_exec_mode to pave the way for the optimization.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
openmp/libomptarget/deviceRTLs/common/src/omptarget.cu | ||
---|---|---|
164–165 | Ah, bad. This change introduces PRINT0 calls absolutely everywhere. That will make a mess. My preference would be to delete this PRINT0 call. If we can't do that, I guess we could still with one function called internally that doesn't print and one function called externally that does, but 'external' in this context is clang. |
Ah, bad. This change introduces PRINT0 calls absolutely everywhere. That will make a mess.
My preference would be to delete this PRINT0 call.
If we can't do that, I guess we could still with one function called internally that doesn't print and one function called externally that does, but 'external' in this context is clang.