contrib/beignet.git
11 years ago- Made ribbon test pass (still need to generate the golden image)
Benjamin Segovia [Sat, 3 Nov 2012 02:36:17 +0000 (19:36 -0700)]
- Made ribbon test pass (still need to generate the golden image)
- Fixed a corner case with the register allocator. Actually, the insn selection is
able to remove dead code automatically. So, I handle this case now.
- Added a first support for undef values in vectors in the llvm to gen IR
compiler

11 years agoAdd support for insertion into vector of constants
Benjamin Segovia [Sat, 3 Nov 2012 01:42:03 +0000 (18:42 -0700)]
Add support for insertion into vector of constants

11 years agoMade compiler_clod pass. The image is now properly computed.
Benjamin Segovia [Sat, 3 Nov 2012 00:55:20 +0000 (17:55 -0700)]
Made compiler_clod pass. The image is now properly computed.
I basically added a bunch of new intrinsics and cleaned a bit the ocl std
library. Well, it is not going to be compliant for a while with the spec (mostly
due to precision issues and the way denormals and nan are handled). But,
it should do the job for now.
Started to add a more complex test called "ribbon"

11 years agoRemoved outdated html documentation files. Markdown files are OK.
Benjamin Segovia [Fri, 2 Nov 2012 21:25:42 +0000 (14:25 -0700)]
Removed outdated html documentation files. Markdown files are OK.

11 years agoChanged name of CMake utest program to make it match with the "Makefile version"
Benjamin Segovia [Tue, 23 Oct 2012 02:39:02 +0000 (19:39 -0700)]
Changed name of CMake utest program to make it match with the "Makefile version"

11 years agoRemoved c++ simulator documentation since it is going to be deprecated
Benjamin Segovia [Tue, 23 Oct 2012 02:20:46 +0000 (19:20 -0700)]
Removed c++ simulator documentation since it is going to be deprecated
Changed the name to "Beignet" for the complete project

