summaryrefslogtreecommitdiff
path: root/docs/Beignet
diff options
context:
space:
mode:
authorZhigang Gong <zhigang.gong@linux.intel.com>2013-06-25 18:34:34 +0800
committerZhigang Gong <zhigang.gong@linux.intel.com>2013-07-05 17:44:55 +0800
commit0ee1d4246f4d3578de4c446cb1836fcfe420c880 (patch)
treec8e2c780ff1205884e39f6b718ebcfa48321a033 /docs/Beignet
parent5d6d9428ec799aa90a076e5ab7a109b8b06df3ad (diff)
Update beignet docs for release v0.2.
Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Diffstat (limited to 'docs/Beignet')
-rw-r--r--docs/Beignet/Backend/TODO.mdwn34
1 files changed, 10 insertions, 24 deletions
diff --git a/docs/Beignet/Backend/TODO.mdwn b/docs/Beignet/Backend/TODO.mdwn
index 3f1ccb4c..f14433de 100644
--- a/docs/Beignet/Backend/TODO.mdwn
+++ b/docs/Beignet/Backend/TODO.mdwn
@@ -25,31 +25,19 @@ many things must be implemented:
- Lowering down of various intrinsics like `llvm.memcpy`
-- Conformance test for all OpenCL built-ins (`native_cos`, `native_sin`,
- `mad`, atomic operations, barriers...).
-
-- Lowering down of int16 / int8 / float16 / char16 / char8 / char4 loads and
- stores into the supported loads and stores
-
-- Support for local declaration of local array (the OpenCL profile will properly
- declare them as global arrays)
-
-- Support for doubles
-
-- Support atomic extensions.
-
- Better resolving of the PHI functions. Today, we always generate MOV
instructions at the end of each basic block . They can be easily optimized.
+- From LLVM 3.3, we use SPIR IR. We need to use the compiler defined type to
+ represent sampler_t/image2d_t/image1d_t/....
+
+- Adding support for long (int64).
+
Gen IR
------
The code is defined in `src/ir`. Main things to do are:
-- Bringing support for doubles
-
-- Adding support for atomic extensions.
-
- Finishing the handling of function arguments (see the [[IR
description|gen_ir]] for more details)
@@ -68,14 +56,14 @@ The code is defined in `src/ir`. Main things to do are:
This will obviously impact both instruction selection and the register
allocation.
+- Adding support for long (int64).
+
Backend
-------
The code is defined in `src/backend`. Main things to do are:
-- Implementing support for doubles
-
-- Implementing atomic extensions.
+- Int64 support?
- Implementing register spilling (see the [[compiler backend
description|compiler_backend]] for more details)
@@ -99,10 +87,8 @@ I also purely and simply copied and pasted the Gen ISA disassembler from Mesa.
This leads to code duplication. Also some messages used by OpenCL (untyped reads
and writes) are not properly decoded yet.
-There are some quick and dirty hacks also like the use of function call `system`
-(...). This should be cleanly replaced by popen and stuff. I also directly
-called the LLVM compiler executable instead of using Clang library. All of this
-should be improved and cleaned up. Track "XXX" comments in the code.
+All of those code should be improved and cleaned up are tracked with "XXX"
+comments in the code.
Parts of the code leaks memory when exceptions are used. There are some pointers
to track and replace with std::unique_ptr. Note that we also add a custom memory