From: Dimitar Dimitrov <dimitar@dinux.eu>
To: gcc-patches@gcc.gnu.org
Cc: Dimitar Dimitrov <dimitar@dinux.eu>
Subject: [PATCH v4 00/10] New backend for the TI PRU processor
Date: Thu, 06 Sep 2018 11:12:00 -0000 [thread overview]
Message-ID: <20180906111217.24365-1-dimitar@dinux.eu> (raw)
This patch series adds support for the TI PRU I/O processor to GCC. This
fourth patch set revision addresses comments from v1 [1], v2 [2] and
v3 [3].
Test results can be downloaded from here:
http://dinux.eu/gnupru/testresults/20180828-f4455d5f/
Changes since patch series v3 [3]:
- Added blockage in epilogue before SP restore.
- Folded "mov" patterns.
[1] http://gcc.gnu.org/ml/gcc-patches/2018-06/msg00775.html
[2] http://gcc.gnu.org/ml/gcc-patches/2018-07/msg01779.html
[3] http://gcc.gnu.org/ml/gcc-patches/2018-08/msg00927.html
Dimitar Dimitrov (10):
Initial TI PRU GCC port
Initial TI PRU libgcc port
testsuite: Add PRU tests
testsuite: Add check for overflowed IMEM region to testsuite
testsuite: Add check for unsupported TI ABI PRU features to testsuite
testsuite: Remove PRU from test cases requiring hosted environment
testsuite: Define PRU stack usage
testsuite: Mark that PRU has one-cycle jumps
testsuite: Mark that PRU uses all function pointer bits
testsuite: Mark testsuite that PRU has different calling convention
configure.ac | 7 +
gcc/common/config/pru/pru-common.c | 36 +
gcc/config.gcc | 9 +
gcc/config/pru/alu-zext.md | 178 ++
gcc/config/pru/constraints.md | 88 +
gcc/config/pru/predicates.md | 224 ++
gcc/config/pru/pru-opts.h | 31 +
gcc/config/pru/pru-passes.c | 234 ++
gcc/config/pru/pru-pragma.c | 90 +
gcc/config/pru/pru-protos.h | 72 +
gcc/config/pru/pru.c | 3008 ++++++++++++++++++++
gcc/config/pru/pru.h | 551 ++++
gcc/config/pru/pru.md | 946 ++++++
gcc/config/pru/pru.opt | 53 +
gcc/config/pru/t-pru | 31 +
gcc/doc/extend.texi | 21 +
gcc/doc/invoke.texi | 55 +
gcc/doc/md.texi | 22 +
gcc/testsuite/g++.old-deja/g++.abi/ptrmem.C | 2 +-
gcc/testsuite/gcc.c-torture/execute/20101011-1.c | 3 +
gcc/testsuite/gcc.dg/20020312-2.c | 2 +
gcc/testsuite/gcc.dg/builtin-apply2.c | 2 +-
gcc/testsuite/gcc.dg/stack-usage-1.c | 2 +
.../gcc.dg/torture/stackalign/builtin-apply-2.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/reassoc-33.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/reassoc-34.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/reassoc-35.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/reassoc-36.c | 2 +-
gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-14.c | 2 +-
gcc/testsuite/gcc.target/pru/abi-arg-struct.c | 164 ++
gcc/testsuite/gcc.target/pru/ashiftrt.c | 13 +
gcc/testsuite/gcc.target/pru/builtins-1.c | 12 +
gcc/testsuite/gcc.target/pru/builtins-error.c | 6 +
gcc/testsuite/gcc.target/pru/clearbit.c | 13 +
gcc/testsuite/gcc.target/pru/loop-asm.c | 19 +
gcc/testsuite/gcc.target/pru/loop-dowhile.c | 45 +
gcc/testsuite/gcc.target/pru/loop-hi-1.c | 38 +
gcc/testsuite/gcc.target/pru/loop-hi-2.c | 17 +
gcc/testsuite/gcc.target/pru/loop-qi-1.c | 38 +
gcc/testsuite/gcc.target/pru/loop-qi-2.c | 17 +
gcc/testsuite/gcc.target/pru/loop-short-1.c | 53 +
gcc/testsuite/gcc.target/pru/loop-short-2.c | 21 +
gcc/testsuite/gcc.target/pru/loop-si-1.c | 41 +
gcc/testsuite/gcc.target/pru/loop-si-2.c | 20 +
.../gcc.target/pru/loop-u8_pcrel_overflow.c | 42 +
gcc/testsuite/gcc.target/pru/loop-ubyte-1.c | 30 +
gcc/testsuite/gcc.target/pru/loop-ubyte-2.c | 18 +
.../pru/lra-framepointer-fragmentation-1.c | 33 +
.../pru/lra-framepointer-fragmentation-2.c | 61 +
gcc/testsuite/gcc.target/pru/mabi-ti-1.c | 10 +
gcc/testsuite/gcc.target/pru/mabi-ti-2.c | 15 +
gcc/testsuite/gcc.target/pru/mabi-ti-3.c | 12 +
gcc/testsuite/gcc.target/pru/mabi-ti-4.c | 14 +
gcc/testsuite/gcc.target/pru/mabi-ti-5.c | 33 +
gcc/testsuite/gcc.target/pru/mabi-ti-6.c | 12 +
gcc/testsuite/gcc.target/pru/mabi-ti-7.c | 21 +
gcc/testsuite/gcc.target/pru/pr64366.c | 128 +
gcc/testsuite/gcc.target/pru/pragma-ctable_entry.c | 22 +
gcc/testsuite/gcc.target/pru/pru.exp | 41 +
gcc/testsuite/gcc.target/pru/qbbc-1.c | 29 +
gcc/testsuite/gcc.target/pru/qbbc-2.c | 15 +
gcc/testsuite/gcc.target/pru/qbbc-3.c | 15 +
gcc/testsuite/gcc.target/pru/qbbs-1.c | 29 +
gcc/testsuite/gcc.target/pru/qbbs-2.c | 15 +
gcc/testsuite/gcc.target/pru/setbit.c | 13 +
.../gcc.target/pru/zero_extend-and-hisi.c | 16 +
.../gcc.target/pru/zero_extend-and-qihi.c | 16 +
.../gcc.target/pru/zero_extend-and-qisi.c | 16 +
gcc/testsuite/gcc.target/pru/zero_extend-hisi.c | 43 +
gcc/testsuite/gcc.target/pru/zero_extend-qihi.c | 43 +
gcc/testsuite/gcc.target/pru/zero_extend-qisi.c | 43 +
gcc/testsuite/lib/gcc-dg.exp | 16 +
gcc/testsuite/lib/target-supports.exp | 38 +-
gcc/testsuite/lib/target-utils.exp | 12 +
libgcc/config.host | 7 +
libgcc/config/pru/asri.c | 33 +
libgcc/config/pru/eqd.c | 45 +
libgcc/config/pru/eqf.c | 45 +
libgcc/config/pru/ged.c | 45 +
libgcc/config/pru/gef.c | 45 +
libgcc/config/pru/gtd.c | 45 +
libgcc/config/pru/gtf.c | 45 +
libgcc/config/pru/led.c | 45 +
libgcc/config/pru/lef.c | 45 +
libgcc/config/pru/lib2bitcountHI.c | 43 +
libgcc/config/pru/lib2divHI.c | 42 +
libgcc/config/pru/lib2divQI.c | 42 +
libgcc/config/pru/lib2divSI.c | 48 +
libgcc/config/pru/libgcc-eabi.ver | 88 +
libgcc/config/pru/ltd.c | 45 +
libgcc/config/pru/ltf.c | 45 +
libgcc/config/pru/mpyll.S | 57 +
libgcc/config/pru/pru-abi.h | 109 +
libgcc/config/pru/pru-asm.h | 35 +
libgcc/config/pru/pru-divmod.h | 117 +
libgcc/config/pru/sfp-machine.h | 125 +
libgcc/config/pru/t-pru | 50 +
98 files changed, 8284 insertions(+), 11 deletions(-)
create mode 100644 gcc/common/config/pru/pru-common.c
create mode 100644 gcc/config/pru/alu-zext.md
create mode 100644 gcc/config/pru/constraints.md
create mode 100644 gcc/config/pru/predicates.md
create mode 100644 gcc/config/pru/pru-opts.h
create mode 100644 gcc/config/pru/pru-passes.c
create mode 100644 gcc/config/pru/pru-pragma.c
create mode 100644 gcc/config/pru/pru-protos.h
create mode 100644 gcc/config/pru/pru.c
create mode 100644 gcc/config/pru/pru.h
create mode 100644 gcc/config/pru/pru.md
create mode 100644 gcc/config/pru/pru.opt
create mode 100644 gcc/config/pru/t-pru
create mode 100644 gcc/testsuite/gcc.target/pru/abi-arg-struct.c
create mode 100644 gcc/testsuite/gcc.target/pru/ashiftrt.c
create mode 100644 gcc/testsuite/gcc.target/pru/builtins-1.c
create mode 100644 gcc/testsuite/gcc.target/pru/builtins-error.c
create mode 100644 gcc/testsuite/gcc.target/pru/clearbit.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-asm.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-dowhile.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-hi-1.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-hi-2.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-qi-1.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-qi-2.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-short-1.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-short-2.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-si-1.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-si-2.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-u8_pcrel_overflow.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-ubyte-1.c
create mode 100644 gcc/testsuite/gcc.target/pru/loop-ubyte-2.c
create mode 100644 gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-1.c
create mode 100644 gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-2.c
create mode 100644 gcc/testsuite/gcc.target/pru/mabi-ti-1.c
create mode 100644 gcc/testsuite/gcc.target/pru/mabi-ti-2.c
create mode 100644 gcc/testsuite/gcc.target/pru/mabi-ti-3.c
create mode 100644 gcc/testsuite/gcc.target/pru/mabi-ti-4.c
create mode 100644 gcc/testsuite/gcc.target/pru/mabi-ti-5.c
create mode 100644 gcc/testsuite/gcc.target/pru/mabi-ti-6.c
create mode 100644 gcc/testsuite/gcc.target/pru/mabi-ti-7.c
create mode 100644 gcc/testsuite/gcc.target/pru/pr64366.c
create mode 100644 gcc/testsuite/gcc.target/pru/pragma-ctable_entry.c
create mode 100644 gcc/testsuite/gcc.target/pru/pru.exp
create mode 100644 gcc/testsuite/gcc.target/pru/qbbc-1.c
create mode 100644 gcc/testsuite/gcc.target/pru/qbbc-2.c
create mode 100644 gcc/testsuite/gcc.target/pru/qbbc-3.c
create mode 100644 gcc/testsuite/gcc.target/pru/qbbs-1.c
create mode 100644 gcc/testsuite/gcc.target/pru/qbbs-2.c
create mode 100644 gcc/testsuite/gcc.target/pru/setbit.c
create mode 100644 gcc/testsuite/gcc.target/pru/zero_extend-and-hisi.c
create mode 100644 gcc/testsuite/gcc.target/pru/zero_extend-and-qihi.c
create mode 100644 gcc/testsuite/gcc.target/pru/zero_extend-and-qisi.c
create mode 100644 gcc/testsuite/gcc.target/pru/zero_extend-hisi.c
create mode 100644 gcc/testsuite/gcc.target/pru/zero_extend-qihi.c
create mode 100644 gcc/testsuite/gcc.target/pru/zero_extend-qisi.c
create mode 100644 libgcc/config/pru/asri.c
create mode 100644 libgcc/config/pru/eqd.c
create mode 100644 libgcc/config/pru/eqf.c
create mode 100644 libgcc/config/pru/ged.c
create mode 100644 libgcc/config/pru/gef.c
create mode 100644 libgcc/config/pru/gtd.c
create mode 100644 libgcc/config/pru/gtf.c
create mode 100644 libgcc/config/pru/led.c
create mode 100644 libgcc/config/pru/lef.c
create mode 100644 libgcc/config/pru/lib2bitcountHI.c
create mode 100644 libgcc/config/pru/lib2divHI.c
create mode 100644 libgcc/config/pru/lib2divQI.c
create mode 100644 libgcc/config/pru/lib2divSI.c
create mode 100644 libgcc/config/pru/libgcc-eabi.ver
create mode 100644 libgcc/config/pru/ltd.c
create mode 100644 libgcc/config/pru/ltf.c
create mode 100644 libgcc/config/pru/mpyll.S
create mode 100644 libgcc/config/pru/pru-abi.h
create mode 100644 libgcc/config/pru/pru-asm.h
create mode 100644 libgcc/config/pru/pru-divmod.h
create mode 100644 libgcc/config/pru/sfp-machine.h
create mode 100644 libgcc/config/pru/t-pru
--
2.11.0
next reply other threads:[~2018-09-06 11:12 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-06 11:12 Dimitar Dimitrov [this message]
2018-09-06 11:12 ` [PATCH v4 04/10] testsuite: Add check for overflowed IMEM region to testsuite Dimitar Dimitrov
2018-09-06 11:13 ` [PATCH v4 06/10] testsuite: Remove PRU from test cases requiring hosted environment Dimitar Dimitrov
2018-09-06 11:13 ` [PATCH v4 09/10] testsuite: Mark that PRU uses all function pointer bits Dimitar Dimitrov
2018-09-06 11:13 ` [PATCH v4 03/10] testsuite: Add PRU tests Dimitar Dimitrov
2018-09-06 11:13 ` [PATCH v4 08/10] testsuite: Mark that PRU has one-cycle jumps Dimitar Dimitrov
2018-09-06 11:13 ` [PATCH v4 10/10] testsuite: Mark testsuite that PRU has different calling convention Dimitar Dimitrov
2018-09-06 11:13 ` [PATCH v4 05/10] testsuite: Add check for unsupported TI ABI PRU features to testsuite Dimitar Dimitrov
2018-09-06 11:13 ` [PATCH v4 02/10] Initial TI PRU libgcc port Dimitar Dimitrov
2018-09-06 11:13 ` [PATCH v4 07/10] testsuite: Define PRU stack usage Dimitar Dimitrov
2018-09-06 11:13 ` [PATCH v4 01/10] Initial TI PRU GCC port Dimitar Dimitrov
2018-09-13 13:13 ` Richard Sandiford
2018-09-22 10:23 ` Dimitar Dimitrov
2018-09-24 10:49 ` Richard Sandiford
2018-09-24 17:49 ` Jeff Law
2018-09-25 5:16 ` Dimitar Dimitrov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180906111217.24365-1-dimitar@dinux.eu \
--to=dimitar@dinux.eu \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).