[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