public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 0/9] RTL frontend v4
@ 2016-11-11 20:44 David Malcolm
  2016-11-11 20:43 ` [PATCH 2/9] (approved) Introduce rtl_data::init_stack_alignment David Malcolm
                   ` (8 more replies)
  0 siblings, 9 replies; 78+ messages in thread
From: David Malcolm @ 2016-11-11 20:44 UTC (permalink / raw)
  To: gcc-patches; +Cc: David Malcolm

This patch kit is v4 of the RTL frontend.  For reference, the earlier
versions were:

v1 (2016-05-04):
  "[PATCH 0/4] RFC: RTL frontend"
    https://gcc.gnu.org/ml/gcc-patches/2016-05/msg00352.html
  
v2 (2016-09-08):
  "[PATCH 0/9] RFC: selftests based on RTL dumps"
    https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00483.html

v3 (2016-10-05):
  "[PATCH 00/16] RTL frontend (v3)"
   https://gcc.gnu.org/ml/gcc-patches/2016-10/msg00261.html

The patch kit is based on top of r242065 (2016-11-11).  There are some
places where it will conflict with the gimple frontend, but
these are likely to be fairly easy to resolve.

What's new in v4:
* Split out more preliminary patches from the function_reader patch
* Rewritten the loader and all tests to use the new "compact" dump
  format (which has changed various times since v3).
* Support for reuse_rtx in loader
* Handling of params, DECL_RTL and DECL_RTL_INCOMING
* Moved target-dependent selftests to target-specific code
  (aarch64.c and i386.c)
* Dropped the RTL "frontend" itself, in favor of doing it via Richi's
  idea of specially-tagged functions in the C frontend (tagged with
  "__RTL").
* In __RTL mode, rather than running just one pass, run *all* passes,
  but start at the given pass.  This means we can support "dg-do run"
  tests that execute the resulting code, mixing C and RTL in test cases
  (and potentially even with gimple dumps).
* More test cases.  Use "dg-do run" in various places.
* Lots of bugfixing

I've successfully bootstrapped&regrtested the kit as whole on
x86_64-pc-linux-gnu.

Stage 1 builds and passes selftesting and check-gcc with
RUNTESTFLAGS="rtl.exp=*" for target aarch64-linux-gnu.

OK for trunk?

