public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/101008] New: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g
@ 2021-06-10  6:00 zsojka at seznam dot cz
  2021-06-10  7:02 ` [Bug rtl-optimization/101008] " rguenth at gcc dot gnu.org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: zsojka at seznam dot cz @ 2021-06-10  6:00 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 101008
           Summary: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with
                    -O -g
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-pc-linux-gnu

Created attachment 50975
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50975&action=edit
reduced testcase

Compiler output:
$ x86_64-pc-linux-gnu-gcc -O -g testcase.c 
during RTL pass: expand
testcase.c: In function 'foo':
testcase.c:9:1: internal compiler error: in native_encode_rtx, at
simplify-rtx.c:6594
    9 | foo(void)
      | ^~~
0x723dc0 native_encode_rtx(machine_mode, rtx_def*, vec<unsigned char, va_heap,
vl_ptr>&, unsigned int, unsigned int)
        /repo/gcc-trunk/gcc/simplify-rtx.c:6594
0x1065220 simplify_immed_subreg
        /repo/gcc-trunk/gcc/simplify-rtx.c:7034
0x1065220 simplify_context::simplify_subreg(machine_mode, rtx_def*,
machine_mode, poly_int<1u, unsigned long>)
        /repo/gcc-trunk/gcc/simplify-rtx.c:7110
0x1066499 simplify_context::simplify_gen_subreg(machine_mode, rtx_def*,
machine_mode, poly_int<1u, unsigned long>)
        /repo/gcc-trunk/gcc/simplify-rtx.c:7334
0xba5f1a simplify_gen_subreg(machine_mode, rtx_def*, machine_mode, poly_int<1u,
unsigned long>)
        /repo/gcc-trunk/gcc/rtl.h:3519
0xba5f1a expand_debug_expr
        /repo/gcc-trunk/gcc/cfgexpand.c:4823
0xba3d49 expand_debug_expr
        /repo/gcc-trunk/gcc/cfgexpand.c:5279
0xba3a54 expand_debug_expr
        /repo/gcc-trunk/gcc/cfgexpand.c:5238
0xba75f9 expand_debug_locations
        /repo/gcc-trunk/gcc/cfgexpand.c:5616
0xbafbdc execute
        /repo/gcc-trunk/gcc/cfgexpand.c:6785
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.


$ x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r12-1353-20210609220850-gf8b067056ba-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--disable-bootstrap --with-cloog --with-ppl --with-isl
--build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
--target=x86_64-pc-linux-gnu --with-ld=/usr/bin/x86_64-pc-linux-gnu-ld
--with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-r12-1353-20210609220850-gf8b067056ba-checking-yes-rtl-df-extra-nobootstrap-amd64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.0.0 20210610 (experimental) (GCC)

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

* [Bug rtl-optimization/101008] ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g
  2021-06-10  6:00 [Bug rtl-optimization/101008] New: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g zsojka at seznam dot cz
@ 2021-06-10  7:02 ` rguenth at gcc dot gnu.org
  2021-06-10 10:37 ` jakub at gcc dot gnu.org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-10  7:02 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2021-06-10
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

#1  0x000000000130f66a in native_encode_rtx (mode=E_V4SImode, 
    x=0x7ffff65714a0, bytes=..., first_byte=0, num_bytes=4)
    at /home/rguenther/src/gcc2/gcc/simplify-rtx.c:6594
6594      gcc_assert (GET_MODE (x) == VOIDmode
(gdb) p debug_rtx (x)
(const_int 1 [0x1])

for expanding BIT_FIELD_REF <_12, 32, 0>

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

* [Bug rtl-optimization/101008] ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g
  2021-06-10  6:00 [Bug rtl-optimization/101008] New: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g zsojka at seznam dot cz
  2021-06-10  7:02 ` [Bug rtl-optimization/101008] " rguenth at gcc dot gnu.org
@ 2021-06-10 10:37 ` jakub at gcc dot gnu.org
  2021-06-10 12:37 ` jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-06-10 10:37 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |jakub at gcc dot gnu.org
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Seems to be a simplify-rtx.c bug.
simplify_binary_operation (IOR, V4SImode, (ne:V4SI (reg:V4SI 82 [ v.0_2 ])
(reg:V4SI 83 [ _4 ])), (eq:V4SI (reg:V4SI 82 [ v.0_2 ]) (reg:V4SI 83 [ _4 ])))
returns (const_int 1 [0x1]), which is wrong.

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

