This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 0/4] BRIG (HSAIL) frontend


This patch set adds a BRIG (HSAIL) frontend. It can be used as a core
for an HSAIL finalizer implementation for processors with gcc backends.

It is a bit unusual frontend as the consumed format is a binary
representation.  The textual HSAIL can be compiled to it with a 
separate assembler.

The frontend has been mostly tested with the HSA PRM conformance suite which
it now passes. The accompanied GENERIC-scanning test suite is supposed to be
only a smoke test. 

libhsail-rt implements HSAIL specific builtins and includes a simple runtime
that implements SPMD execution via either Pth-based fibers or loops to 
execute multiple work-item work groups without SPMD/SIMD-default hardware.

I've split it to 4 patches:

001 - the configuration file changes and misc.
002 - the frontend itself
003 - libhsail-rt
004 - the smoke test suite

The diffstat is as follows:

 Makefile.def                                      |     3 +
 Makefile.in                                       |   489 +
 configure                                         |     1 +
 configure.ac                                      |     1 +
 gcc/brig/Make-lang.in                             |   246 +
 gcc/brig/brig-c.h                                 |    68 +
 gcc/brig/brig-lang.c                              |   461 +
 gcc/brig/brigfrontend/brig-arg-block-handler.cc   |    67 +
 gcc/brig/brigfrontend/brig-atomic-inst-handler.cc |   377 +
 gcc/brig/brigfrontend/brig-basic-inst-handler.cc  |   732 +
 gcc/brig/brigfrontend/brig-branch-inst-handler.cc |   217 +
 gcc/brig/brigfrontend/brig-cmp-inst-handler.cc    |   212 +
 gcc/brig/brigfrontend/brig-code-entry-handler.cc  |  2319 +++
 gcc/brig/brigfrontend/brig-code-entry-handler.h   |   449 +
 gcc/brig/brigfrontend/brig-comment-handler.cc     |    39 +
 gcc/brig/brigfrontend/brig-control-handler.cc     |    29 +
 .../brigfrontend/brig-copy-move-inst-handler.cc   |    56 +
 gcc/brig/brigfrontend/brig-cvt-inst-handler.cc    |   249 +
 gcc/brig/brigfrontend/brig-fbarrier-handler.cc    |    44 +
 gcc/brig/brigfrontend/brig-function-handler.cc    |   373 +
 gcc/brig/brigfrontend/brig-function.cc            |   698 +
 gcc/brig/brigfrontend/brig-function.h             |   216 +
 gcc/brig/brigfrontend/brig-inst-mod-handler.cc    |   168 +
 gcc/brig/brigfrontend/brig-label-handler.cc       |    37 +
 gcc/brig/brigfrontend/brig-lane-inst-handler.cc   |    82 +
 gcc/brig/brigfrontend/brig-machine.c              |    37 +
 gcc/brig/brigfrontend/brig-machine.h              |    35 +
 gcc/brig/brigfrontend/brig-mem-inst-handler.cc    |   180 +
 gcc/brig/brigfrontend/brig-module-handler.cc      |    30 +
 gcc/brig/brigfrontend/brig-queue-inst-handler.cc  |    92 +
 gcc/brig/brigfrontend/brig-seg-inst-handler.cc    |   133 +
 gcc/brig/brigfrontend/brig-signal-inst-handler.cc |    42 +
 gcc/brig/brigfrontend/brig-util.cc                |   347 +
 gcc/brig/brigfrontend/brig-util.h                 |    49 +
 gcc/brig/brigfrontend/brig-variable-handler.cc    |   255 +
 gcc/brig/brigfrontend/brig_to_generic.cc          |   773 +
 gcc/brig/brigfrontend/brig_to_generic.h           |   245 +
 gcc/brig/brigfrontend/phsa.h                      |    40 +
 gcc/brig/brigspec.c                               |   193 +
 gcc/brig/config-lang.in                           |    41 +
 gcc/brig/lang-specs.h                             |    28 +
 gcc/brig/lang.opt                                 |    41 +
 gcc/testsuite/brig.dg/README                      |    10 +
 gcc/testsuite/brig.dg/dg.exp                      |    27 +
 gcc/testsuite/brig.dg/test/gimple/alloca.hsail    |    37 +
 gcc/testsuite/brig.dg/test/gimple/atomics.hsail   |    33 +
 gcc/testsuite/brig.dg/test/gimple/branches.hsail  |    58 +
 gcc/testsuite/brig.dg/test/gimple/fbarrier.hsail  |    74 +
 .../brig.dg/test/gimple/function_calls.hsail      |    59 +
 gcc/testsuite/brig.dg/test/gimple/mem.hsail       |    39 +
 gcc/testsuite/brig.dg/test/gimple/mulhi.hsail     |    33 +
 gcc/testsuite/brig.dg/test/gimple/packed.hsail    |    78 +
 .../brig.dg/test/gimple/smoke_test.hsail          |    91 +
 gcc/testsuite/brig.dg/test/gimple/variables.hsail |   124 +
 gcc/testsuite/brig.dg/test/gimple/vector.hsail    |    57 +
 gcc/testsuite/lib/brig-dg.exp                     |    29 +
 gcc/testsuite/lib/brig.exp                        |    40 +
 include/hsa-interface.h                           |   630 +
 libhsail-rt/Makefile.am                           |   123 +
 libhsail-rt/Makefile.in                           |   721 +
 libhsail-rt/README                                |     4 +
 libhsail-rt/aclocal.m4                            |   979 +
 libhsail-rt/config.h.in                           |   217 +
 libhsail-rt/configure                             | 17162 ++++++++++++++++++
 libhsail-rt/configure.ac                          |   150 +
 libhsail-rt/include/internal/phsa-rt.h            |    97 +
 .../include/internal/phsa_queue_interface.h       |    60 +
 libhsail-rt/include/internal/workitems.h          |   103 +
 libhsail-rt/m4/libtool.m4                         |  7997 ++++++++
 libhsail-rt/m4/ltoptions.m4                       |   384 +
 libhsail-rt/m4/ltsugar.m4                         |   123 +
 libhsail-rt/m4/ltversion.m4                       |    23 +
 libhsail-rt/m4/lt~obsolete.m4                     |    98 +
 libhsail-rt/m4/pth.m4                             |   402 +
 libhsail-rt/rt/arithmetic.c                       |   374 +
 libhsail-rt/rt/atomics.c                          |   115 +
 libhsail-rt/rt/bitstring.c                        |   188 +
 libhsail-rt/rt/fbarrier.c                         |   100 +
 libhsail-rt/rt/fp16.c                             |   146 +
 libhsail-rt/rt/misc.c                             |    86 +
 libhsail-rt/rt/multimedia.c                       |   128 +
 libhsail-rt/rt/queue.c                            |    71 +
 libhsail-rt/rt/sat_arithmetic.c                   |   305 +
 libhsail-rt/rt/segment.c                          |    57 +
 libhsail-rt/rt/workitems.c                        |   928 +
 85 files changed, 42754 insertions(+)


BR,
-- 
Pekka JÃÃskelÃinen
Parmance


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]