SPIR has been the initiative for binary compatibility among OpenCL device programs by coming up with a generic intermediate representation to be supported by the different OpenCL implementations. Standard Portable Intermediate Representation (SPIR) is based upon the already quite well received LLVM IR.
The SPIR 1.2 specification announced today provides non-source encoding and binary level portability for OpenCL 1.2 programs. Besides the new specification they're putting otu today, the Khronos Group is also publishing code to a modified Clang 3.2 compiler that can generate SPIR from OpenCL C 1.2 programs, a SPIR module written as an LLVM pass, and a header file with all enumerated values of the SPIR 1.2 specification.
More details on the Khronos Group SPIR 1.2 work can be found at Khronos.org.