Ping

On Tue, May 20, 2025 at 09:22:55AM +0200, Stefan Schulze Frielinghaus wrote:
> This is a follow-up to
> https://gcc.gnu.org/pipermail/gcc-patches/2025-January/672941.html
> with basically the only change of adding more tests like for aarch64 and
> the y constraint or for i386 and constraints S,D,A.
> 
> I just realized that in the second patch "Error handling for hard
> register constraints" locs may be different, now.  For example
> 
> gcc.target/i386/pr79804.c: In function ‘foo’:
> gcc.target/i386/pr79804.c:9:3: error: register for operand 0 is an internal 
> GCC implementation detail
> 
> prior my patch the line number was 7 and not 9 as it is now.  This is
> due to how I iterate over an inline asm statement during gimplification
> and error out over operands instead of erroring out for register asm
> decls.  I didn't dare to fix this right now since I already spend quite
> some time on it over the course of more than a year and would rather
> like to get some feedback whether the implementation of hard register
> constraints is sensible at all or whether I should drop this patch.
> 
> Cheers,
> Stefan
> 
> 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/config/cris/cris.cc                       |   6 +-
>  gcc/config/i386/i386.cc                       |   6 +
>  gcc/config/s390/s390.cc                       |   6 +-
>  gcc/doc/extend.texi                           | 178 +++++++++++
>  gcc/doc/md.texi                               |   6 +
>  gcc/function.cc                               | 116 ++++++++
>  gcc/genoutput.cc                              |  60 ++++
>  gcc/genpreds.cc                               |   4 +-
>  gcc/gimplify.cc                               | 236 ++++++++++++++-
>  gcc/gimplify_reg_info.h                       | 169 +++++++++++
>  gcc/ira.cc                                    |  79 ++++-
>  gcc/lra-constraints.cc                        |  13 +
>  gcc/output.h                                  |   2 +
>  gcc/recog.cc                                  |  11 +-
>  gcc/stmt.cc                                   | 278 +++++++++++++++++-
>  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.dg/asm-hard-reg-demotion-error-1.c    |  29 ++
>  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   |  26 ++
>  gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c   |  27 ++
>  gcc/testsuite/gcc.dg/asm-hard-reg-error-4.c   |  24 ++
>  gcc/testsuite/gcc.dg/asm-hard-reg-error-5.c   |  13 +
>  gcc/testsuite/gcc.dg/pr87600-2.c              |  30 +-
>  gcc/testsuite/gcc.dg/pr87600-3.c              |  35 +++
>  .../gcc.target/aarch64/asm-hard-reg-1.c       |  55 ++++
>  .../gcc.target/i386/asm-hard-reg-1.c          | 115 ++++++++
>  .../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.target/s390/asm-hard-reg-4.c          |   6 +
>  .../gcc.target/s390/asm-hard-reg-5.c          |   6 +
>  .../gcc.target/s390/asm-hard-reg-6.c          | 152 ++++++++++
>  .../gcc.target/s390/asm-hard-reg-longdouble.h |  18 ++
>  gcc/testsuite/lib/scanasm.exp                 |   4 +
>  gcc/toplev.cc                                 |   4 +
>  48 files changed, 2409 insertions(+), 100 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-error-1.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/asm-hard-reg-error-4.c
>  create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-5.c
>  create mode 100644 gcc/testsuite/gcc.dg/pr87600-3.c
>  create mode 100644 gcc/testsuite/gcc.target/aarch64/asm-hard-reg-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/asm-hard-reg-1.c
>  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
>  create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-4.c
>  create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-5.c
>  create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-6.c
>  create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-longdouble.h
> 
> -- 
> 2.49.0
> 

Reply via email to