diff options
author | Zhigang Gong <zhigang.gong@linux.intel.com> | 2013-06-25 18:34:34 +0800 |
---|---|---|
committer | Zhigang Gong <zhigang.gong@linux.intel.com> | 2013-07-05 17:44:55 +0800 |
commit | 0ee1d4246f4d3578de4c446cb1836fcfe420c880 (patch) | |
tree | c8e2c780ff1205884e39f6b718ebcfa48321a033 /docs/Beignet | |
parent | 5d6d9428ec799aa90a076e5ab7a109b8b06df3ad (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.mdwn | 34 |
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 |