http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47555
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-02-01 12:53:41 UTC --- Program received signal SIGINT, Interrupt. tree_code_size (code=POLYNOMIAL_CHREC) at /space/rguenther/src/svn/trunk/gcc/tree.c:737 737 } (gdb) up #1 0x0000000000c3d049 in make_node_stat (code=POLYNOMIAL_CHREC) at /space/rguenther/src/svn/trunk/gcc/tree.c:784 784 size_t length = tree_code_size (code); (gdb) bt .... #228 0x0000000000ac555c in follow_ssa_edge_in_condition_phi ( loop=0x7ffff7edcdd0, condition_phi=0x7ffff5bea800, halting_phi=0x7ffff5bf3400, evolution_of_loop=0x7fffffffd708, limit=0) at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1310 #229 0x0000000000ac5a94 in follow_ssa_edge (loop=0x7ffff7edcdd0, def=0x7ffff5bea800, halting_phi=0x7ffff5bf3400, evolution_of_loop=0x7fffffffd708, limit=0) at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1415 #230 0x0000000000ac5cd1 in analyze_evolution_in_loop ( loop_phi_node=0x7ffff5bf3400, init_cond=0x7ffff5bf2948) at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1492 #231 0x0000000000ac6108 in interpret_loop_phi (loop=0x7ffff7edcdd0, loop_phi_node=0x7ffff5bf3400) at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1631 #232 0x0000000000ac7403 in analyze_scalar_evolution_1 (loop=0x7ffff7edcdd0, var=0x7ffff5a329a0, res=0x0) at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1905 #233 0x0000000000ac754f in analyze_scalar_evolution (loop=0x7ffff7edcdd0, var=0x7ffff5a329a0) at /space/rguenther/src/svn/trunk/gcc/tree-scalar-evolution.c:1955 ---Type <return> to continue, or q <return> to quit--- #234 0x0000000000acbf0f in scev_const_prop () so we again run into exponential expression building in SCEV. The limit we set is 100 which means we allow 2^100 as expression size. That's quite useless (the limit was recently bumped from 20 we have on the 4.5 branch). PHI handling is also odd as we recurse with variable increases instead of with a constant one. I'm going to revert the parm change - its documentation also doesn't match the behavior of the parm, expression growth is at most limited to be O(2^parm), there is no real limit on the expression size.