public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 9/9] Add "__RTL" to cc1 (v8)
@ 2017-01-10  2:04 David Malcolm
  2017-01-10  2:04 ` [PATCH 9g] Extend .md and RTL parsing to support being wired up to cc1 David Malcolm
                   ` (9 more replies)
  0 siblings, 10 replies; 44+ messages in thread
From: David Malcolm @ 2017-01-10  2:04 UTC (permalink / raw)
  To: gcc-patches; +Cc: David Malcolm

This is a slightly updated version of the patch sent here:

  "[PATCH] Add "__RTL" to cc1 (v7)"
    https://gcc.gnu.org/ml/gcc-patches/2016-12/msg01662.html

but split up into smaller parts to (I hope) make review
easier.

Other changes in v8:
 - fix copyright years in new files
 - split out changes to passes.c; fixups to pass skipping

The set of patches wires up the RTL-reading code into cc1 for
functions tagged with "__RTL" in an analogous manner to those
tagged with "__GIMPLE", and adds a collection of testcases using
this functionality.

One difference from the GIMPLE frontend is that, due to the
pervasive singleton state throughout the RTL code, we can't have
more than one RTL function in memory at once.  Hence as soon as
we're done parsing an __RTL-tagged function we have to run the
rest of the passes on it, and emit asm for it, rather than having
the callgraph control this.

Successfully bootstrapped&regrtested on x86_64-pc-linux-gnu;
v7 was successfully built for 191 target configurations.

David Malcolm (10):
  Add "__RTL" to C frontend
  Don't assume that copy tables were initialized
  callgraph: handle __RTL functions
  Don't call delete_tree_ssa for __RTL functions
  Update "startwith" logic for pass-skipping to handle __RTL functions
  Add a way for the C frontend to compile __RTL-tagged functions
  Extend .md and RTL parsing to support being wired up to cc1
  testsuite: add platform-independent files
  testsuite: add aarch64-specific files
  testsuite: add x86_64-specific files

 gcc/Makefile.in                                    |   1 +
 gcc/c-family/c-common.c                            |   1 +
 gcc/c-family/c-common.h                            |   3 +
 gcc/c/c-parser.c                                   | 109 ++++++++++++++++-
 gcc/c/c-tree.h                                     |   7 +-
 gcc/c/gimple-parser.c                              |   8 +-
 gcc/c/gimple-parser.h                              |   2 +-
 gcc/cfg.c                                          |   9 ++
 gcc/cfg.h                                          |   1 +
 gcc/cfgrtl.c                                       |   3 +-
 gcc/cgraph.h                                       |   4 +
 gcc/cgraphunit.c                                   |  41 ++++++-
 gcc/final.c                                        |   3 +-
 gcc/function.h                                     |   2 +-
 gcc/gimple-expr.c                                  |   3 +-
 gcc/pass_manager.h                                 |   6 +
 gcc/passes.c                                       |  65 ++++++++--
 gcc/read-md.c                                      |  34 +++++-
 gcc/read-md.h                                      |   7 ++
 gcc/read-rtl-function.c                            |  83 ++++++++++---
 gcc/read-rtl-function.h                            |   3 +
 gcc/run-rtl-passes.c                               |  66 ++++++++++
 gcc/run-rtl-passes.h                               |  25 ++++
 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/truncated-rtl-file.c      |   2 +
 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 +++++++++++++++++
 .../gcc.dg/rtl/x86_64/test-multiple-fns.c          | 105 ++++++++++++++++
 .../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/times-two.h        |  22 ++++
 gcc/testsuite/gcc.dg/rtl/x86_64/vregs.c            | 112 +++++++++++++++++
 44 files changed, 1844 insertions(+), 44 deletions(-)
 create mode 100644 gcc/run-rtl-passes.c
 create mode 100644 gcc/run-rtl-passes.h
 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/truncated-rtl-file.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-multiple-fns.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/times-two.h
 create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/vregs.c

-- 
1.8.5.3

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

end of thread, other threads:[~2017-01-24 17:55 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-10  2:04 [PATCH 9/9] Add "__RTL" to cc1 (v8) David Malcolm
2017-01-10  2:04 ` [PATCH 9g] Extend .md and RTL parsing to support being wired up to cc1 David Malcolm
2017-01-16 22:04   ` Jeff Law
2017-01-16 23:09     ` David Malcolm
2017-01-10  2:04 ` [PATCH 9i] testsuite: add aarch64-specific files David Malcolm
2017-01-16 22:00   ` Jeff Law
2017-01-10  2:04 ` [PATCH 9b] Don't assume that copy tables were initialized David Malcolm
2017-01-10 13:37   ` Richard Biener
2017-01-10  2:04 ` [PATCH 9c] callgraph: handle __RTL functions David Malcolm
2017-01-16 21:25   ` Jeff Law
2017-01-17  9:21     ` Richard Biener
2017-01-17 12:36       ` Jan Hubicka
2017-01-17 17:25         ` David Malcolm
2017-01-18 12:51           ` Jan Hubicka
2017-01-18  0:35       ` Jeff Law
2017-01-10  2:04 ` [PATCH 9d] Don't call delete_tree_ssa for " David Malcolm
2017-01-10 13:42   ` Richard Biener
2017-01-16 21:15     ` Jeff Law
2017-01-16 21:14   ` Jeff Law
2017-01-10  2:04 ` [PATCH 9h] testsuite: add platform-independent files David Malcolm
2017-01-16 21:56   ` Jeff Law
2017-01-10  2:04 ` [PATCH 9j] testsuite: add x86_64-specific files David Malcolm
2017-01-16 21:59   ` Jeff Law
2017-01-10  2:04 ` [PATCH 9f] Add a way for the C frontend to compile __RTL-tagged functions David Malcolm
2017-01-16 21:55   ` Jeff Law
2017-01-16 23:23     ` David Malcolm
2017-01-22  9:05       ` Jeff Law
2017-01-10  2:04 ` [PATCH 9a] Add "__RTL" to C frontend David Malcolm
2017-01-10 22:57   ` Joseph Myers
2017-01-10  2:04 ` [PATCH 9e] Update "startwith" logic for pass-skipping to handle __RTL functions David Malcolm
2017-01-16 21:42   ` Jeff Law
2017-01-17  9:28     ` Richard Biener
2017-01-17 21:10       ` [PATCH] Introduce opt_pass::skip virtual function David Malcolm
2017-01-18 16:39       ` [PATCH 9e] Update "startwith" logic for pass-skipping to handle __RTL functions Jeff Law
2017-01-18 17:19         ` David Malcolm
2017-01-19  9:31         ` Richard Biener
2017-01-19 16:52           ` [PATCH, v2] (9e) " David Malcolm
2017-01-20  8:07             ` Richard Biener
2017-01-20 14:57               ` David Malcolm
2017-01-20 15:20                 ` Richard Biener
2017-01-24 17:55                   ` [committed][PATCH 9/9] Add "__RTL" to cc1 (v9) David Malcolm
2017-01-24 18:06                     ` Joseph Myers
2017-01-23 23:59             ` [PATCH, v2] (9e) Update "startwith" logic for pass-skipping to handle __RTL functions Jeff Law
2017-01-20 20:37           ` [PATCH 9e] " Jeff Law

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