Fix incorrect cast in VisitSYCLUniqueStableNameExpr
Clang language-level address spaces and LLVM pointer address spaces are
not the same thing (even though they will both have a numeric value of
zero in many cases). LangAS is a enum class to avoid implicit conversions,
but eba69b59d1a30dead07da2c279c8ecfd2b62ba9f avoided the compiler error by
adding a static_cast<>. While touching this code, simplify it by using
CreatePointerBitCastOrAddrSpaceCast() which is already a no-op if the types
match.
This changes the code generation for spir64 to place the globals in
the sycl_global addreds space, which maps to addrspace(1).
Globals must reside in sycl_global namespace, which is addrspace(1) for spir* targets.
addrspace(4) represents "generic" address space, which is a placeholder for a specific address space. If we leave it addrspace(4) for global definition, the compiler won't be able to infer genuine address space.