Bug 115321 - [15 regression] ICE when building grub (extract_insn, at recog.cc:2812) since r15-930
Summary: [15 regression] ICE when building grub (extract_insn, at recog.cc:2812) since...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 15.0
: P3 normal
Target Milestone: 15.0
Assignee: Uroš Bizjak
URL:
Keywords: ice-on-valid-code
: 115329 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-06-02 22:12 UTC by Sam James
Modified: 2024-06-03 14:10 UTC (History)
2 users (show)

See Also:
Host:
Target: i?86-*-* x86_64-*-*
Build:
Known to work:
Known to fail:
Last reconfirmed: 2024-06-03 00:00:00


Attachments
pgp_module-pgp.i (23.97 KB, text/plain)
2024-06-02 22:12 UTC, Sam James
Details
Patch (553 bytes, patch)
2024-06-03 06:41 UTC, Uroš Bizjak
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sam James 2024-06-02 22:12:44 UTC
Created attachment 58326 [details]
pgp_module-pgp.i

```
$ gcc -c ./commands/pgp_module-pgp.i -m32 -march=i386
In file included from /var/tmp/portage/sys-boot/grub-2.12-r4/work/grub-2.12/grub-core/commands/pgp.c:19:
/var/tmp/portage/sys-boot/grub-2.12-r4/work/grub-2.12/include/grub/types.h: In function ‘grub_swap_bytes32’:
/var/tmp/portage/sys-boot/grub-2.12-r4/work/grub-2.12/include/grub/types.h:218:1: error: unrecognizable insn:
  218 | }
      | ^
(insn 5 2 6 2 (set (reg:SI 101)
        (ior:SI (and:SI (mem/c:SI (reg/f:SI 92 virtual-incoming-args) [2 x+0 S4 A32])
                (const_int -65536 [0xffffffffffff0000]))
            (lshiftrt:SI (bswap:SI (mem/c:SI (reg/f:SI 92 virtual-incoming-args) [2 x+0 S4 A32]))
                (const_int 16 [0x10])))) "/var/tmp/portage/sys-boot/grub-2.12-r4/work/grub-2.12/include/grub/types.h":217:9 -1
     (nil))
during RTL pass: vregs
/var/tmp/portage/sys-boot/grub-2.12-r4/work/grub-2.12/include/grub/types.h:218:1: internal compiler error: in extract_insn, at recog.cc:2812
0x565212e8b58d _fatal_insn(char const*, rtx_def const*, char const*, int, char const*)
        /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/rtl-error.cc:108
0x565212e8ca9a _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/rtl-error.cc:116
0x5652124c38e5 extract_insn(rtx_insn*)
        /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/recog.cc:2812
0x565213bbfa20 instantiate_virtual_regs_in_insn
        /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/function.cc:1612
0x565213bbfa20 instantiate_virtual_regs
        /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/function.cc:1995
0x565213bbf715 execute
        /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/function.cc:2042
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://bugs.gentoo.org/> for instructions.
```

```
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/15/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-15.0.9999/work/gcc-15.0.9999/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/15 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/15/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/15 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/15/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/15/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15 --disable-silent-rules --disable-dependency-tracking --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/15/python --enable-languages=c,c++,fortran,rust --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=yes,extra,rtl --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo Hardened 15.0.9999 p, commit 9a866462097fe24696c924a3874fd307c775e860' --with-gcc-major-version-only --enable-libstdcxx-time --enable-lto --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-multilib --with-multilib-list=m32,m64 --disable-fixed-point --enable-targets=all --enable-libgomp --disable-libssp --disable-libada --disable-cet --disable-systemtap --enable-valgrind-annotations --disable-vtable-verify --disable-libvtv --with-zstd --with-isl --disable-isl-version-check --enable-default-pie --enable-host-pie --enable-host-bind-now --enable-default-ssp --disable-fixincludes --with-build-config='bootstrap-O3 bootstrap-lto'
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 15.0.0 20240601 (experimental) 85f15ea65a97686ad39af0c14b7dd9a9372e3a19 (Gentoo Hardened 15.0.9999 p, commit 9a866462097fe24696c924a3874fd307c775e860)
```
Comment 1 Andrew Pinski 2024-06-02 22:18:19 UTC
I am 99.99% sure this was introduced by r15-930-ge715204f203d31 .
Comment 2 Sam James 2024-06-02 22:30:00 UTC Comment hidden (obsolete)
Comment 3 Sam James 2024-06-02 22:32:27 UTC
uh, void grub_cmd_distrust(unsigned x) { x = __builtin_bswap32(x); }, obviously ;)
Comment 4 Uroš Bizjak 2024-06-03 06:41:31 UTC
Created attachment 58327 [details]
Patch
Comment 5 GCC Commits 2024-06-03 13:50:05 UTC
The master branch has been updated by Uros Bizjak <uros@gcc.gnu.org>:

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

commit r15-993-g6ab5145825ca7e96fcbe3aa505d42e4ae8f81009
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Mon Jun 3 15:48:18 2024 +0200

    i386: Force operand 1 of bswapsi2 to a register for !TARGET_BSWAP [PR115321]
    
            PR target/115321
    
    gcc/ChangeLog:
    
            * config/i386/i386.md (bswapsi2): Force operand 1
            to a register also for !TARGET_BSWAP.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr115321.c: New test.
Comment 6 Uroš Bizjak 2024-06-03 13:52:13 UTC
Fixed.
Comment 7 Andrew Pinski 2024-06-03 14:10:35 UTC
*** Bug 115329 has been marked as a duplicate of this bug. ***