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

Reply via email to