SPIRV-LLVM-Translator-19.1.0

Introduction to SPIRV-LLVM-Translator

SPIRV-LLVM-Translator is a tool and a library for bi-directional translation between SPIR-V and LLVM IR.

SPIRV-LLVM-Translator Dependencies

Required

CMake-3.31.0, libxml2-2.13.5, LLVM-19.1.0 (with Clang), SPIRV-Headers-1.3.296.0, and SPIRV-Tools-1.3.296.0

Installation of SPIRV-LLVM-Translator

[Note]

Note

This tarball is v19.1.0.tar.gz. v19.1.0.tar.gz will extract to the directory SPIRV-LLVM-Translator-19.1.0.

Install SPIRV-LLVM-Translator by running the following commands:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr                   \
      -D CMAKE_BUILD_TYPE=Release                    \
      -D CMAKE_SKIP_INSTALL_RPATH=ON                 \
      -D BUILD_SHARED_LIBS=ON                        \
      -D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr \
      -G Ninja .. &&

ninja

To test the results, issue: ninja test.

Now, as the root user:

ninja install

32-bit Installation of SPIRV-LLVM-Translator

First clean the build directory:

rm -rf *

Install lib32-SPIRV-LLVM-Translator by running the following commands:

CC="gcc -m32" CXX="g++ -m32"                         \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig                 \
cmake -D CMAKE_INSTALL_PREFIX=/usr                   \
      -D CMAKE_INSTALL_LIBDIR=lib32                  \
      -D CMAKE_BUILD_TYPE=Release                    \
      -D CMAKE_SKIP_INSTALL_RPATH=ON                 \
      -D BUILD_SHARED_LIBS=ON                        \
      -D LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr \
      -G Ninja .. &&

ninja

Now, as the root user:

DESTDIR=$PWD/DESTDIR ninja install    &&
cp -vr DESTDIR/usr/lib32/* /usr/lib32 &&
rm -rf DESTDIR                        &&
ldconfig

Command Explanations

-DCMAKE_SKIP_INSTALL_RPATH=ON: This switch makes cmake remove hardcoded library search paths (rpath) when installing a binary executable file or a shared library. This package does not need rpath once it's installed into the standard location, and rpath may sometimes cause unwanted effects or even security issues.

-D BUILD_SHARED_LIBS=ON: This switch forces the build system to install shared libraries instead of static libraries.

-D LLVM_EXTERNAL_SPIRV_HEADERS_*: These switches tells the build system that SPIRV-Headers-1.3.296.0 is installed in /usr. This is needed since the build system tries to download and use the downloaded headers not on the system if the switch isn't invoked.

Contents

Installed Programs: llvm-spirv
Installed Libraries: libLLVMSPIRVLib.so
Installed Directories: /usr/include/libLLVMSPIRVLib

Short Descriptions

llvm-spirv

translates LLVM bitcode and SPIR-V binaries

libLLVMSPIRVLib.so

contains functions for translating between SPIR-V and LLVM IR