summaryrefslogtreecommitdiff
path: root/backend/README.md
diff options
context:
space:
mode:
authorBenjamin Segovia <devnull@localhost>2012-06-12 21:50:33 +0000
committerKeith Packard <keithp@keithp.com>2012-08-10 16:18:31 -0700
commit71482d07eb2221ada9e2e138c63f12e2c5512e5d (patch)
tree164e1c8e2b366e2dc2bf1cb8d44d46e87eb264c2 /backend/README.md
parentc2ea0ee21e2a2790a413c614bdf7a154c5886842 (diff)
downloadbeignet-71482d07eb2221ada9e2e138c63f12e2c5512e5d.tar.gz
Added the markdown extension to the README file
Diffstat (limited to 'backend/README.md')
-rw-r--r--backend/README.md64
1 files changed, 64 insertions, 0 deletions
diff --git a/backend/README.md b/backend/README.md
new file mode 100644
index 00000000..9483d7e0
--- /dev/null
+++ b/backend/README.md
@@ -0,0 +1,64 @@
+OpenCL Compiler
+===============
+
+This code base contains the compiler part of the complete OpenCL stack. The
+run-time is not in this code base and is developed inside "OpenCL runtime"
+project. The compiler is responsible to take a OpenCL language string and to
+compile it into a binary that can be executed on Intel integrated GPUs.
+
+How to build
+------------
+
+The project uses CMake with three profiles:
+
+ 1. Debug (-g)
+ 2. RelWithDebInfo (-g with optimizations)
+ 3. Release (only optimizations)
+Basically, from the root directory of the project
+
+`> mkdir build`
+
+`> ccmake ../ # to configure`
+
+Choose whatever you want for the build
+
+Then press 'c' to configure and 'g' to generate the code
+
+`> make`
+
+The project only depends on LLVM (Low-Level Virtual Machine project). Right
+now, the code has only been compiled with LLVM 3.0. It will not compile with
+any thing older. A small amount of work should be required to make it work
+with LLVM 3.1 but the port is not done. LLVM 3.0 can be downloaded at:
+
+[http://llvm.org/releases/](http://llvm.org/releases/)
+
+Be careful and download LLVM *3.0*
+
+How to run
+----------
+
+There is nothing to do to run it. However, unit tests can be compiled (by
+setting GBE_COMPILE_UTESTS to true). Once compiled, you can simply run
+
+`> ./tester # to run the unit tests`
+
+Limitations
+-----------
+
+Today, the compiler is far from complete. See doc/TODO.md for a (incomplete)
+lists of things to do.
+
+Implementation details
+----------------------
+
+Several key decisions may use the hardware in an usual way. See the following
+documents for the technical details about the compiler implementation:
+
+- [Flat address space](doc/flat\_address\_space)
+- [Unstructured branches](doc/unstructured\_branches)
+- [Scalar intermediate representation](doc/gen\_ir)
+- [Clean backend implementation](doc/backend)
+
+Ben Segovia <benjamin.segovia@intel.com>
+