public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux
@ 2023-01-02 13:55 jakub at gcc dot gnu.org
  2023-01-02 13:56 ` [Bug middle-end/108264] " jakub at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-02 13:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108264

            Bug ID: 108264
           Summary: [11/12/13 Regression] ICE compiling guacamole-server
                    on s390x-linux
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org
  Target Milestone: ---

int v;
extern int bar (void);

static inline void
foo (char *d)
{
  switch (bar ())
    {
    case 2:
      d[0] = d[1] = d[2] = d[3] = v;
      break;
    case 4:
      d[0] = 0;
    }
}

int
baz (int x)
{
  foo ((char *) &x);
  return x;
}

ICEs with -O2 -march=z13 -fpic (in 11 with -O2 -ftree-vectorize -march=z13
-fpic) in:
during RTL pass: expand
dump file: guacamole-ice.i.254r.expand
In function ‘foo’,
    inlined from ‘baz’ at guacamole-ice.i:20:3:
guacamole-ice.i:10:12: internal compiler error: in convert_move, at expr.cc:297
   10 |       d[0] = d[1] = d[2] = d[3] = v;
      |       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
This is when expanding
  _2 = {_6, _6, _6, _6};
  MEM <vector(4) char> [(char *)&x] = _2;
where
  vector(4) char _2;
and x is int PARM_DECL.
to in convert_move is (reg/v:DI 66 [ x+-4 ]) and from is (reg:V4QI 70) , so the
modes have different sizes.  But x is actually int and so the DImode is
argument promotion.

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

* [Bug middle-end/108264] [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux
  2023-01-02 13:55 [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux jakub at gcc dot gnu.org
@ 2023-01-02 13:56 ` jakub at gcc dot gnu.org
  2023-01-02 13:57 ` jakub at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-02 13:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108264

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |krebbel at gcc dot gnu.org
     Ever confirmed|0                           |1
           Priority|P3                          |P2
   Last reconfirmed|                            |2023-01-02
             Target|                            |s390x-linux
   Target Milestone|---                         |11.4

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

* [Bug middle-end/108264] [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux
  2023-01-02 13:55 [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux jakub at gcc dot gnu.org
  2023-01-02 13:56 ` [Bug middle-end/108264] " jakub at gcc dot gnu.org
@ 2023-01-02 13:57 ` jakub at gcc dot gnu.org
  2023-01-02 16:04 ` jakub at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-02 13:57 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108264

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
store_expr is called with target (subreg/s/u:SI (reg/v:DI 66 [ x+-4 ]) 4) where
the mode is still correct...

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

