[v2,0/4] Hard Register Constraints

Message ID 20240918144332.3544018-1-stefansf@gcc.gnu.org
Headers
Series Hard Register Constraints |

Message

Stefan Schulze Frielinghaus Sept. 18, 2024, 2:43 p.m. UTC
  This is a follow-up to
https://gcc.gnu.org/pipermail/gcc-patches/2024-September/662725.html

I basically added only some documentation to the first patch.  If you
think that gcc/doc/extend.texi isn't the right place (especially the
discussion part which will be dropped/rephrased in the end anyway), then
just let me know.

Stefan Schulze Frielinghaus (4):
  Hard register constraints
  Error handling for hard register constraints
  genoutput: Verify hard register constraints
  Rewrite register asm into hard register constraints

 gcc/cfgexpand.cc                              |  42 ---
 gcc/common.opt                                |   4 +
 gcc/doc/extend.texi                           | 189 ++++++++++++
 gcc/doc/md.texi                               |   6 +
 gcc/function.cc                               | 116 ++++++++
 gcc/genoutput.cc                              |  60 ++++
 gcc/genpreds.cc                               |   4 +-
 gcc/gimplify.cc                               | 151 +++++++++-
 gcc/gimplify_reg_info.h                       | 130 +++++++++
 gcc/ira.cc                                    |  79 +++++-
 gcc/lra-constraints.cc                        |  13 +
 gcc/output.h                                  |   2 +
 gcc/recog.cc                                  |  11 +-
 gcc/stmt.cc                                   | 268 +++++++++++++++++-
 gcc/stmt.h                                    |   9 +-
 gcc/testsuite/gcc.dg/asm-hard-reg-1.c         |  85 ++++++
 gcc/testsuite/gcc.dg/asm-hard-reg-2.c         |  33 +++
 gcc/testsuite/gcc.dg/asm-hard-reg-3.c         |  25 ++
 gcc/testsuite/gcc.dg/asm-hard-reg-4.c         |  50 ++++
 gcc/testsuite/gcc.dg/asm-hard-reg-5.c         |  36 +++
 gcc/testsuite/gcc.dg/asm-hard-reg-6.c         |  60 ++++
 gcc/testsuite/gcc.dg/asm-hard-reg-7.c         |  41 +++
 gcc/testsuite/gcc.dg/asm-hard-reg-8.c         |  49 ++++
 .../gcc.dg/asm-hard-reg-demotion-1.c          |  19 ++
 .../gcc.dg/asm-hard-reg-demotion-2.c          |  19 ++
 gcc/testsuite/gcc.dg/asm-hard-reg-demotion.h  |  52 ++++
 gcc/testsuite/gcc.dg/asm-hard-reg-error-1.c   |  83 ++++++
 gcc/testsuite/gcc.dg/asm-hard-reg-error-2.c   |  20 ++
 gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c   |  21 ++
 gcc/testsuite/gcc.dg/pr87600-2.c              |  30 +-
 gcc/testsuite/gcc.dg/pr87600-3.c              |  35 +++
 gcc/testsuite/gcc.dg/pr87600-3.s              |   0
 .../gcc.target/s390/asm-hard-reg-1.c          | 103 +++++++
 .../gcc.target/s390/asm-hard-reg-2.c          |  43 +++
 .../gcc.target/s390/asm-hard-reg-3.c          |  42 +++
 gcc/testsuite/lib/scanasm.exp                 |   4 +
 gcc/toplev.cc                                 |   4 +
 37 files changed, 1851 insertions(+), 87 deletions(-)
 create mode 100644 gcc/gimplify_reg_info.h
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-1.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-2.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-3.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-4.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-5.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-6.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-7.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-8.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-1.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-2.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion.h
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-1.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-2.c
 create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c
 create mode 100644 gcc/testsuite/gcc.dg/pr87600-3.c
 create mode 100644 gcc/testsuite/gcc.dg/pr87600-3.s
 create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-1.c
 create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-2.c
 create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-3.c