LLVM tagged news

A libre-licensed software implementation of Vulkan has started up again. Originally started in c++ in 2017, for a reimplementation Rust has been chosen for its concurrency and memory-safety features, and Rust's LLVM support makes it highly portable. With OpenGL having both llvmpipe and MesaGL for fallback and testing purposes, it seems strange that there does not exist a corresponding Reference Implementation for Vulkan: the only implementations available are in hardware, making it extremely challenging for anyone considering entering the market. Kazan helps fill that gap. Sponsorship of this entirely libre-licensed project welcomed.

The Khronos Group has made public the SPIRV LLVM Translator Github repository which contains source code for the LLVM/SPIR-V Bi-Directional Translator, a library for translating between LLVM and SPIR-V. The LLVM/SPIR-V Bi-Directional Translator is open source software.

Portable OpenCL (pocl) is a MIT-licensed open source implementation of the OpenCL standard which can be easily adapted for new targets and devices, both for homogeneous CPU and heterogenous GPUs/accelerators. pocl uses Clang as an OpenCL C frontend and LLVM for the kernel compiler implementation, and as a portability layer. Thus, if your desired target has an LLVM backend, it should be able to get OpenCL support easily by using pocl.

In a quiet post on the LLVMdev mailing list, it was announced that AMD is going Open Source with the AMD IL Code Generator which is compatible with LLVM 2.9. Also, video and slides from the recent 2011 LLVM Developers' Meeting are starting to appear online. Including SKIR: Just-in-Time Compilation for Parallelism with LLVM, Univeristy of Colorado; Intel OpenCL SDK Vectorizer, Intel; Polly - First successful optimizations - How to proceed?, ENS/INRIA and finally Symbolic Testing of OpenCL Code from Imperial College London.

Carlos Sánchez de La Lama announced Portable OpenCL on the LLVM development list. The Portable OpenCL project is self-described as "an open source implementation of the OpenCL standard which can be easily adapted for new targets. One of the goals of the project is improving performance portability of OpenCL programs, avoiding the need for target-dependent manual optimizations. A "native" target is included, which allows running OpenCL kernels on the host (CPU)." The source code is available online.