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
Benjamin Segovia [Mon, 14 May 2012 02:36:38 +0000 (02:36 +0000)]
Added support for byte registers in the simulator Added byte scatters / gathers in the simulator Added conversion instructions in the simulator
Benjamin Segovia [Sun, 13 May 2012 17:58:26 +0000 (17:58 +0000)]
Added support for loads and stores of uint2/3/4
Benjamin Segovia [Sun, 13 May 2012 17:57:02 +0000 (17:57 +0000)]
Added tests for uint2/3/4 loads / stores and unaligned versions of them
Benjamin Segovia [Fri, 11 May 2012 19:35:31 +0000 (19:35 +0000)]
Made Mandelbrot work on Fulsim (SIMD8 only right now)
Benjamin Segovia [Fri, 11 May 2012 19:34:44 +0000 (19:34 +0000)]
Fixed FP division
Benjamin Segovia [Fri, 11 May 2012 18:03:15 +0000 (18:03 +0000)]
Added load immediates of bytes and shorts
Benjamin Segovia [Fri, 11 May 2012 18:03:02 +0000 (18:03 +0000)]
Added tests for load immediates of bytes and shorts
Benjamin Segovia [Fri, 11 May 2012 17:50:38 +0000 (17:50 +0000)]
Added tests for shorts and bytes operations
Benjamin Segovia [Fri, 11 May 2012 17:25:07 +0000 (17:25 +0000)]
Simplified a lot the encoding and the back end. Added support for bytes
Benjamin Segovia [Fri, 11 May 2012 17:24:24 +0000 (17:24 +0000)]
Activated all the tests. Byte conversion now works fine
Benjamin Segovia [Thu, 10 May 2012 20:09:32 +0000 (20:09 +0000)]
Fixed this damn fucking relocation bug!
Benjamin Segovia [Wed, 9 May 2012 13:18:26 +0000 (13:18 +0000)]
Fixed a bug while providing local IDs in the CURBE
Benjamin Segovia [Wed, 9 May 2012 13:15:13 +0000 (13:15 +0000)]
Added first test for byte scatter reads / writes
Benjamin Segovia [Wed, 9 May 2012 12:49:05 +0000 (12:49 +0000)]
Reencode a new surface state to make fulsim happy while using byte scattered reads and writes with flat address space
Benjamin Segovia [Wed, 9 May 2012 12:45:00 +0000 (12:45 +0000)]
Played around with byte scatters / gathers
Benjamin Segovia [Tue, 8 May 2012 14:27:54 +0000 (14:27 +0000)]
Added more bits of byte scatter / gather and started to implement the conversion routines
Benjamin Segovia [Tue, 8 May 2012 12:59:46 +0000 (12:59 +0000)]
Added first bits of byte scattered reads and writes in GenContext Started to clean up code to prepare a full-fledge register allocator
Benjamin Segovia [Tue, 8 May 2012 01:43:55 +0000 (01:43 +0000)]
Removed mandelbrot from the tests
Benjamin Segovia [Tue, 8 May 2012 01:34:52 +0000 (01:34 +0000)]
Fixed a bug in the IR context that created empty blocks
Benjamin Segovia [Tue, 8 May 2012 00:35:39 +0000 (00:35 +0000)]
Start to implement UB GenReg
Benjamin Segovia [Tue, 8 May 2012 00:26:27 +0000 (00:26 +0000)]
Removed more unused encoding stuff related to swizzles
Benjamin Segovia [Tue, 8 May 2012 00:22:46 +0000 (00:22 +0000)]
Removed unused part of the encoding
Benjamin Segovia [Mon, 7 May 2012 23:49:54 +0000 (23:49 +0000)]
Started to implement support for byte and shorts
Benjamin Segovia [Fri, 4 May 2012 19:22:44 +0000 (19:22 +0000)]
Started to implement mandelbrot
Benjamin Segovia [Fri, 4 May 2012 19:22:14 +0000 (19:22 +0000)]
Fixed wrong assertion
Benjamin Segovia [Fri, 4 May 2012 18:29:18 +0000 (18:29 +0000)]
Debugged unstructured branch code
Benjamin Segovia [Fri, 4 May 2012 18:28:46 +0000 (18:28 +0000)]
Added more tests for structured and unstructured branches Debugged the unstructured branch code
Benjamin Segovia [Thu, 3 May 2012 20:37:09 +0000 (20:37 +0000)]
Fixed jumpi encoding problem
Benjamin Segovia [Thu, 3 May 2012 20:17:52 +0000 (20:17 +0000)]
Fixed bug in fwd branch encoding
Benjamin Segovia [Thu, 3 May 2012 19:45:56 +0000 (19:45 +0000)]
Fixed bug in the way to handle masked branches
Benjamin Segovia [Thu, 3 May 2012 19:34:44 +0000 (19:34 +0000)]
Added several tests for unstructured branches
Benjamin Segovia [Thu, 3 May 2012 17:28:49 +0000 (17:28 +0000)]
Cleaned up kernel directory
Benjamin Segovia [Thu, 3 May 2012 17:25:24 +0000 (17:25 +0000)]
Added flat_address_space tests
Benjamin Segovia [Thu, 3 May 2012 17:25:05 +0000 (17:25 +0000)]
Kept on
Benjamin Segovia [Thu, 3 May 2012 17:12:18 +0000 (17:12 +0000)]
Finished the small test framework
Benjamin Segovia [Thu, 3 May 2012 16:24:24 +0000 (16:24 +0000)]
Revamped tests to make them smaller and simpler (and more automatic to use)
Benjamin Segovia [Thu, 3 May 2012 15:14:53 +0000 (15:14 +0000)]
tests -> utests
Benjamin Segovia [Thu, 3 May 2012 15:13:39 +0000 (15:13 +0000)]
Sorted used / unused files in the test directory Made everything c++
Sushma Rao [Thu, 3 May 2012 15:01:29 +0000 (15:01 +0000)]
fix gcc 4.7 compilation issues
Benjamin Segovia [Thu, 3 May 2012 14:50:39 +0000 (14:50 +0000)]
Added some functionalities for the test framework
Benjamin Segovia [Thu, 3 May 2012 14:34:09 +0000 (14:34 +0000)]
Made performance simulator work when using fulsim drm
Benjamin Segovia [Tue, 1 May 2012 23:28:49 +0000 (23:28 +0000)]
Started to revmap the tests to make something easier and faster to use
Benjamin Segovia [Tue, 1 May 2012 20:08:30 +0000 (20:08 +0000)]
Moved tests in a separate directory
Benjamin Segovia [Tue, 1 May 2012 20:01:42 +0000 (20:01 +0000)]
Started to implement unstructured branches in the compiler
Benjamin Segovia [Mon, 30 Apr 2012 19:04:15 +0000 (19:04 +0000)]
Added first support for branches
Benjamin Segovia [Thu, 26 Apr 2012 22:25:25 +0000 (22:25 +0000)]
Added support for BlockIPs
Benjamin Segovia [Thu, 26 Apr 2012 22:25:11 +0000 (22:25 +0000)]
Added first support for BlockIPs
Benjamin Segovia [Thu, 26 Apr 2012 20:30:04 +0000 (20:30 +0000)]
Added support for shorts in the simulator
Benjamin Segovia [Wed, 25 Apr 2012 22:37:42 +0000 (22:37 +0000)]
Played with SIMD8
Benjamin Segovia [Wed, 25 Apr 2012 20:31:03 +0000 (20:31 +0000)]
Align driver code with new way to handle curbe
Benjamin Segovia [Wed, 25 Apr 2012 20:30:48 +0000 (20:30 +0000)]
Simplify the way we handle curbe
Benjamin Segovia [Tue, 24 Apr 2012 20:32:46 +0000 (20:32 +0000)]
Implemented a first quick and dirty mul32x32