Benjamin Segovia [Mon, 9 Apr 2012 10:59:54 +0000 (03:59 -0700)]
Started to implement the vector library for the c++ backend
Benjamin Segovia [Mon, 9 Apr 2012 10:58:55 +0000 (03:58 -0700)]
Kept on experimenting with c++ backend
Benjamin Segovia [Mon, 9 Apr 2012 05:53:00 +0000 (22:53 -0700)]
Added more pieces for the SW emulation of the stack
Benjamin Segovia [Mon, 9 Apr 2012 05:51:40 +0000 (22:51 -0700)]
Made most of the very basic pieces for the simulation parts
Benjamin Segovia [Sun, 8 Apr 2012 03:34:51 +0000 (20:34 -0700)]
Started to implement curbe support
Benjamin Segovia [Sat, 7 Apr 2012 00:06:16 +0000 (17:06 -0700)]
Fixed issue with new / delete operators
Benjamin Segovia [Sat, 7 Apr 2012 00:05:29 +0000 (17:05 -0700)]
Fix name of callback initializer
Benjamin Segovia [Thu, 5 Apr 2012 19:26:26 +0000 (19:26 +0000)]
Fixed compilation with the current compiler code
Benjamin Segovia [Thu, 5 Apr 2012 19:25:29 +0000 (19:25 +0000)]
Revamp the backend classes to be easily able to output Gen or simulator code
Benjamin Segovia [Wed, 4 Apr 2012 17:57:11 +0000 (17:57 +0000)]
Started to handle cl_mem regular buffers
Benjamin Segovia [Wed, 4 Apr 2012 17:00:22 +0000 (17:00 +0000)]
Improved and simplify file and class naming for the code generation step
Benjamin Segovia [Wed, 4 Apr 2012 16:53:39 +0000 (16:53 +0000)]
Started to simplify backend file directory
Benjamin Segovia [Wed, 4 Apr 2012 15:54:08 +0000 (15:54 +0000)]
Fixed the getCode kernel function for the simulator
Benjamin Segovia [Wed, 4 Apr 2012 15:53:49 +0000 (15:53 +0000)]
Made the EOT code run on the simulator
Benjamin Segovia [Tue, 3 Apr 2012 20:32:03 +0000 (20:32 +0000)]
Added a script to support the performance simulator
Benjamin Segovia [Tue, 3 Apr 2012 20:31:11 +0000 (20:31 +0000)]
Implemented some pieces of the GenIR to c++ conversion used by the performance simulator
Benjamin Segovia [Tue, 3 Apr 2012 17:40:41 +0000 (17:40 +0000)]
Made a better c-style interface Improved the base interfaces for both programs and kernels
Benjamin Segovia [Tue, 3 Apr 2012 17:39:46 +0000 (17:39 +0000)]
Adapted properly the driver to the new gen compiler interface
Benjamin Segovia [Tue, 3 Apr 2012 15:44:18 +0000 (15:44 +0000)]
Put sim and gen files into a common sub-directory
Benjamin Segovia [Tue, 3 Apr 2012 15:38:45 +0000 (15:38 +0000)]
Started to implement the interface for the compiler. This will allow us to output either Gen ISA or the performance simulator code
Benjamin Segovia [Fri, 30 Mar 2012 17:45:50 +0000 (17:45 +0000)]
Fixed memory leaks in llvm_to_gen pass
Benjamin Segovia [Fri, 30 Mar 2012 17:45:13 +0000 (17:45 +0000)]
Added all the call backs to support the simulator. The simulator does nothing but works now. Fixed several memory leaks in the simulator code
Benjamin Segovia [Thu, 29 Mar 2012 17:44:38 +0000 (17:44 +0000)]
Made the structure naming more consistent
Benjamin Segovia [Thu, 29 Mar 2012 17:26:36 +0000 (17:26 +0000)]
Removed all direct dependencies to the intel driver (ie files contained in intel/) and replaced them by dependencies to the call backs. This should allow an easier integration with the performance simulator
Benjamin Segovia [Thu, 29 Mar 2012 13:23:08 +0000 (13:23 +0000)]
Started to rename all driver files to make the naming more consistent
Benjamin Segovia [Thu, 29 Mar 2012 13:20:00 +0000 (13:20 +0000)]
Added more call backs to abstract the driver back end
Benjamin Segovia [Wed, 28 Mar 2012 19:18:05 +0000 (19:18 +0000)]
Started to implement the clean interface to support both HW and simulator
Benjamin Segovia [Wed, 28 Mar 2012 18:00:03 +0000 (18:00 +0000)]
Made EOT work correctly Extended public API
Benjamin Segovia [Wed, 28 Mar 2012 17:58:50 +0000 (17:58 +0000)]
Made EOT work on simulator
Benjamin Segovia [Wed, 21 Mar 2012 18:08:32 +0000 (18:08 +0000)]
Added more functions to interface Gen programs
Benjamin Segovia [Wed, 21 Mar 2012 18:07:40 +0000 (18:07 +0000)]
Started to inject the new compiler API
Benjamin Segovia [Wed, 21 Mar 2012 17:28:25 +0000 (17:28 +0000)]
Removed Gen6 Stripped out all dependencies from previous compiler Added a dependency on the new compiler
Benjamin Segovia [Wed, 21 Mar 2012 16:58:59 +0000 (16:58 +0000)]
Started to implement external C interface for the compiler Output a first dummy program
Benjamin Segovia [Wed, 21 Mar 2012 03:57:42 +0000 (20:57 -0700)]
Started to implement Gen code generation
Benjamin Segovia [Tue, 20 Mar 2012 09:54:20 +0000 (02:54 -0700)]
started to implement gen encoding
Benjamin Segovia [Tue, 20 Mar 2012 02:11:28 +0000 (19:11 -0700)]
Added first support for constant vector Recompiled all ocl kernels Fixed problem when a block does not end with a branch Added proper support for special registers and function argument in liveness analysis and function DAG creation
Benjamin Segovia [Mon, 19 Mar 2012 12:10:44 +0000 (05:10 -0700)]
Fixed several bugs in the DAG creation code
Benjamin Segovia [Sat, 17 Mar 2012 11:07:37 +0000 (04:07 -0700)]
Fixed a bug in memory debugger (...) Fixed a stupid bug while releasing FunctionDAG
Benjamin Segovia [Sat, 17 Mar 2012 07:21:05 +0000 (00:21 -0700)]
Fixed auto keyword use
Benjamin Segovia [Fri, 16 Mar 2012 19:38:57 +0000 (19:38 +0000)]
Started to fix problem with blocks that do not end with BRA instructions
Benjamin Segovia [Fri, 16 Mar 2012 19:26:45 +0000 (19:26 +0000)]
Kept on implementing full function DAG Added a monitor for the memory consumption
Benjamin Segovia [Fri, 16 Mar 2012 11:04:45 +0000 (04:04 -0700)]
Started to implement the iterative data flow pass to build the global DAG
Benjamin Segovia [Thu, 15 Mar 2012 19:03:19 +0000 (19:03 +0000)]
Started to implement values and ud | du chains
Benjamin Segovia [Thu, 15 Mar 2012 14:34:25 +0000 (14:34 +0000)]
value.hpp -> immediate.hpp value is going to be a real "Value" (as compiler values)
Benjamin Segovia [Thu, 15 Mar 2012 14:15:33 +0000 (14:15 +0000)]
Added proper bookkeeping for the argument types Finished the liveness pretty printer
Benjamin Segovia [Thu, 15 Mar 2012 05:24:54 +0000 (22:24 -0700)]
Started to implement pretty printer for the liveness analysis
Benjamin Segovia [Tue, 13 Mar 2012 19:33:57 +0000 (19:33 +0000)]
Started to implement liveness analysis
Benjamin Segovia [Tue, 13 Mar 2012 07:59:41 +0000 (00:59 -0700)]
Started to implement liveness analysis
Benjamin Segovia [Tue, 13 Mar 2012 02:26:24 +0000 (19:26 -0700)]
Removed unused returnStruct field from function Included stdlib.h for all files
Benjamin Segovia [Tue, 13 Mar 2012 01:36:14 +0000 (18:36 -0700)]
Made the instructions double-chain list elements Renamed the register family s/RegisterData::Family/RegisterFamily/ s/RegisterData::/FAMILY_/
Benjamin Segovia [Mon, 12 Mar 2012 06:14:02 +0000 (23:14 -0700)]
Added new test
Benjamin Segovia [Mon, 12 Mar 2012 04:42:22 +0000 (21:42 -0700)]
Implemented PHI and Branch instruction translation
Benjamin Segovia [Wed, 7 Mar 2012 09:49:50 +0000 (01:49 -0800)]
Added shuffle/insert/extract elements LLVM IR translation Added Gen IR select instruction and LLVM IR select translation
Benjamin Segovia [Mon, 5 Mar 2012 07:19:32 +0000 (23:19 -0800)]
Added more kernels for the very basic tests
Benjamin Segovia [Sat, 3 Mar 2012 11:10:57 +0000 (03:10 -0800)]
Added extra check when dealing with our own builtins functions
Benjamin Segovia [Sat, 3 Mar 2012 11:07:13 +0000 (03:07 -0800)]
Added first support for compare instructions Added first support for convert instructions
Benjamin Segovia [Sat, 3 Mar 2012 06:21:53 +0000 (22:21 -0800)]
Removed unused code from former C backend
Benjamin Segovia [Sat, 3 Mar 2012 04:45:26 +0000 (20:45 -0800)]
Made first tests pass with vectors
Benjamin Segovia [Fri, 2 Mar 2012 07:12:13 +0000 (23:12 -0800)]
Extended the llvm-to-gen translation pass
Benjamin Segovia [Wed, 29 Feb 2012 20:37:17 +0000 (20:37 +0000)]
Added first support for immediates Started to add support for builtin functions
Benjamin Segovia [Wed, 29 Feb 2012 18:09:08 +0000 (18:09 +0000)]
Finished a first very very limited LLVM to Gen-IR translation. It should be just enough to write a first very simple kernel
Benjamin Segovia [Tue, 28 Feb 2012 20:05:09 +0000 (20:05 +0000)]
Added various helper functions in the LLVM to Gen translation Implemented binary instruction translation Implemented return instruction translation
Benjamin Segovia [Mon, 27 Feb 2012 20:01:19 +0000 (20:01 +0000)]
Implemented a first implementation of the function argument parsing from LLVM IR
Benjamin Segovia [Mon, 27 Feb 2012 14:28:06 +0000 (14:28 +0000)]
Removed more stuff from CBackend
Benjamin Segovia [Mon, 27 Feb 2012 14:24:14 +0000 (14:24 +0000)]
Removed the crap related to llvm targets and triples
Benjamin Segovia [Mon, 27 Feb 2012 14:20:39 +0000 (14:20 +0000)]
Started to remove the useless crap from CBackend. We only keep the code as a pass and not as a triple
Benjamin Segovia [Wed, 22 Feb 2012 19:33:08 +0000 (19:33 +0000)]
Compiled the skeletong of what the llvm to gbe translator should be
Benjamin Segovia [Wed, 22 Feb 2012 16:39:36 +0000 (16:39 +0000)]
Added a new define for the debug mode (GBE_DEBUG)
Benjamin Segovia [Tue, 21 Feb 2012 20:46:19 +0000 (20:46 +0000)]
Started llvm work
Benjamin Segovia [Tue, 21 Feb 2012 05:39:29 +0000 (05:39 +0000)]
Added missing file
Benjamin Segovia [Tue, 21 Feb 2012 05:29:00 +0000 (05:29 +0000)]
Added support for output streams for functions
Benjamin Segovia [Mon, 20 Feb 2012 06:45:16 +0000 (06:45 +0000)]
Added more tests
Benjamin Segovia [Mon, 20 Feb 2012 04:05:28 +0000 (04:05 +0000)]
Fixed instruction size in the instruction definitions Added more tests for the context Added more check on the labels
Benjamin Segovia [Mon, 20 Feb 2012 02:52:19 +0000 (02:52 +0000)]
Improved error messages with better assertions
Benjamin Segovia [Mon, 20 Feb 2012 01:24:02 +0000 (01:24 +0000)]
s/Register/RegisterData/g s/RegisterIndex/Register/g s/TupleIndex/Tuple/g
Benjamin Segovia [Fri, 17 Feb 2012 08:46:52 +0000 (08:46 +0000)]
Changed typing in GrowingPool. It is more C++ like
Benjamin Segovia [Fri, 17 Feb 2012 08:30:35 +0000 (08:30 +0000)]
Added missing test
Benjamin Segovia [Fri, 17 Feb 2012 08:27:01 +0000 (08:27 +0000)]
Added type safety for all uint* Added one more test
Benjamin Segovia [Fri, 17 Feb 2012 04:54:16 +0000 (04:54 +0000)]
Made the memory debugger properly output the unfreed allocations
Benjamin Segovia [Fri, 17 Feb 2012 04:50:36 +0000 (04:50 +0000)]
Added more functionality in the unit test "framework" Created one test that basically checks that the unit test system works
Benjamin Segovia [Fri, 17 Feb 2012 04:02:11 +0000 (04:02 +0000)]
Added missing function for compares
Benjamin Segovia [Fri, 17 Feb 2012 03:13:18 +0000 (03:13 +0000)]
Ensure type safety for tuple and register indices by making specific classes
Benjamin Segovia [Thu, 16 Feb 2012 11:34:31 +0000 (11:34 +0000)]
Added compare instructions Finished to implement well formed functions. They basically check that the definition is consistent (types match, registers and tuple are not out-of-bound the register files or the tuple files...)
Benjamin Segovia [Mon, 13 Feb 2012 19:04:16 +0000 (19:04 +0000)]
Added more functionalities for the context Started to implement wellFormed function that basically checks that everything is properly set in the instruction
Benjamin Segovia [Mon, 13 Feb 2012 14:47:09 +0000 (14:47 +0000)]
Improved memory debugger -> added memory re-initialization at free time -> added automatic memory debugger initialization
Benjamin Segovia [Mon, 13 Feb 2012 14:00:28 +0000 (14:00 +0000)]
Renamed ir_{...} to {...} Put ir structures and classes into an IR namespace Made all headers homogeneous Removed unused files Put again fixed_array since it is pretty convienent
Benjamin Segovia [Mon, 13 Feb 2012 12:44:22 +0000 (12:44 +0000)]
int* -> [u]uint*_t
ojomer [Sat, 11 Feb 2012 13:44:11 +0000 (13:44 +0000)]
Plasma specific changes
bsegovia [Fri, 10 Feb 2012 17:26:59 +0000 (09:26 -0800)]
Start to implement context and compilation unit creation
bsegovia [Wed, 8 Feb 2012 17:55:18 +0000 (09:55 -0800)]
Added first support for compilation units Added first support for constant definition Finished a first version of instruction definitions
bsegovia [Sun, 5 Feb 2012 19:47:45 +0000 (11:47 -0800)]
Added missing files
bsegovia [Sun, 5 Feb 2012 19:15:24 +0000 (11:15 -0800)]
Keep on implementing instruction class implementation. This basically a set of classes that implements the opaque public instruction classes
Benjamin Segovia [Wed, 1 Feb 2012 11:42:17 +0000 (11:42 +0000)]
Started to add cleaner and safer cast facilities for the instructions
Benjamin Segovia [Wed, 1 Feb 2012 11:22:37 +0000 (11:22 +0000)]
Cleaned up instruction class implementation
Benjamin Segovia [Wed, 1 Feb 2012 08:22:00 +0000 (08:22 +0000)]
Added a clean interface for instruction (encoding in 8 bytes with alternative encoding for long instruction (using tuples)) Simplified the register structure
bsegovia [Tue, 24 Jan 2012 00:32:42 +0000 (00:32 +0000)]
Fixed SNB build
Benjamin Segovia [Mon, 23 Jan 2012 09:57:14 +0000 (09:57 +0000)]
Started to implement IR VM
Benjamin Segovia [Sun, 22 Jan 2012 07:00:33 +0000 (07:00 +0000)]
Removed unused tests
Benjamin Segovia [Sun, 22 Jan 2012 06:58:24 +0000 (06:58 +0000)]
- renamed namespace (s/pf/gbe) - created first files for the IR
bsegovia [Wed, 18 Jan 2012 03:49:31 +0000 (03:49 +0000)]
Implemented SIMD8 for IVB (only tested on Fulsim but should work out of the box on the HW)