[libomptarget] Refactor activemask macro to inline function
See also abandoned D66846, split into this diff and others.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
openmp/libomptarget/deviceRTLs/nvptx/src/target_impl.h | ||
---|---|---|
46 ↗ | (On Diff #217546) | I would suggest to change the types of all variables used as mask to __kmpc_impl_lanemask_t, just like for this function. |
openmp/libomptarget/deviceRTLs/nvptx/src/target_impl.h | ||
---|---|---|
46 ↗ | (On Diff #217546) | That sounds good. I'll rebase this on master (that'll catch syncwarp) and look through the codebase for int/int32_t/uint32_t that are obviously lane masks. This means the lanemask type will be in the extern API - nothing will break as it's still an i32, and that'll be helpful when targeting a 64 bit warp from clang. |
Replace types with __kmpc_impl_lanemask_t wherever they are used within a function.
We probably want to change some of the function prototypes to take this type as well but I'd like to make that change separately.
Thanks guys. It's nice to see the last function style macros disappear from omptarget-nvptx. This means all the CUDA_VERSION tests are now localised to target_impl.h,