[Bug optimization/12630] [3.4 regression] Various unrecognizable insns and ICEs at -O3
Jan Hubicka
hubicka@ucw.cz
Mon Oct 20 20:31:00 GMT 2003
> PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12630
>
>
> danglin at gcc dot gnu dot org changed:
>
> What |Removed |Added
> ----------------------------------------------------------------------------
> Status|RESOLVED |UNCONFIRMED
> Resolution|FIXED |
>
>
> ------- Additional Comments From danglin at gcc dot gnu dot org 2003-10-20 17:08 -------
> There's still a problem. I haven't normally being testing the bootstrap
> with ada. With ada, the following error occurs:
>
> stage1/xgcc -Bstage1/ -B/home/dave/opt/gnu/hppa-linux/bin/ -c -g -O2 -gnatp
> g -gnata -I- -I. -Iada -I../../gcc/gcc/ada ../../gcc/gcc/ada/sem_prag.adb -o ada
> /sem_prag.o
> ../../gcc/gcc/ada/sem_prag.adb: In function `sem_prag.analyze_pragma':
>
> ../../gcc/gcc/ada/sem_prag.adb:3559: error: unable to find a register to spill i
> n class `R1_REGS'
> ../../gcc/gcc/ada/sem_prag.adb:3559: error: this is the insn:
> (insn 10661 16193 10665 1947 ../../gcc/gcc/ada/sem_prag.adb:7511 (parallel [
> (set (mem/s:BLK (reg/f:SI 2767) [101 sem__scope_suppress+0 S11 A8])
> (mem/s/u:BLK (reg/f:SI 2769) [1 S11 A8]))
> (clobber (scratch:SI))
> (clobber (scratch:SI))
> (clobber (reg:SI %r21 [2773]))
> (clobber (reg:SI %r20 [2774]))
> (clobber (reg:SI %r19 [2775]))
> (use (const_int 11 [0xb]))
> (use (const_int 1 [0x1]))
> ]) 72 {movstrsi_internal} (nil)
> (expr_list:REG_UNUSED (scratch:SI)
> (expr_list:REG_UNUSED (scratch:SI)
> (expr_list:REG_UNUSED (reg:SI %r21 [2773])
> (expr_list:REG_UNUSED (reg:SI %r20 [2774])
> (expr_list:REG_UNUSED (reg:SI %r19 [2775])
> (nil)))))))
> +===========================GNAT BUG DETECTED==============================+
> | 3.4 20031020 (experimental) (hppa-unknown-linux-gnu) GCC error: |
> | in spill_failure, at reload1.c:1862 |
> | Error detected at ../../gcc/gcc/ada/sem_prag.adb:3559:7 |
> | Please submit a bug report; see http://gcc.gnu.org/bugs.html. |
> | Include the entire contents of this bug box in the report. |
> | Include the exact gcc or gnatmake command that you entered. |
> | Also include sources listed below in gnatchop format |
> | (concatenated together with no headers between files). |
> +==========================================================================+
>
> Switching from match_dup to match_scratch introduced a need for two additional
> temporaries. We only have one register in the class R1_REGS.
Why these two temporaries are needed?
R1_REGS has constraint 'a' that is not used in the pattern at all so why
reload chooses to use it?
Honza
More information about the Gcc-bugs
mailing list