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
bsegovia [Mon, 13 Aug 2012 16:42:01 +0000 (16:42 +0000)]
Fixed a bug in register allocator
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
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
bsegovia [Mon, 13 Aug 2012 15:21:35 +0000 (15:21 +0000)]
Fixed constness warning for gcc 4.7
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
Keith Packard [Fri, 10 Aug 2012 01:14:26 +0000 (18:14 -0700)]
Build tests
Signed-off-by: Keith Packard <keithp@keithp.com>
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>
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>
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>
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>
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>
Benjamin Segovia [Sun, 1 Jul 2012 20:44:41 +0000 (20:44 +0000)]
Removed unused file
Benjamin Segovia [Sun, 1 Jul 2012 20:42:01 +0000 (20:42 +0000)]
Removed a test that does not pass yet
Benjamin Segovia [Sun, 1 Jul 2012 19:50:16 +0000 (19:50 +0000)]
Cleaned up SLM code
Conflicts:
utests/CMakeLists.txt
Benjamin Segovia [Sun, 1 Jul 2012 19:25:48 +0000 (19:25 +0000)]
Added missing file
Benjamin Segovia [Sun, 1 Jul 2012 19:20:36 +0000 (19:20 +0000)]
Used a hash map to handle OCL instrinsic functions
Benjamin Segovia [Mon, 25 Jun 2012 01:30:11 +0000 (01:30 +0000)]
Started to support __local and __constant
Benjamin Segovia [Mon, 25 Jun 2012 01:29:35 +0000 (01:29 +0000)]
Started to play with __local and __constant declarations
Benjamin Segovia [Tue, 19 Jun 2012 23:59:18 +0000 (23:59 +0000)]
Removed unused file
Benjamin Segovia [Tue, 19 Jun 2012 21:53:26 +0000 (21:53 +0000)]
Updated and compiled README
Benjamin Segovia [Tue, 19 Jun 2012 21:52:52 +0000 (21:52 +0000)]
Recompiled the documentation
Benjamin Segovia [Tue, 19 Jun 2012 21:50:14 +0000 (21:50 +0000)]
Updated compiled README
Benjamin Segovia [Tue, 19 Jun 2012 21:43:02 +0000 (21:43 +0000)]
Made errors explicit while loading kernels
Benjamin Segovia [Tue, 19 Jun 2012 21:36:09 +0000 (21:36 +0000)]
Fixed a typo in Release
Benjamin Segovia [Tue, 19 Jun 2012 21:17:34 +0000 (21:17 +0000)]
Fix unitialized value in instruction selection
Benjamin Segovia [Tue, 19 Jun 2012 21:16:49 +0000 (21:16 +0000)]
Fixed uninitialized values reported by valgrind
Benjamin Segovia [Tue, 19 Jun 2012 20:43:20 +0000 (20:43 +0000)]
Properly added use of the custom allocators everywhere
Benjamin Segovia [Tue, 19 Jun 2012 20:39:39 +0000 (20:39 +0000)]
Added more information in the README Checked memory leaks
Benjamin Segovia [Tue, 19 Jun 2012 19:56:21 +0000 (19:56 +0000)]
Added missing file while using the blob (TM)
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
Benjamin Segovia [Mon, 18 Jun 2012 04:05:34 +0000 (04:05 +0000)]
Added more info on general plumbering to do
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.
Benjamin Segovia [Sun, 17 Jun 2012 21:40:13 +0000 (21:40 +0000)]
Added more documentation
Benjamin Segovia [Thu, 14 Jun 2012 22:13:10 +0000 (22:13 +0000)]
Started to clean up the headers
Benjamin Segovia [Wed, 13 Jun 2012 22:39:37 +0000 (22:39 +0000)]
Added missing files in the documentation
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)
Benjamin Segovia [Wed, 13 Jun 2012 19:37:19 +0000 (19:37 +0000)]
Implemented the description of the flat address space implementation
Benjamin Segovia [Wed, 13 Jun 2012 00:48:39 +0000 (00:48 +0000)]
Added first documentation on flat address space Compiled markdown files
Benjamin Segovia [Tue, 12 Jun 2012 21:51:44 +0000 (21:51 +0000)]
Fixed README
Benjamin Segovia [Tue, 12 Jun 2012 21:50:53 +0000 (21:50 +0000)]
Added 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
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
Benjamin Segovia [Tue, 12 Jun 2012 21:41:37 +0000 (21:41 +0000)]
Improved markdown syntax for README
Benjamin Segovia [Tue, 12 Jun 2012 18:34:25 +0000 (18:34 +0000)]
Cleaned up the code to enable the blob compilation path
Benjamin Segovia [Tue, 12 Jun 2012 18:33:23 +0000 (18:33 +0000)]
Cleaned up the code from previous unused dependencies Upate the README
Benjamin Segovia [Tue, 12 Jun 2012 04:23:33 +0000 (04:23 +0000)]
s/gen_eu.*/gen_encoder.*/g
Benjamin Segovia [Tue, 12 Jun 2012 04:19:36 +0000 (04:19 +0000)]
s/GenEmitter/GenEncoder/g
Benjamin Segovia [Tue, 12 Jun 2012 04:00:28 +0000 (04:00 +0000)]
Removed unused crap for the final encoding step
Benjamin Segovia [Tue, 12 Jun 2012 03:47:09 +0000 (03:47 +0000)]
Removed even more kludge from previous register allocation
Benjamin Segovia [Tue, 12 Jun 2012 03:38:25 +0000 (03:38 +0000)]
Removed kludge from pre instruction selection era
Benjamin Segovia [Tue, 12 Jun 2012 03:33:32 +0000 (03:33 +0000)]
Removed kludge from previous register allocator
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
Benjamin Segovia [Tue, 12 Jun 2012 00:08:00 +0000 (00:08 +0000)]
Implemented the first phase of the linear scan allocator
Benjamin Segovia [Mon, 11 Jun 2012 19:47:53 +0000 (19:47 +0000)]
Played around for register allocation
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
Benjamin Segovia [Mon, 11 Jun 2012 17:17:41 +0000 (17:17 +0000)]
Implemented the CURBE allocation with the register file allocator
Benjamin Segovia [Mon, 11 Jun 2012 16:34:02 +0000 (16:34 +0000)]
Started to implement proper allocation of curbe entries
Benjamin Segovia [Wed, 6 Jun 2012 21:41:07 +0000 (21:41 +0000)]
Fixed the comment for block coalescing
Benjamin Segovia [Wed, 6 Jun 2012 21:37:39 +0000 (21:37 +0000)]
Started to implement the generic memory allocator used to register allocate the programs
Benjamin Segovia [Wed, 6 Jun 2012 20:05:13 +0000 (20:05 +0000)]
Removed this selection tile crap. It was just a bad idea. Instead use a selection block that basically keeps track of the way basic blocks are encoding while performing the instruction selection
Benjamin Segovia [Wed, 6 Jun 2012 19:29:41 +0000 (19:29 +0000)]
Fixed scalar register encoding for untyped reads and writes
Benjamin Segovia [Tue, 5 Jun 2012 21:44:59 +0000 (21:44 +0000)]
Played around for the new back end boilerplate
Benjamin Segovia [Tue, 5 Jun 2012 21:44:25 +0000 (21:44 +0000)]
Fixed various bug in the new boilerplate (selection / allocation / encoding)
Benjamin Segovia [Tue, 5 Jun 2012 00:21:19 +0000 (00:21 +0000)]
Simplify the new emission code
Benjamin Segovia [Tue, 5 Jun 2012 00:07:51 +0000 (00:07 +0000)]
Finished first implementation of the boiler plate code to separate instruction selection from the rest (final encoding and register allocation). Neither debugged nor activated.
Benjamin Segovia [Tue, 29 May 2012 02:53:18 +0000 (02:53 +0000)]
Added most of the boiler plate for the instruction selection and vector allocation (i.e. the registers that need to be contiguous are allocated together in vectors)
Benjamin Segovia [Sun, 27 May 2012 22:45:30 +0000 (22:45 +0000)]
Prepare the work for proper register allocation (i.e. after instruction selection)
Benjamin Segovia [Sun, 27 May 2012 19:44:45 +0000 (19:44 +0000)]
Move the register allocation in a dedicated class
Benjamin Segovia [Sun, 27 May 2012 16:58:49 +0000 (16:58 +0000)]
Implemented first methods of the gen selection engine
Benjamin Segovia [Tue, 22 May 2012 18:32:23 +0000 (18:32 +0000)]
Fixed compilation
Benjamin Segovia [Tue, 22 May 2012 18:30:53 +0000 (18:30 +0000)]
Started to segment the final code generation into: - instruction selection phase - register allocation - mov insertion - instruction scheduling - instrucition encoding
Started with the instruction selection engine
Benjamin Segovia [Mon, 21 May 2012 17:41:37 +0000 (17:41 +0000)]
Now booleans are encoded with 1 short instead of a vector of shorts.
Benjamin Segovia [Mon, 21 May 2012 16:33:44 +0000 (16:33 +0000)]
Fixed typo in the curbe load for SimContext
Benjamin Segovia [Mon, 21 May 2012 14:52:57 +0000 (14:52 +0000)]
Fixed compilation with gcc 4.7
Benjamin Segovia [Mon, 21 May 2012 04:00:06 +0000 (04:00 +0000)]
Added support for bool to int conversion (that uses a select)
Benjamin Segovia [Mon, 21 May 2012 03:31:57 +0000 (03:31 +0000)]
Fixed a type in a range-based for loop
Benjamin Segovia [Mon, 21 May 2012 03:20:34 +0000 (03:20 +0000)]
Made a systematic of range-based for loops when it is possible
Benjamin Segovia [Mon, 21 May 2012 02:38:53 +0000 (02:38 +0000)]
Replace some C cast by C++ const_cast to make things a bit more pure and clearer...
Benjamin Segovia [Mon, 21 May 2012 02:32:27 +0000 (02:32 +0000)]
s/getInput/getArg/g (just to make things consistent with the previous related renaming)
Benjamin Segovia [Mon, 21 May 2012 02:19:24 +0000 (02:19 +0000)]
Removed unused file
Benjamin Segovia [Mon, 21 May 2012 02:18:01 +0000 (02:18 +0000)]
Added first support for structure kernel arguments (anything bigger than 4 bytes). They work on c++ simulator and regular Gen backend
Benjamin Segovia [Mon, 21 May 2012 02:15:58 +0000 (02:15 +0000)]
Added missing tests and kernels for structure arguments
Benjamin Segovia [Mon, 21 May 2012 02:15:11 +0000 (02:15 +0000)]
Added first support for structure arguments (bigger than 4 bytes for 32 bit Gen) They work for both c++ simulator and Gen back-ends
Benjamin Segovia [Sun, 20 May 2012 19:57:32 +0000 (19:57 +0000)]
Started constant_push handling Started to revamp the custom allocators
Benjamin Segovia [Sun, 20 May 2012 17:44:17 +0000 (17:44 +0000)]
s/input/arg/g
Benjamin Segovia [Sun, 20 May 2012 17:39:17 +0000 (17:39 +0000)]
s/FunctionInput/FunctionArgument/g
Benjamin Segovia [Sat, 19 May 2012 00:28:25 +0000 (00:28 +0000)]
Properly identified the three cases for the function argument
Benjamin Segovia [Fri, 18 May 2012 23:50:31 +0000 (23:50 +0000)]
Fixed a bug in masked gathe for the simulator
Benjamin Segovia [Thu, 17 May 2012 18:06:43 +0000 (18:06 +0000)]
Started to handle structure arguments
Benjamin Segovia [Thu, 17 May 2012 17:44:39 +0000 (17:44 +0000)]
Added some first support for function arguments that are just values (int, short, char and of course pointers)
Benjamin Segovia [Thu, 17 May 2012 17:41:49 +0000 (17:41 +0000)]
Added more tests for function arguments
Benjamin Segovia [Thu, 17 May 2012 15:31:32 +0000 (15:31 +0000)]
Added one more test for the arrays
Benjamin Segovia [Thu, 17 May 2012 14:29:07 +0000 (14:29 +0000)]
Added proper support for stack in Gen backend
Benjamin Segovia [Wed, 16 May 2012 19:23:45 +0000 (19:23 +0000)]
Added missing lowering files
Benjamin Segovia [Wed, 16 May 2012 19:23:13 +0000 (19:23 +0000)]
Added first support for stack Only c++ simulator can handle it right now
Benjamin Segovia [Wed, 16 May 2012 19:22:05 +0000 (19:22 +0000)]
Added first test for stack handling
Benjamin Segovia [Mon, 14 May 2012 18:24:59 +0000 (18:24 +0000)]
Added support for lowering of return instruction
Benjamin Segovia [Mon, 14 May 2012 18:24:39 +0000 (18:24 +0000)]
Added tests for return instruction lowering
Benjamin Segovia [Mon, 14 May 2012 02:37:38 +0000 (02:37 +0000)]
Made mandelbrot pass in the C++ simulator Made (actually) all tests pass in the C++ simulator