* [Bug middle-end/108264] [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux
  2023-01-02 13:55 [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux jakub at gcc dot gnu.org
  2023-01-02 13:56 ` [Bug middle-end/108264] " jakub at gcc dot gnu.org
  2023-01-02 13:57 ` jakub at gcc dot gnu.org
@ 2023-01-02 16:04 ` jakub at gcc dot gnu.org
  2023-01-03 11:13 ` cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-02 16:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108264

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 54175
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54175&action=edit
gcc13-pr108264.patch

Untested fix.

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

* [Bug middle-end/108264] [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux
  2023-01-02 13:55 [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux jakub at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2023-01-02 16:04 ` jakub at gcc dot gnu.org
@ 2023-01-03 11:13 ` cvs-commit at gcc dot gnu.org
  2023-01-03 11:14 ` [Bug middle-end/108264] [11/12 " jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-01-03 11:13 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108264

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:226a498733e7919de72eb6f1bf3e16883ad159f6

commit r13-4975-g226a498733e7919de72eb6f1bf3e16883ad159f6
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Jan 3 12:13:24 2023 +0100

    expr: Fix up store_expr into SUBREG_PROMOTED_* target [PR108264]

    The following testcase ICEs on s390x-linux (e.g. with -march=z13).
    The problem is that target is (subreg/s/u:SI (reg/v:DI 66 [ x+-4 ]) 4)
    and we call convert_move from temp to the SUBREG_REG of that, expecting
    to extend the value properly.  That works nicely if temp has some
    scalar integer mode (or partial one), but ICEs when temp has V4QImode
    on the assertion that from and to modes have the same bitsize.
    store_expr generally allows say store from V4QI to SI target because
    they have the same size and if temp is a CONST_INT, we already have code
    to convert the constant properly, so the following patch just adds handling
    of non-scalar integer modes by converting them to the mode of target
    first before convert_move extends them.

    2023-01-03  Jakub Jelinek  <jakub@redhat.com>

            PR middle-end/108264
            * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
            from source which doesn't have scalar integral mode first convert
            it to outer_mode.

            * gcc.dg/pr108264.c: New test.

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

* [Bug middle-end/108264] [11/12 Regression] ICE compiling guacamole-server on s390x-linux
  2023-01-02 13:55 [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux jakub at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2023-01-03 11:13 ` cvs-commit at gcc dot gnu.org
@ 2023-01-03 11:14 ` jakub at gcc dot gnu.org
  2023-02-10 17:45 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-01-03 11:14 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108264

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[11/12/13 Regression] ICE   |[11/12 Regression] ICE
                   |compiling guacamole-server  |compiling guacamole-server
                   |on s390x-linux              |on s390x-linux

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed on the trunk so far.

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

* [Bug middle-end/108264] [11/12 Regression] ICE compiling guacamole-server on s390x-linux
  2023-01-02 13:55 [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux jakub at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2023-01-03 11:14 ` [Bug middle-end/108264] [11/12 " jakub at gcc dot gnu.org
@ 2023-02-10 17:45 ` cvs-commit at gcc dot gnu.org
  2023-02-10 17:59 ` [Bug middle-end/108264] [11 " jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-02-10 17:45 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108264

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:ee25e54233c6a1548eda06aa9a11f09cd7eb32ac

commit r12-9135-gee25e54233c6a1548eda06aa9a11f09cd7eb32ac
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Jan 3 12:13:24 2023 +0100

    expr: Fix up store_expr into SUBREG_PROMOTED_* target [PR108264]

    The following testcase ICEs on s390x-linux (e.g. with -march=z13).
    The problem is that target is (subreg/s/u:SI (reg/v:DI 66 [ x+-4 ]) 4)
    and we call convert_move from temp to the SUBREG_REG of that, expecting
    to extend the value properly.  That works nicely if temp has some
    scalar integer mode (or partial one), but ICEs when temp has V4QImode
    on the assertion that from and to modes have the same bitsize.
    store_expr generally allows say store from V4QI to SI target because
    they have the same size and if temp is a CONST_INT, we already have code
    to convert the constant properly, so the following patch just adds handling
    of non-scalar integer modes by converting them to the mode of target
    first before convert_move extends them.

    2023-01-03  Jakub Jelinek  <jakub@redhat.com>

            PR middle-end/108264
            * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
            from source which doesn't have scalar integral mode first convert
            it to outer_mode.

            * gcc.dg/pr108264.c: New test.

    (cherry picked from commit 226a498733e7919de72eb6f1bf3e16883ad159f6)

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

* [Bug middle-end/108264] [11 Regression] ICE compiling guacamole-server on s390x-linux
  2023-01-02 13:55 [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux jakub at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2023-02-10 17:45 ` cvs-commit at gcc dot gnu.org
@ 2023-02-10 17:59 ` jakub at gcc dot gnu.org
  2023-05-02 20:13 ` cvs-commit at gcc dot gnu.org
  2023-05-03  9:36 ` jakub at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-10 17:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108264

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[11/12 Regression] ICE      |[11 Regression] ICE
                   |compiling guacamole-server  |compiling guacamole-server
                   |on s390x-linux              |on s390x-linux

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed for gcc 12.3 too.

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

* [Bug middle-end/108264] [11 Regression] ICE compiling guacamole-server on s390x-linux
  2023-01-02 13:55 [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux jakub at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2023-02-10 17:59 ` [Bug middle-end/108264] [11 " jakub at gcc dot gnu.org
@ 2023-05-02 20:13 ` cvs-commit at gcc dot gnu.org
  2023-05-03  9:36 ` jakub at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-05-02 20:13 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108264

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:4e41fedf81fb08aa2204e16f2341c74711e022ae

commit r11-10696-g4e41fedf81fb08aa2204e16f2341c74711e022ae
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Jan 3 12:13:24 2023 +0100

    expr: Fix up store_expr into SUBREG_PROMOTED_* target [PR108264]

    The following testcase ICEs on s390x-linux (e.g. with -march=z13).
    The problem is that target is (subreg/s/u:SI (reg/v:DI 66 [ x+-4 ]) 4)
    and we call convert_move from temp to the SUBREG_REG of that, expecting
    to extend the value properly.  That works nicely if temp has some
    scalar integer mode (or partial one), but ICEs when temp has V4QImode
    on the assertion that from and to modes have the same bitsize.
    store_expr generally allows say store from V4QI to SI target because
    they have the same size and if temp is a CONST_INT, we already have code
    to convert the constant properly, so the following patch just adds handling
    of non-scalar integer modes by converting them to the mode of target
    first before convert_move extends them.

    2023-01-03  Jakub Jelinek  <jakub@redhat.com>

            PR middle-end/108264
            * expr.c (store_expr): For stores into SUBREG_PROMOTED_* targets
            from source which doesn't have scalar integral mode first convert
            it to outer_mode.

            * gcc.dg/pr108264.c: New test.

    (cherry picked from commit 226a498733e7919de72eb6f1bf3e16883ad159f6)

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

* [Bug middle-end/108264] [11 Regression] ICE compiling guacamole-server on s390x-linux
  2023-01-02 13:55 [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux jakub at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2023-05-02 20:13 ` cvs-commit at gcc dot gnu.org
@ 2023-05-03  9:36 ` jakub at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-05-03  9:36 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108264

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed for 11.4 as well.

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

end of thread, other threads:[~2023-05-03  9:36 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-02 13:55 [Bug middle-end/108264] New: [11/12/13 Regression] ICE compiling guacamole-server on s390x-linux jakub at gcc dot gnu.org
2023-01-02 13:56 ` [Bug middle-end/108264] " jakub at gcc dot gnu.org
2023-01-02 13:57 ` jakub at gcc dot gnu.org
2023-01-02 16:04 ` jakub at gcc dot gnu.org
2023-01-03 11:13 ` cvs-commit at gcc dot gnu.org
2023-01-03 11:14 ` [Bug middle-end/108264] [11/12 " jakub at gcc dot gnu.org
2023-02-10 17:45 ` cvs-commit at gcc dot gnu.org
2023-02-10 17:59 ` [Bug middle-end/108264] [11 " jakub at gcc dot gnu.org
2023-05-02 20:13 ` cvs-commit at gcc dot gnu.org
2023-05-03  9:36 ` jakub at gcc dot gnu.org

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