https://github.com/khronosgroup/spir
https://github.com/khronosgroup/spir
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/khronosgroup/spir
- Owner: KhronosGroup
- License: other
- Created: 2013-12-09T18:46:48.000Z (over 12 years ago)
- Default Branch: spir_12
- Last Pushed: 2021-08-24T15:09:37.000Z (almost 5 years ago)
- Last Synced: 2025-05-07T10:18:19.476Z (about 1 year ago)
- Language: C++
- Size: 103 MB
- Stars: 179
- Watchers: 70
- Forks: 49
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE.TXT
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
SPIR generator/Clang Installation Instructions
==============================================
These instructions describe how to build, install and operate SPIR generator Clang.
-----------------------
Step 1: Organization
-----------------------
SPIR generator/Clang is designed to be built as part of an LLVM build.
SPIR generator/Clang is based on LLVM/Clang version 3.2.
The LLVM source code could be downloaded from .
It is also available directly from the LLVM svn server:
```bash
svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_32/final llvm
```
Or could be cloned from LLVM git repository:
```bash
git clone http://llvm.org/git/llvm.git llvm
cd llvm
git checkout --track -b release_32 remotes/origin/release_32
```
Assuming that the LLVM source code is located at **$LLVM_SRC_ROOT**, then the clang
source code should be installed as: **$LLVM_SRC_ROOT/tools/clang**.
The directory is not required to be called clang, but doing so will allow the
LLVM build system to automatically recognize it and build it along with LLVM.
```bash
cd $LLVM_SRC_ROOT/tools
git clone https://github.com/KhronosGroup/SPIR clang
cd clang
git checkout --track -b spir_12 remotes/origin/spir_12
```
--------------------------------
Step 2: Configure and Build LLVM
--------------------------------
Configure and build your copy of LLVM (see **$LLVM_SRC_ROOT/GettingStarted.html** for more information).
Assuming you installed clang at **$LLVM_SRC_ROOT/tools/clang** then Clang will
automatically be built with LLVM. Otherwise, run `make` in the Clang source
directory to build Clang.
* **Note**: currently there might be failures in check_clang project.
------------------------------------
Step 3: (Optional) Verify Your Build
------------------------------------
It is a good idea to run the Clang tests to make sure your build works
correctly. From inside the Clang build directory, run `make test` to run the
tests.
---------------------
Step 4: Install Clang
---------------------
If you wish to run Clang from the generated binary directory, you may skip this
section.
From inside the Clang build directory, run `make install` to install the Clang
compiler and header files into the prefix directory selected when LLVM was
configured.
The Clang compiler is available as `clang` and `clang++`. It supports a gcc
like command line interface. See the man page for clang (installed into
$prefix/share/man/man1) for more information.
------------------------------
Step 5: Creating SPIR binaries
------------------------------
To create a SPIR binary from a valid OpenCL-C file (.cl), use the following
command lines:
```bash
clang -cc1 -emit-llvm-bc -triple -cl-spir-compile-options "" -include -o
```
* ``: for 32 bit SPIR use spir-unknown-unknown, for 64 bit SPIR use spir64-unknown-unknown.
* **Note**: `` appears twice. The command line option `-cl-spir-compile-options ""` specifies the compile options that occur in the SPIR metadata.
* : download opencl_spir.h from https://github.com/KhronosGroup/SPIR-Tools/blob/master/headers/opencl_spir.h
* -O: -O0 (default) is the only tested option value at the moment. It's assumed by design that all optimizations are executed by SPIR consumer.
----------------
Reporting issues
----------------
Bugs/feature requests can be filed via [github](https://github.com/KhronosGroup/SPIR/issues) or [Khronos Bugzilla](https://www.khronos.org/bugzilla/) bug tracker.