LLVM has the existing PTX back-end for creating PTX code out of LLVM bit-code, but now NVIDIA's bringing their new NVPTX back-end to upstream LLVM for integration. First of all, Parallel Thread Execution is an Assembly-like language used by NVIDIA CUDA after taken out of the C-like CUDA code. There's some additional references on NVIDIA's PTX via Wikipedia.
Justin Holewinski of NVIDIA sent to the LLVM developer mailing list the new NVPTX back-end for the community compliments of NVIDIA.
"We at NVIDIA would like to contribute back to the LLVM open-source community by up-streaming the NVPTX back-end for LLVM. This back-end is based on the sources used by NVIDIA, and currently provides significantly more functionality than the current PTX back-end. Some functionality is currently disabled due to dependencies on LLVM core changes that we are also in the process of up-streaming, but the back-end is very usable in its current state and would benefit all current and future users of the LLVM PTX back-end."