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