------- Comment #2 from rguenth at gcc dot gnu dot org 2006-04-17 10:34 -------
#5 0x081a8738 in get_val_for (x=0xb7dedea0, base=0xb7d70480) at /space/rguenther/src/svn/gcc-4_1-branch/gcc/tree-ssa-loop-niter.c:1254 1254 val = fold (TREE_OPERAND (stmt, 1)); (gdb) call debug_generic_expr(stmt) xD.1278_3 = __builtin_pow (4.0e+0, 2.0e+0) which we don't evaluate at compile-time. So loop_niter_by_eval builds (gdb) call debug_generic_expr(expr) __builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow (__builtin_pow ...... on which we punt at some point. Now, we definitely should fold 4.0**2.0 at compile time, too. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org, rakdver at gcc dot gnu | |dot org Keywords| |missed-optimization http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27136