Small nitpick, but is there a reason we didn't implement this like the math functions, i.e. define a function gpu_thread_barrier in the OpenCL C "header"? It might allow us to avoid a special case for Call in the OpenCL target.