This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 0/4] BRIG (HSAIL) frontend
- From: Pekka JÃÃskelÃinen <pekka at parmance dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 16 May 2016 20:25:37 +0300
- Subject: [PATCH 0/4] BRIG (HSAIL) frontend
- Authentication-results: sourceware.org; auth=none
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