David Malcolm (9):
  print_rtx: implement support for reuse IDs (v2)
  (approved) Introduce rtl_data::init_stack_alignment
  Introduce emit_status::ensure_regno_capacity
  Add some functions for use by the RTL frontend.
  Introduce selftest::locate_file (v4)
  Split class rtx_reader into md_reader vs rtx_reader
  Add RTL-error-handling to host
  Introduce class function_reader (v4)
  Add "__RTL" to cc1 (v4)

 gcc/Makefile.in                                    |   16 +-
 gcc/c-family/c-common.c                            |    1 +
 gcc/c-family/c-common.h                            |    3 +
 gcc/c/c-parser.c                                   |  122 +-
 gcc/cfg.c                                          |    1 -
 gcc/cfgexpand.c                                    |    5 +-
 gcc/cgraph.h                                       |    4 +
 gcc/cgraphunit.c                                   |   41 +-
 gcc/common.opt                                     |    6 +-
 gcc/config/aarch64/aarch64.c                       |   49 +
 gcc/config/i386/i386.c                             |  231 +++
 gcc/emit-rtl.c                                     |   73 +-
 gcc/emit-rtl.h                                     |    4 +
 gcc/errors.c                                       |   23 +-
 gcc/errors.h                                       |   14 +
 gcc/final.c                                        |    3 +-
 gcc/function-tests.c                               |    2 +-
 gcc/function.c                                     |    3 +-
 gcc/function.h                                     |   11 +
 gcc/genpreds.c                                     |    6 +-
 gcc/gensupport.c                                   |    2 +-
 gcc/gimple-expr.c                                  |    2 +-
 gcc/pass_manager.h                                 |    6 +
 gcc/passes.c                                       |   47 +
 gcc/print-rtl-function.c                           |    7 +-
 gcc/print-rtl.c                                    |  141 +-
 gcc/print-rtl.h                                    |   81 +-
 gcc/read-md.c                                      |  207 +-
 gcc/read-md.h                                      |  106 +-
 gcc/read-rtl-function.c                            | 2173 ++++++++++++++++++++
 gcc/read-rtl-function.h                            |   39 +
 gcc/read-rtl.c                                     |  300 ++-
 gcc/rtl-tests.c                                    |   54 +-
 gcc/rtl.h                                          |    2 +
 gcc/run-rtl-passes.c                               |   85 +
 gcc/run-rtl-passes.h                               |   25 +
 gcc/selftest-rtl.c                                 |   82 +
 gcc/selftest-rtl.h                                 |   32 +-
 gcc/selftest-run-tests.c                           |    9 +
 gcc/selftest.c                                     |   28 +
 gcc/selftest.h                                     |   11 +
 gcc/testsuite/gcc.dg/cpp/pr71591.c                 |    2 +-
 gcc/testsuite/gcc.dg/rtl/aarch64/asr_div1.c        |   41 +
 gcc/testsuite/gcc.dg/rtl/aarch64/pr71779.c         |   50 +
 gcc/testsuite/gcc.dg/rtl/rtl.exp                   |   41 +
 gcc/testsuite/gcc.dg/rtl/test.c                    |   31 +
 gcc/testsuite/gcc.dg/rtl/unknown-rtx-code.c        |    8 +
 gcc/testsuite/gcc.dg/rtl/x86_64/dfinit.c           |  116 ++
 .../gcc.dg/rtl/x86_64/different-structs.c          |   81 +
 gcc/testsuite/gcc.dg/rtl/x86_64/final.c            |  133 ++
 gcc/testsuite/gcc.dg/rtl/x86_64/into-cfglayout.c   |  117 ++
 gcc/testsuite/gcc.dg/rtl/x86_64/ira.c              |  111 +
 gcc/testsuite/gcc.dg/rtl/x86_64/pro_and_epilogue.c |  110 +
 .../rtl/x86_64/test-return-const.c.after-expand.c  |   39 +
 .../rtl/x86_64/test-return-const.c.before-fwprop.c |   42 +
 gcc/testsuite/gcc.dg/rtl/x86_64/test-rtl.c         |  101 +
 gcc/testsuite/gcc.dg/rtl/x86_64/test_1.h           |   16 +
 .../gcc.dg/rtl/x86_64/times-two.c.after-expand.c   |   70 +
 .../gcc.dg/rtl/x86_64/times-two.c.before-df.c      |   54 +
 gcc/testsuite/gcc.dg/rtl/x86_64/vregs.c            |  112 +
 gcc/testsuite/selftests/aarch64/times-two.rtl      |   36 +
 gcc/testsuite/selftests/asr_div1.rtl               |   24 +
 gcc/testsuite/selftests/bb-index.rtl               |    8 +
 gcc/testsuite/selftests/cfg-test.rtl               |   37 +
 gcc/testsuite/selftests/const-int.rtl              |   20 +
 gcc/testsuite/selftests/example-labels.rtl         |    8 +
 gcc/testsuite/selftests/example.txt                |    1 +
 gcc/testsuite/selftests/insn-with-mode.rtl         |    7 +
 gcc/testsuite/selftests/jump-to-label-ref.rtl      |   17 +
 gcc/testsuite/selftests/jump-to-return.rtl         |   11 +
 gcc/testsuite/selftests/jump-to-simple-return.rtl  |   11 +
 gcc/testsuite/selftests/note-insn-deleted.rtl      |    5 +
 gcc/testsuite/selftests/note_insn_basic_block.rtl  |    9 +
 gcc/testsuite/selftests/simple-cse.rtl             |   16 +
 gcc/testsuite/selftests/symbol-ref.rtl             |   13 +
 gcc/testsuite/selftests/x86_64/call-insn.rtl       |   17 +
 .../selftests/x86_64/copy-hard-reg-into-frame.rtl  |   15 +
 gcc/testsuite/selftests/x86_64/times-two.rtl       |   51 +
 gcc/testsuite/selftests/x86_64/unspec.rtl          |   20 +
 gcc/tree-dfa.c                                     |    5 +
 80 files changed, 5494 insertions(+), 169 deletions(-)
 create mode 100644 gcc/read-rtl-function.c
 create mode 100644 gcc/read-rtl-function.h
 create mode 100644 gcc/run-rtl-passes.c
 create mode 100644 gcc/run-rtl-passes.h
 create mode 100644 gcc/selftest-rtl.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/aarch64/asr_div1.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/aarch64/pr71779.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/rtl.exp
 create mode 100644 gcc/testsuite/gcc.dg/rtl/test.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/unknown-rtx-code.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/dfinit.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/different-structs.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/final.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/into-cfglayout.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/ira.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/pro_and_epilogue.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/test-return-const.c.after-expand.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/test-return-const.c.before-fwprop.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/test-rtl.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/test_1.h
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/times-two.c.after-expand.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/times-two.c.before-df.c
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/vregs.c
 create mode 100644 gcc/testsuite/selftests/aarch64/times-two.rtl
 create mode 100644 gcc/testsuite/selftests/asr_div1.rtl
 create mode 100644 gcc/testsuite/selftests/bb-index.rtl
 create mode 100644 gcc/testsuite/selftests/cfg-test.rtl
 create mode 100644 gcc/testsuite/selftests/const-int.rtl
 create mode 100644 gcc/testsuite/selftests/example-labels.rtl
 create mode 100644 gcc/testsuite/selftests/example.txt
 create mode 100644 gcc/testsuite/selftests/insn-with-mode.rtl
 create mode 100644 gcc/testsuite/selftests/jump-to-label-ref.rtl
 create mode 100644 gcc/testsuite/selftests/jump-to-return.rtl
 create mode 100644 gcc/testsuite/selftests/jump-to-simple-return.rtl
 create mode 100644 gcc/testsuite/selftests/note-insn-deleted.rtl
 create mode 100644 gcc/testsuite/selftests/note_insn_basic_block.rtl
 create mode 100644 gcc/testsuite/selftests/simple-cse.rtl
 create mode 100644 gcc/testsuite/selftests/symbol-ref.rtl
 create mode 100644 gcc/testsuite/selftests/x86_64/call-insn.rtl
 create mode 100644 gcc/testsuite/selftests/x86_64/copy-hard-reg-into-frame.rtl
 create mode 100644 gcc/testsuite/selftests/x86_64/times-two.rtl
 create mode 100644 gcc/testsuite/selftests/x86_64/unspec.rtl