11 years agoRemoved use of exceptions since LLVM may not support them (depending on how it
Benjamin Segovia [Fri, 12 Oct 2012 18:31:31 +0000 (18:31 +0000)]
Removed use of exceptions since LLVM may not support them (depending on how it
is compiled)

11 years agoFixed 32 bit compilation issue. Unfortunately dropped an alignment requirement
Benjamin Segovia [Fri, 12 Oct 2012 17:44:20 +0000 (17:44 +0000)]
Fixed 32 bit compilation issue. Unfortunately dropped an alignment requirement
for the instructions

11 years agoStarted to add geometric functions (see OpenCL spec)
Benjamin Segovia [Wed, 10 Oct 2012 19:26:48 +0000 (19:26 +0000)]
Started to add geometric functions (see OpenCL spec)

11 years agoAdded support for various math functions
Benjamin Segovia [Wed, 10 Oct 2012 19:05:59 +0000 (19:05 +0000)]
Added support for various math functions

11 years agoPushed back original headers we partially lost during the code base merge. Now
Benjamin Segovia [Wed, 10 Oct 2012 15:40:33 +0000 (15:40 +0000)]
Pushed back original headers we partially lost during the code base merge. Now
everything is properly tracked

11 years agoReset mandelbrot dimensions
Benjamin Segovia [Tue, 9 Oct 2012 21:29:39 +0000 (21:29 +0000)]
Reset mandelbrot dimensions

11 years agoFixed select OCL builtin
Benjamin Segovia [Tue, 9 Oct 2012 21:25:24 +0000 (21:25 +0000)]
Fixed select OCL builtin
Added a new mandelbrot (more efficient) still to improve regression and
funtionality coverage

11 years agoFixed a bug in the flag register allocator
Benjamin Segovia [Tue, 9 Oct 2012 20:47:50 +0000 (20:47 +0000)]
Fixed a bug in the flag register allocator
Started to add more brutal test to improve functional regressions. Kind of
needed for big modifications that are going to come
Check switch case lowering functionality

11 years agoSeparate instruction data from the rest to prepare intrusive_list use for
Benjamin Segovia [Mon, 8 Oct 2012 19:47:56 +0000 (19:47 +0000)]
Separate instruction data from the rest to prepare intrusive_list use for
ir::Instruction

11 years agoUsed intrusive_list for SelectionVector
Benjamin Segovia [Mon, 8 Oct 2012 19:39:33 +0000 (19:39 +0000)]
Used intrusive_list for SelectionVector

11 years agoUsed intrusive_list for SelectionBlock
Benjamin Segovia [Mon, 8 Oct 2012 19:33:06 +0000 (19:33 +0000)]
Used intrusive_list for SelectionBlock
Removed some of the verbose and useless foreach

11 years agoUsed intrusive_list for SelectionInstruction
Benjamin Segovia [Mon, 8 Oct 2012 19:14:21 +0000 (19:14 +0000)]
Used intrusive_list for SelectionInstruction

11 years agoAdded some more public functionality for intrusive_list
Benjamin Segovia [Mon, 8 Oct 2012 18:54:23 +0000 (18:54 +0000)]
Added some more public functionality for intrusive_list

11 years agoUsed intrusive_list for forward list instruction scheduling
Benjamin Segovia [Mon, 8 Oct 2012 17:38:37 +0000 (17:38 +0000)]
Used intrusive_list for forward list instruction scheduling

11 years agoAdded intrusive list implementation from Maciej Sinilo (MIT licensed)
Benjamin Segovia [Mon, 8 Oct 2012 16:02:02 +0000 (16:02 +0000)]
Added intrusive list implementation from Maciej Sinilo (MIT licensed)

11 years agoRemoved utest kernels used for the (removed) internal tests
Benjamin Segovia [Mon, 8 Oct 2012 15:20:37 +0000 (15:20 +0000)]
Removed utest kernels used for the (removed) internal tests

11 years agoCleaned up disassembly code to make it used the new files (and not the mesa
Benjamin Segovia [Mon, 8 Oct 2012 15:17:05 +0000 (15:17 +0000)]
Cleaned up disassembly code to make it used the new files (and not the mesa
files I quickly and dirtily included)

11 years agoRemoved compiler internal utests. We now have the OCL unit tests. We do not need
Benjamin Segovia [Mon, 8 Oct 2012 14:51:31 +0000 (14:51 +0000)]
Removed compiler internal utests. We now have the OCL unit tests. We do not need
anymore to test each internal component as we did when the OCL parsing was not
here

11 years agoFixed issue with flag register encoding in instruction scheduling
Benjamin Segovia [Mon, 8 Oct 2012 14:50:47 +0000 (14:50 +0000)]
Fixed issue with flag register encoding in instruction scheduling

11 years agoActivated instruction scheduling
Benjamin Segovia [Mon, 8 Oct 2012 02:00:39 +0000 (02:00 +0000)]
Activated instruction scheduling
Implemented fall back to SIMD8 when register allocation fails
Cleaned up some memory leaks when exception is triggered

11 years agoFixed compilation issue with gcc 4.6
Benjamin Segovia [Mon, 8 Oct 2012 00:59:40 +0000 (00:59 +0000)]
Fixed compilation issue with gcc 4.6

11 years agoHandled null register when scheduling
Benjamin Segovia [Fri, 5 Oct 2012 19:44:16 +0000 (19:44 +0000)]
Handled null register when scheduling
Changed the way accumulator is written in the pre-ISA

11 years agoAlmost finished instruction scheduling. Just need to handle accumulator write
Benjamin Segovia [Thu, 4 Oct 2012 22:08:10 +0000 (22:08 +0000)]
Almost finished instruction scheduling. Just need to handle accumulator write
update when AccWrEn is set

11 years agoFixed bug in growing pool allocator
Benjamin Segovia [Thu, 4 Oct 2012 22:03:35 +0000 (22:03 +0000)]
Fixed bug in growing pool allocator

11 years agoFixed read/write dependencies for the insn scheduler
Benjamin Segovia [Thu, 4 Oct 2012 21:12:53 +0000 (21:12 +0000)]
Fixed read/write dependencies for the insn scheduler

11 years agoStarted to make instruction scheduling work
Benjamin Segovia [Tue, 2 Oct 2012 19:46:42 +0000 (19:46 +0000)]
Started to make instruction scheduling work

11 years agoFirst implementation (untested) of instruction scheduling. Now it is pretty
Benjamin Segovia [Fri, 21 Sep 2012 20:46:06 +0000 (20:46 +0000)]
First implementation (untested) of instruction scheduling. Now it is pretty
clear that a clean and generic implementation of intrusive_list is *overdue*

11 years agoRemoved unused files
Benjamin Segovia [Wed, 19 Sep 2012 20:40:10 +0000 (20:40 +0000)]
Removed unused files
Added extra functionalities to debug special allocator with valgrind

11 years agoCleaned up instruction selection interface. Push everything back to the cpp
Benjamin Segovia [Wed, 19 Sep 2012 20:07:36 +0000 (20:07 +0000)]
Cleaned up instruction selection interface. Push everything back to the cpp
using opaque implementation.
The selection implementation is a big blob now to split up

11 years agoCleaned up register allocator interface to limit dependencies
Benjamin Segovia [Wed, 19 Sep 2012 17:59:23 +0000 (17:59 +0000)]
Cleaned up register allocator interface to limit dependencies
It uses now a pimpl interface

11 years agoMade SelectionInstruction variable sized
Benjamin Segovia [Wed, 19 Sep 2012 17:32:39 +0000 (17:32 +0000)]
Made SelectionInstruction variable sized
Also used a linear allocator for them (for fast variable size allocation)

11 years agoImplemented linear allocator to have both fast instruction allocation and
Benjamin Segovia [Wed, 19 Sep 2012 17:12:49 +0000 (17:12 +0000)]
Implemented linear allocator to have both fast instruction allocation and
variable size for them
Started to revamp SelectionInstruction to make them variable sized

11 years agoStarted to implemented instruction scheduling
Benjamin Segovia [Tue, 18 Sep 2012 20:03:01 +0000 (20:03 +0000)]
Started to implemented instruction scheduling

11 years agoImproved MOVs generation while resolving PHIs
Benjamin Segovia [Tue, 18 Sep 2012 18:52:51 +0000 (18:52 +0000)]
Improved MOVs generation while resolving PHIs

11 years agoFixed a warning with gcc 4.7 related to the use of zero sized arrays...
bsegovia [Mon, 17 Sep 2012 18:36:47 +0000 (18:36 +0000)]
Fixed a warning with gcc 4.7 related to the use of zero sized arrays...

11 years agoImplemented greedy instruction on DAG. The idea is mostly to merge instructions
bsegovia [Mon, 17 Sep 2012 18:33:55 +0000 (18:33 +0000)]
Implemented greedy instruction on DAG. The idea is mostly to merge instructions
bottom to top marking instructions to be generated on the fly
Several patterns are implemented like using immediates as the second source or
merging mul and add into mads

Actually implemented the MAD encoding at the same time.

11 years agoAdded proper flag register allocation. Flag are spilled into GRFs. The spilling
bsegovia [Mon, 17 Sep 2012 18:01:32 +0000 (18:01 +0000)]
Added proper flag register allocation. Flag are spilled into GRFs. The spilling
code is not reaaly efficient i.e. sometimes the spilling can be avoided in a
basic block but it is still done. The idea is to improve that when the general
GRF spilling will be implemented. Right now, it works, so it is good enough

11 years agoPushed back modified files for Gen extension support
bsegovia [Mon, 17 Sep 2012 15:53:57 +0000 (15:53 +0000)]
Pushed back modified files for Gen extension support
Added tests in CMake files

11 years agoAdded support for some Gen extensions. The idea is mostly to play with Gen
bsegovia [Mon, 17 Sep 2012 12:46:31 +0000 (12:46 +0000)]
Added support for some Gen extensions. The idea is mostly to play with Gen
specific hardware and propose simple way to use them. We have three extensions
here:
- Gen register regions. This allows us to perform strided loads in the register
file. To implement that on top of OCL, the idea is to encapsulate them in a
function with a side effect. Not really clean but it works.
- Gen gather from register file. Same idea but here we simply gather data from
a bunch of registers
- Vote any/all. This is basically the same idea as ptx i.e. uniform predicates
for branches.
- block read/write. Just to play with uniform load/store messages

I added a bunch of tests for all that and fix thing here and there to make them
work

11 years agoFixed a bug in register allocator
bsegovia [Mon, 13 Aug 2012 16:42:01 +0000 (16:42 +0000)]
Fixed a bug in register allocator

11 years agoFixed a bug with LLVM alloca
bsegovia [Mon, 13 Aug 2012 16:33:09 +0000 (16:33 +0000)]
Fixed a bug with LLVM alloca
Fixed CFG linearization
Fixed a bug with function stack

11 years agoReenabled the CMake build path. It is really imperfect and the build CMake
bsegovia [Mon, 13 Aug 2012 16:17:43 +0000 (16:17 +0000)]
Reenabled the CMake build path. It is really imperfect and the build CMake
scripts should be cleanly unified later

11 years agoFixed constness warning for gcc 4.7
bsegovia [Mon, 13 Aug 2012 15:21:35 +0000 (15:21 +0000)]
Fixed constness warning for gcc 4.7

11 years agoFixed build by adding LLVM library directory
bsegovia [Mon, 13 Aug 2012 14:52:52 +0000 (14:52 +0000)]
Fixed build by adding LLVM library directory
Removed unnecessary dependencies to LLVM for libcl.so

11 years agoBuild tests
Keith Packard [Fri, 10 Aug 2012 01:14:26 +0000 (18:14 -0700)]
Build tests

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoFix build order between backend and cl library
Keith Packard [Fri, 10 Aug 2012 00:50:07 +0000 (17:50 -0700)]
Fix build order between backend and cl library

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoBuild .so and .so.0 versions of libgbe
Keith Packard [Fri, 10 Aug 2012 00:41:36 +0000 (17:41 -0700)]
Build .so and .so.0 versions of libgbe

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoBuild backend before main library
Keith Packard [Thu, 12 Jul 2012 18:08:03 +0000 (11:08 -0700)]
Build backend before main library

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoCreate make-based build infrastructure
Keith Packard [Thu, 12 Jul 2012 17:50:28 +0000 (10:50 -0700)]
Create make-based build infrastructure

It's simple, but it works on linux at least.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoCreate make-based build infrastructure
Keith Packard [Thu, 12 Jul 2012 16:58:30 +0000 (09:58 -0700)]
Create make-based build infrastructure

Fairly simplistic, but does the job for Linux at least.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoRemoved unused file
Benjamin Segovia [Sun, 1 Jul 2012 20:44:41 +0000 (20:44 +0000)]
Removed unused file

11 years agoRemoved a test that does not pass yet
Benjamin Segovia [Sun, 1 Jul 2012 20:42:01 +0000 (20:42 +0000)]
Removed a test that does not pass yet

11 years agoCleaned up SLM code
Benjamin Segovia [Sun, 1 Jul 2012 19:50:16 +0000 (19:50 +0000)]
Cleaned up SLM code

Conflicts:
utests/CMakeLists.txt

11 years agoAdded missing file
Benjamin Segovia [Sun, 1 Jul 2012 19:25:48 +0000 (19:25 +0000)]
Added missing file

11 years agoUsed a hash map to handle OCL instrinsic functions
Benjamin Segovia [Sun, 1 Jul 2012 19:20:36 +0000 (19:20 +0000)]
Used a hash map to handle OCL instrinsic functions

11 years agoStarted to support __local and __constant
Benjamin Segovia [Mon, 25 Jun 2012 01:30:11 +0000 (01:30 +0000)]
Started to support __local and __constant

11 years agoStarted to play with __local and __constant declarations
Benjamin Segovia [Mon, 25 Jun 2012 01:29:35 +0000 (01:29 +0000)]
Started to play with __local and __constant declarations

11 years agoRemoved unused file
Benjamin Segovia [Tue, 19 Jun 2012 23:59:18 +0000 (23:59 +0000)]
Removed unused file

11 years agoUpdated and compiled README
Benjamin Segovia [Tue, 19 Jun 2012 21:53:26 +0000 (21:53 +0000)]
Updated and compiled README

11 years agoRecompiled the documentation
Benjamin Segovia [Tue, 19 Jun 2012 21:52:52 +0000 (21:52 +0000)]
Recompiled the documentation

11 years agoUpdated compiled README
Benjamin Segovia [Tue, 19 Jun 2012 21:50:14 +0000 (21:50 +0000)]
Updated compiled README

11 years agoMade errors explicit while loading kernels
Benjamin Segovia [Tue, 19 Jun 2012 21:43:02 +0000 (21:43 +0000)]
Made errors explicit while loading kernels

11 years agoFixed a typo in Release
Benjamin Segovia [Tue, 19 Jun 2012 21:36:09 +0000 (21:36 +0000)]
Fixed a typo in Release

11 years agoFix unitialized value in instruction selection
Benjamin Segovia [Tue, 19 Jun 2012 21:17:34 +0000 (21:17 +0000)]
Fix unitialized value in instruction selection

11 years agoFixed uninitialized values reported by valgrind
Benjamin Segovia [Tue, 19 Jun 2012 21:16:49 +0000 (21:16 +0000)]
Fixed uninitialized values reported by valgrind

11 years agoProperly added use of the custom allocators everywhere
Benjamin Segovia [Tue, 19 Jun 2012 20:43:20 +0000 (20:43 +0000)]
Properly added use of the custom allocators everywhere

11 years agoAdded more information in the README Checked memory leaks
Benjamin Segovia [Tue, 19 Jun 2012 20:39:39 +0000 (20:39 +0000)]
Added more information in the README Checked memory leaks

11 years agoAdded missing file while using the blob (TM)
Benjamin Segovia [Tue, 19 Jun 2012 19:56:21 +0000 (19:56 +0000)]
Added missing file while using the blob (TM)

11 years agoSpell-checked the documentation Added a TODO entry for uniform analysis and uniform...
Benjamin Segovia [Tue, 19 Jun 2012 00:21:29 +0000 (00:21 +0000)]
Spell-checked the documentation Added a TODO entry for uniform analysis and uniform loads and samples

11 years agoAdded more info on general plumbering to do
Benjamin Segovia [Mon, 18 Jun 2012 04:05:34 +0000 (04:05 +0000)]
Added more info on general plumbering to do

11 years agoAdded support for disassembling Gen ISA (instead of just using Fulsim...). It is...
Benjamin Segovia [Mon, 18 Jun 2012 03:54:26 +0000 (03:54 +0000)]
Added support for disassembling Gen ISA (instead of just using Fulsim...). It is quick and dirty since I copied files directly from Mesa (and therefore, I duplicated Gen structures and defines)

Added more stuff in the documentation.

11 years agoAdded more documentation
Benjamin Segovia [Sun, 17 Jun 2012 21:40:13 +0000 (21:40 +0000)]
Added more documentation

11 years agoStarted to clean up the headers
Benjamin Segovia [Thu, 14 Jun 2012 22:13:10 +0000 (22:13 +0000)]
Started to clean up the headers

11 years agoAdded missing files in the documentation
Benjamin Segovia [Wed, 13 Jun 2012 22:39:37 +0000 (22:39 +0000)]
Added missing files in the documentation

11 years agoAdded more stuff in the documentation (mostly on how the branching code is handled...
Benjamin Segovia [Wed, 13 Jun 2012 22:38:31 +0000 (22:38 +0000)]
Added more stuff in the documentation (mostly on how the branching code is handled in the compiler)

11 years agoImplemented the description of the flat address space implementation
Benjamin Segovia [Wed, 13 Jun 2012 19:37:19 +0000 (19:37 +0000)]
Implemented the description of the flat address space implementation

11 years agoAdded first documentation on flat address space Compiled markdown files
Benjamin Segovia [Wed, 13 Jun 2012 00:48:39 +0000 (00:48 +0000)]
Added first documentation on flat address space Compiled markdown files

11 years agoFixed README
Benjamin Segovia [Tue, 12 Jun 2012 21:51:44 +0000 (21:51 +0000)]
Fixed README

11 years agoAdded the markdown extension to the README file
Benjamin Segovia [Tue, 12 Jun 2012 21:50:53 +0000 (21:50 +0000)]
Added the markdown extension to the README file

11 years agoAdded the markdown extension to the README file
Benjamin Segovia [Tue, 12 Jun 2012 21:50:33 +0000 (21:50 +0000)]
Added the markdown extension to the README file

11 years agoFixed a exception safety issue in the LLVM to GenIR translation Added a markdown...
Benjamin Segovia [Tue, 12 Jun 2012 21:50:06 +0000 (21:50 +0000)]
Fixed a exception safety issue in the LLVM to GenIR translation Added a markdown readme file

11 years agoImproved markdown syntax for README
Benjamin Segovia [Tue, 12 Jun 2012 21:41:37 +0000 (21:41 +0000)]
Improved markdown syntax for README

11 years agoCleaned up the code to enable the blob compilation path
Benjamin Segovia [Tue, 12 Jun 2012 18:34:25 +0000 (18:34 +0000)]
Cleaned up the code to enable the blob compilation path

11 years agoCleaned up the code from previous unused dependencies Upate the README
Benjamin Segovia [Tue, 12 Jun 2012 18:33:23 +0000 (18:33 +0000)]
Cleaned up the code from previous unused dependencies Upate the README

11 years agos/gen_eu.*/gen_encoder.*/g
Benjamin Segovia [Tue, 12 Jun 2012 04:23:33 +0000 (04:23 +0000)]
s/gen_eu.*/gen_encoder.*/g

11 years agos/GenEmitter/GenEncoder/g
Benjamin Segovia [Tue, 12 Jun 2012 04:19:36 +0000 (04:19 +0000)]
s/GenEmitter/GenEncoder/g

11 years agoRemoved unused crap for the final encoding step
Benjamin Segovia [Tue, 12 Jun 2012 04:00:28 +0000 (04:00 +0000)]
Removed unused crap for the final encoding step

11 years agoRemoved even more kludge from previous register allocation
Benjamin Segovia [Tue, 12 Jun 2012 03:47:09 +0000 (03:47 +0000)]
Removed even more kludge from previous register allocation

11 years agoRemoved kludge from pre instruction selection era
Benjamin Segovia [Tue, 12 Jun 2012 03:38:25 +0000 (03:38 +0000)]
Removed kludge from pre instruction selection era

11 years agoRemoved kludge from previous register allocator
Benjamin Segovia [Tue, 12 Jun 2012 03:33:32 +0000 (03:33 +0000)]
Removed kludge from previous register allocator

11 years agoFirst working implementation of linear scan register allocator Spilling is still...
Benjamin Segovia [Tue, 12 Jun 2012 03:27:19 +0000 (03:27 +0000)]
First working implementation of linear scan register allocator Spilling is still TODO

11 years agoImplemented the first phase of the linear scan allocator
Benjamin Segovia [Tue, 12 Jun 2012 00:08:00 +0000 (00:08 +0000)]
Implemented the first phase of the linear scan allocator

11 years agoPlayed around for register allocation
Benjamin Segovia [Mon, 11 Jun 2012 19:47:53 +0000 (19:47 +0000)]
Played around for register allocation

11 years agoUsed first bits the register file memory allocator in the Gen register allocator
Benjamin Segovia [Mon, 11 Jun 2012 19:33:50 +0000 (19:33 +0000)]
Used first bits the register file memory allocator in the Gen register allocator