[Bug target/35373] [4.4 Regression] bootstraping on powerpc-apple-darwin9 fails with revision 132578
fxcoudert at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sun Mar 2 18:05:00 GMT 2008
------- Comment #4 from fxcoudert at gcc dot gnu dot org 2008-03-02 18:05 -------
Here's the preprocessed source, reduced on ppc-darwin:
void maxloc1_4_r16 ()
{
int n, result, *dest;
long double *src, maxval;
for (n = 0; n < 10; n++, src++)
if (*src > maxval)
result++;
*dest = result;
}
It compiles at -O0 but fails at -O1. The backtrace is:
#0 fancy_abort (file=0x755644
"/var/tmp/gfortran-20080302/ibin/../gcc/gcc/explow.c", line=492,
function=0x856e04 "memory_address") at
/var/tmp/gfortran-20080302/ibin/../gcc/gcc/diagnostic.c:664
#1 0x0025f428 in memory_address (mode=TFmode, x=0x40db2370) at
/var/tmp/gfortran-20080302/ibin/../gcc/gcc/explow.c:492
#2 0x0055410c in get_computation_cost_at (data=<value temporarily unavailable,
due to optimizations>, use=<value temporarily unavailable, due to
optimizations>, cand=<value temporarily unavailable, due to optimizations>,
address_p=<value temporarily unavailable, due to optimizations>,
depends_on=<value temporarily unavailable, due to optimizations>, at=<value
temporarily unavailable, due to optimizations>) at
/var/tmp/gfortran-20080302/ibin/../gcc/gcc/tree-ssa-loop-ivopts.c:3066
#3 0x00554850 in determine_use_iv_cost (data=0xbffff558, use=0x40c10070,
cand=0x40c100d0) at
/var/tmp/gfortran-20080302/ibin/../gcc/gcc/tree-ssa-loop-ivopts.c:3616
#4 0x00554e30 in determine_use_iv_costs (data=0xbffff558) at
/var/tmp/gfortran-20080302/ibin/../gcc/gcc/tree-ssa-loop-ivopts.c:3888
#5 0x00558dac in tree_ssa_iv_optimize_loop (data=0xbffff558, loop=<value
temporarily unavailable, due to optimizations>) at
/var/tmp/gfortran-20080302/ibin/../gcc/gcc/tree-ssa-loop-ivopts.c:5453
#6 0x00559aa4 in tree_ssa_iv_optimize () at
/var/tmp/gfortran-20080302/ibin/../gcc/gcc/tree-ssa-loop-ivopts.c:5501
#7 0x0056a9e8 in tree_ssa_loop_ivopts () at
/var/tmp/gfortran-20080302/ibin/../gcc/gcc/tree-ssa-loop.c:550
and the lines around the failed assert:
(gdb) l 490
485 the register is a valid address. */
486 else
487 x = force_reg (Pmode, x);
488 }
489
490 done:
491
492 gcc_assert (memory_address_p (mode, x));
493 /* If we didn't change the address, we are done. Otherwise, mark
494 a reg as a pointer if we have REG or REG + CONST_INT. */
(gdb) p mode
$4 = TFmode
(gdb) p debug_rtx(x)
(plus:SI (reg:SI 119)
(reg/f:SI 119))
$5 = void
(gdb) p memory_address_p (mode, x)
$6 = 0
--
fxcoudert at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |fxcoudert at gcc dot gnu dot
| |org
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2008-03-02 18:05:04
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35373
More information about the Gcc-bugs
mailing list