[Chapel Merge] Do not gpuize call to atomic_init_bool

Branch: refs/heads/main
Revision: 11b3a27
Author: stonea
Link: Do not gpuize call to atomic_init_bool by stonea · Pull Request #20356 · chapel-lang/chapel · GitHub
Log Message:

Merge pull request #20356 from stonea/gpu_no_gpuize_atomic_init_call

Do not gpuize call to atomic_init_bool

This should resolve this failure: https://chapel.discourse.group/t/cron-cray-cs-gpu-native/14597

Basically with #20342 (Exempt field access from outside data check) we end up trying to gpuize more module code and some of that code ends up calling an extern (atomic_init_bool) that we don't have a device version of.

Long term we might want to create a proper device version of the function but in the short term I think it makes sense to just say we don't care to gpuize anything that calls out to that function.
To do this I've applied atomic_init_bool to where we declare the extern in the module code and broadened the definition of the "no gpu codegen" pragma to mean "don't gpuize anything that calls this function" in addition to "don't gpuize any loops in this function"

[Reviewed by @e-kayrakli]

Modified Files:
M compiler/optimizations/gpuTransforms.cpp

M modules/internal/Atomics.chpl

Compare: https://github.com/chapel-lang/chapel/compare/98dccc4c7dbd...11b3a27d9013