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

--- Comment #9 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to H.J. Lu from comment #8)
> Created attachment 60607 [details]
> A patch
> 
> Here is the patch to change TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P to
> return false for x86-64.

This doesn't work:

/export/build/gnu/tools-build/gcc-gitlab/build-x86_64-linux/./prev-gcc/xgcc
-B/export/build/gnu/tools-build/gcc-gitlab/build-x86_64-linux/./prev-gcc/
-B/usr/gcc-15.0.1-x86-64/x86_64-pc-linux-gnu/bin/
-B/usr/gcc-15.0.1-x86-64/x86_64-pc-linux-gnu/bin/
-B/usr/gcc-15.0.1-x86-64/x86_64-pc-linux-gnu/lib/ -isystem
/usr/gcc-15.0.1-x86-64/x86_64-pc-linux-gnu/include -isystem
/usr/gcc-15.0.1-x86-64/x86_64-pc-linux-gnu/sys-include   -fno-checking -c -g
-O2 -fno-checking -gtoggle  -gnatpg -gnata -W -Wall -fno-PIE -nostdinc -I- -I.
-Iada/generated -Iada -I/export/gnu/import/git/gitlab/x86-gcc/gcc/ada
-Iada/libgnat -I/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat
-Iada/gcc-interface
-I/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/gcc-interface
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_dim.adb -S -o /tmp/x.s
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_dim.adb: In function
‘Sem_Dim.Analyze_Dimension_Call’:
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_dim.adb:1804:8: error: unable
to find a register to spill
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_dim.adb:1804:8: error: this
is the insn:
(insn 115 777 6 13 (parallel [
            (set (reg:DI 208)
                (const_int 0 [0]))
            (set (reg/f:DI 384 [206])
                (plus:DI (ashift:DI (reg:DI 208)
                        (const_int 2 [0x2]))
                    (reg/f:DI 384 [206])))
            (set (reg:DI 385)
                (plus:DI (ashift:DI (reg:DI 208)
                        (const_int 2 [0x2]))
                    (reg:DI 385)))
            (set (mem/c:BLK (reg/f:DI 384 [206]) [19 MEM[(struct
sem_dim__rational[1:7] *)_146]+0 S56 A128])
                (mem/c:BLK (reg:DI 385) [19 MEM[(struct sem_dim__rational[1:7]
*)_254]+0 S56 A128]))
            (use (reg:DI 208))
        ]) "/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_dim.adb":1710:38
discrim 2 1766 {*rep_movsi}
     (expr_list:REG_UNUSED (reg:DI 208)
        (expr_list:REG_UNUSED (reg:DI 385)
            (expr_list:REG_UNUSED (reg/f:DI 384 [206])
                (nil)))))
during RTL pass: reload
+===========================GNAT BUG DETECTED==============================+
| 15.0.1 20250228 (experimental) (x86_64-pc-linux-gnu) GCC error:          |
| in lra_split_hard_reg_for, at lra-assigns.cc:1863                        |
| Error detected around
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_dim.adb:1804:8|
| Compiling /export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_dim.adb      |
| Please submit a bug report; see https://gcc.gnu.org/bugs/ .              |
| Use a subject line meaningful to you and us to track the bug.            |
| Include the entire contents of this bug box in the report.               |
| Include the exact command that you entered.                              |
| Also include sources listed below.                                       |
+==========================================================================+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.
Consider also -gnatd.n switch (see debug.adb).

/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/gcc-interface/system.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_dim.adb
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_dim.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/types.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/ada.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/a-unccon.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/a-uncdea.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/atree.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/alloc.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sinfo.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/namet.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/hostparm.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/table.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/uintp.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/urealp.ads
ada/sinfo-nodes.ads
ada/seinfo.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/output.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-os_lib.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-string.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/einfo.ads
ada/snames.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/stand.ads
ada/einfo-entities.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/einfo-utils.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/errout.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/err_vars.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/erroutc.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/exp_util.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/exp_tss.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/rtsfind.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/lib.ads
ada/gnat.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/g-htable.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-htable.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/nlists.ads
ada/nmake.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/opt.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-wchcon.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_aux.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_eval.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_res.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sem_util.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/aspects.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/sinfo-utils.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/stringt.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/tbuild.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-stalib.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-exctab.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-unstyp.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-conca2.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-assert.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/a-assert.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-secsta.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-parame.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-stoele.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/table.adb
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/debug.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-memory.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/a-except.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-traent.ads
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-htable.adb
/export/gnu/import/git/gitlab/x86-gcc/gcc/ada/libgnat/s-strhas.ads


raised TYPES.UNRECOVERABLE_ERROR : comperr.adb:422

Reply via email to