* [Bug rtl-optimization/101008] ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g
  2021-06-10  6:00 [Bug rtl-optimization/101008] New: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g zsojka at seznam dot cz
  2021-06-10  7:02 ` [Bug rtl-optimization/101008] " rguenth at gcc dot gnu.org
  2021-06-10 10:37 ` jakub at gcc dot gnu.org
@ 2021-06-10 12:37 ` jakub at gcc dot gnu.org
  2021-06-11 11:00 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-06-10 12:37 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 50979
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50979&action=edit
gcc12-pr101008.patch

Untested fix.

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

* [Bug rtl-optimization/101008] ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g
  2021-06-10  6:00 [Bug rtl-optimization/101008] New: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g zsojka at seznam dot cz
                   ` (2 preceding siblings ...)
  2021-06-10 12:37 ` jakub at gcc dot gnu.org
@ 2021-06-11 11:00 ` cvs-commit at gcc dot gnu.org
  2021-06-11 12:10 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-06-11 11:00 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 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:4bdcdd8fa8d7659e5a19a930cf2f0332127f8a46

commit r12-1386-g4bdcdd8fa8d7659e5a19a930cf2f0332127f8a46
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Jun 11 12:59:43 2021 +0200

    simplify-rtx: Fix up simplify_logical_relational_operation for vector IOR
[PR101008]

    simplify_relational_operation callees typically return just const0_rtx
    or const_true_rtx and then simplify_relational_operation attempts to fix
    that up if the comparison result has vector mode, or floating mode,
    or punt if it has scalar mode and vector mode operands (it doesn't know how
    exactly to deal with the scalar masks).
    But, simplify_logical_relational_operation has a special case, where
    it attempts to fold (x < y) | (x >= y) etc. and if it determines it is
    always true, it just returns const_true_rtx, without doing the dances that
    simplify_relational_operation does.
    That results in an ICE on the following testcase, where such folding
happens
    during expansion (of debug stmts into DEBUG_INSNs) and we ICE because
    all of sudden a VOIDmode rtx appears where it expects a vector (V4SImode)
    rtx.

    The following patch fixes that by moving the adjustement into a separate
    helper routine and using it from both simplify_relational_operation and
    simplify_logical_relational_operation.

    2021-06-11  Jakub Jelinek  <jakub@redhat.com>

            PR rtl-optimization/101008
            * simplify-rtx.c (relational_result): New function.
            (simplify_logical_relational_operation,
            simplify_relational_operation): Use it.

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

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

* [Bug rtl-optimization/101008] ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g
  2021-06-10  6:00 [Bug rtl-optimization/101008] New: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g zsojka at seznam dot cz
                   ` (3 preceding siblings ...)
  2021-06-11 11:00 ` cvs-commit at gcc dot gnu.org
@ 2021-06-11 12:10 ` jakub at gcc dot gnu.org
  2021-06-17  5:59 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-06-11 12:10 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed, again except for the testcase might be desirable to backport.

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

* [Bug rtl-optimization/101008] ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g
  2021-06-10  6:00 [Bug rtl-optimization/101008] New: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g zsojka at seznam dot cz
                   ` (4 preceding siblings ...)
  2021-06-11 12:10 ` jakub at gcc dot gnu.org
@ 2021-06-17  5:59 ` cvs-commit at gcc dot gnu.org
  2022-05-10  8:18 ` cvs-commit at gcc dot gnu.org
  2022-10-28 23:25 ` pinskia at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-06-17  5:59 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 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:8cd45af39ddc14fc77017a2d4c2aceb9a915ab4b

commit r11-8593-g8cd45af39ddc14fc77017a2d4c2aceb9a915ab4b
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Jun 11 12:59:43 2021 +0200

    simplify-rtx: Fix up simplify_logical_relational_operation for vector IOR
[PR101008]

    simplify_relational_operation callees typically return just const0_rtx
    or const_true_rtx and then simplify_relational_operation attempts to fix
    that up if the comparison result has vector mode, or floating mode,
    or punt if it has scalar mode and vector mode operands (it doesn't know how
    exactly to deal with the scalar masks).
    But, simplify_logical_relational_operation has a special case, where
    it attempts to fold (x < y) | (x >= y) etc. and if it determines it is
    always true, it just returns const_true_rtx, without doing the dances that
    simplify_relational_operation does.
    That results in an ICE on the following testcase, where such folding