-- 
1.8.5.3

^ permalink raw reply	[flat|nested] 78+ messages in thread

end of thread, other threads:[~2021-08-19  7:01 UTC | newest]

Thread overview: 78+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-11 20:44 [PATCH 0/9] RTL frontend v4 David Malcolm
2016-11-11 20:43 ` [PATCH 2/9] (approved) Introduce rtl_data::init_stack_alignment David Malcolm
2016-11-23 20:09   ` Jeff Law
2016-11-11 20:43 ` [PATCH 3/9] Introduce emit_status::ensure_regno_capacity David Malcolm
2016-11-14 14:17   ` Bernd Schmidt
2016-11-14 14:31     ` David Malcolm
2016-11-23 20:12   ` Jeff Law
2016-11-11 20:44 ` [PATCH 6/9] Split class rtx_reader into md_reader vs rtx_reader David Malcolm
2016-11-22 21:26   ` Richard Sandiford
2016-11-11 20:44 ` [PATCH 1/9] print_rtx: implement support for reuse IDs (v2) David Malcolm
2016-12-01 23:05   ` Jeff Law
2016-12-02  1:37     ` David Malcolm
2016-12-02 15:28       ` Bernd Schmidt
2016-11-11 20:44 ` [PATCH 7/9] Add RTL-error-handling to host David Malcolm
2016-11-22 21:29   ` Richard Sandiford
2016-11-28 13:47   ` Bernd Schmidt
2016-11-29 17:20     ` David Malcolm
2016-11-29 17:23       ` Bernd Schmidt
2016-11-29 18:53         ` David Malcolm
2016-11-29 21:13           ` Bernd Schmidt
2016-11-30 16:18             ` Bernd Schmidt
2016-11-30 19:51               ` [PATCH] Minimal reimplementation of errors.c within read-md.c David Malcolm
2016-12-01 12:40                 ` Bernd Schmidt
2016-12-02 22:34                   ` [PATCH] Even more minimal " David Malcolm
2016-12-06 12:11                     ` Bernd Schmidt
2016-11-11 20:44 ` [PATCH 4/9] (approved) Add some functions for use by the RTL frontend David Malcolm
2016-11-23 20:11   ` Jeff Law
2016-11-11 20:44 ` [PATCH 5/9] Introduce selftest::locate_file (v4) David Malcolm
2016-12-01 13:29   ` Bernd Schmidt
2016-12-02  1:20     ` David Malcolm
2016-12-08 21:47     ` David Malcolm
2016-12-09  1:48       ` Bernd Schmidt
2016-12-09 19:32         ` PR target/78213 revisited (was Re: [PATCH 5/9] Introduce selftest::locate_file (v4)) David Malcolm
2016-12-14 14:04           ` Bernd Schmidt
2016-12-15  2:14             ` [committed] Introduce selftest::locate_file (v5) David Malcolm
2021-08-17  7:00               ` Thomas Schwinge
2021-08-17  9:00                 ` Richard Biener
2021-08-18 23:56                 ` H.J. Lu
2021-08-19  7:01                   ` Thomas Schwinge
2016-11-11 20:44 ` [PATCH 9/9] Add "__RTL" to cc1 (v4) David Malcolm
2016-11-14 15:14   ` Richard Biener
2016-11-15 21:07     ` David Malcolm
2016-11-16 13:24       ` Richard Biener
2016-11-18 21:02         ` [PATCH] Add "__RTL" to cc1 (v5) David Malcolm
2016-11-18 22:14           ` Joseph Myers
2016-11-18 22:46             ` [PATCH] Handle EOF in c_parser_parse_rtl_body David Malcolm
2016-11-11 20:44 ` [PATCH 8/9] Introduce class function_reader (v4) David Malcolm
2016-11-23 20:15   ` Bernd Schmidt
2016-11-23 20:46     ` David Malcolm
2016-12-01 14:40   ` Bernd Schmidt
2016-12-01 21:43     ` David Malcolm
2016-12-02  1:27       ` [PATCH 8a/9] Introduce class function_reader (v6) David Malcolm
2016-12-02  1:27         ` [PATCH 8d/9] Add x86_64-specific selftests for RTL function reader David Malcolm
2016-12-19 16:43           ` [PATCH] Add x86_64-specific selftests for RTL function reader (v2) David Malcolm
2017-01-03 16:47             ` PING " David Malcolm
2017-01-05  9:43               ` Uros Bizjak
2016-12-02  1:27         ` [PATCH 8c/9] Add aarch64-specific selftests for RTL function reader David Malcolm
2016-12-06 17:22           ` James Greenhalgh
2016-12-06 19:38             ` David Malcolm
2016-12-07  9:30               ` James Greenhalgh
2016-12-02  1:27         ` [PATCH 8b/9] Add target-independent selftests of " David Malcolm
2016-12-02 15:06           ` Bernd Schmidt
2016-12-05  5:55             ` Jeff Law
2016-12-02  1:28         ` [PATCH 9/9] Add "__RTL" to cc1 (v6) David Malcolm
2016-12-02 14:41         ` [PATCH 8a/9] Introduce class function_reader (v6) Bernd Schmidt
2016-12-02 18:12           ` [PATCH 8a/9] Introduce class function_reader (v7) David Malcolm
2016-12-02 18:58             ` Bernd Schmidt
2016-12-08  2:29               ` [PATCH] Avoid double unread_char (c) in patch 8a of RTL frontend David Malcolm
2016-12-08 15:16                 ` Bernd Schmidt
2016-12-08 20:06             ` [PATCH] Fix bug in MEM parsing in patches 8a/8b David Malcolm
2016-12-08 20:08               ` Bernd Schmidt
2016-12-09  1:29                 ` [PATCH] Prevent use of MEM_* attr accessor macros as lvalues David Malcolm
2016-12-09  1:32                   ` Bernd Schmidt
2016-12-19 22:15               ` [PATCH] Fix bug in MEM parsing in patches 8a/8b Jeff Law
2016-12-19 23:02                 ` David Malcolm
2016-12-02 15:28       ` [PATCH 8/9] Introduce class function_reader (v4) Bernd Schmidt
2016-12-02 19:51         ` [PATCH] Add ASSERT_RTX_PTR_EQ David Malcolm
2016-12-06 12:09           ` Bernd Schmidt

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).