Use this function to prevent the compiler from reordering reads and writes to globally visible variables across the call.
void SDL_CompilerBarrier(void)
This function only prevents the compiler from reordering reads and writes, it does not prevent the CPU from reordering reads and writes. However, all of the atomic operations that modify memory are full memory barriers.
This function is used in SDL_AtomicGet() and SDL_AtomicGetPtr().