happens
    during expansion (of debug stmts into DEBUG_INSNs) and we ICE because
    all of sudden a VOIDmode rtx appears where it expects a vector (V4SImode)
    rtx.

    The following patch fixes that by moving the adjustement into a separate
    helper routine and using it from both simplify_relational_operation and
    simplify_logical_relational_operation.

    2021-06-11  Jakub Jelinek  <jakub@redhat.com>

            PR rtl-optimization/101008
            * simplify-rtx.c (relational_result): New function.
            (simplify_logical_relational_operation,
            simplify_relational_operation): Use it.

    (cherry picked from commit 4bdcdd8fa8d7659e5a19a930cf2f0332127f8a46)

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

* [Bug rtl-optimization/101008] ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g
  2021-06-10  6:00 [Bug rtl-optimization/101008] New: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g zsojka at seznam dot cz
                   ` (5 preceding siblings ...)
  2021-06-17  5:59 ` cvs-commit at gcc dot gnu.org
@ 2022-05-10  8:18 ` cvs-commit at gcc dot gnu.org
  2022-10-28 23:25 ` pinskia at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-05-10  8:18 UTC (permalink / raw)
  To: gcc-bugs

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

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

https://gcc.gnu.org/g:6ff30182d2e725d50e88a7d01c7bea7240ef70ee

commit r10-10618-g6ff30182d2e725d50e88a7d01c7bea7240ef70ee
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Jun 11 12:59:43 2021 +0200

    simplify-rtx: Fix up simplify_logical_relational_operation for vector IOR
[PR101008]

    simplify_relational_operation callees typically return just const0_rtx
    or const_true_rtx and then simplify_relational_operation attempts to fix
    that up if the comparison result has vector mode, or floating mode,
    or punt if it has scalar mode and vector mode operands (it doesn't know how
    exactly to deal with the scalar masks).
    But, simplify_logical_relational_operation has a special case, where
    it attempts to fold (x < y) | (x >= y) etc. and if it determines it is
    always true, it just returns const_true_rtx, without doing the dances that
    simplify_relational_operation does.
    That results in an ICE on the following testcase, where such folding
happens
    during expansion (of debug stmts into DEBUG_INSNs) and we ICE because
    all of sudden a VOIDmode rtx appears where it expects a vector (V4SImode)
    rtx.

    The following patch fixes that by moving the adjustement into a separate
    helper routine and using it from both simplify_relational_operation and
    simplify_logical_relational_operation.

    2021-06-11  Jakub Jelinek  <jakub@redhat.com>

            PR rtl-optimization/101008
            * simplify-rtx.c (relational_result): New function.
            (simplify_logical_relational_operation,
            simplify_relational_operation): Use it.

    (cherry picked from commit 4bdcdd8fa8d7659e5a19a930cf2f0332127f8a46)

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

* [Bug rtl-optimization/101008] ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g
  2021-06-10  6:00 [Bug rtl-optimization/101008] New: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g zsojka at seznam dot cz
                   ` (6 preceding siblings ...)
  2022-05-10  8:18 ` cvs-commit at gcc dot gnu.org
@ 2022-10-28 23:25 ` pinskia at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-10-28 23:25 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |10.4

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

end of thread, other threads:[~2022-10-28 23:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-10  6:00 [Bug rtl-optimization/101008] New: ICE: in native_encode_rtx, at simplify-rtx.c:6594 with -O -g zsojka at seznam dot cz
2021-06-10  7:02 ` [Bug rtl-optimization/101008] " rguenth at gcc dot gnu.org
2021-06-10 10:37 ` jakub at gcc dot gnu.org
2021-06-10 12:37 ` jakub at gcc dot gnu.org
2021-06-11 11:00 ` cvs-commit at gcc dot gnu.org
2021-06-11 12:10 ` jakub at gcc dot gnu.org
2021-06-17  5:59 ` cvs-commit at gcc dot gnu.org
2022-05-10  8:18 ` cvs-commit at gcc dot gnu.org
2022-10-28 23:25 ` pinskia 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).