------- Additional Comments From dberlin at gcc dot gnu dot org 2005-03-18 21:33 ------- Subject: Re: New: [4.1 Regression] Bootstrap failure at -Os
On Fri, 2005-03-18 at 21:21 +0000, rearnsha at gcc dot gnu dot org wrote: > Bootstrapping with BOOT_CFLAGS="-Os -g" fails when the stage2 cc1 is used to > build crtstuff.o. The segmentation fault occurs in find_uses_to_rename_use > but > the error really seems to be in its caller find_uses_to_rename_bb > (tree-ssa-loop-manip.c). Looking at the tree dumps we have in t49.loopinit > > <L8>:; > stmt_35 = bsi_stmt (bsi); > get_stmt_operands (stmt_35); > var_38 = op_iter_init_tree (&iter, stmt_35, 13); > goto <bb 9> (<L10>); > > <L9>:; > var_45 = op_iter_next_tree (&iter); > > <L10>:; > D.17355_41 = iter.done; > D.17353_42 = (int) D.17355_41; > D.17347_44 = (unsigned char) D.17353_42; > if (D.17347_44 == 0) goto <L9>; else goto <L12>; > > but in t50.lim we have: > > <L8>:; > stmt_35 = bsi_stmt (bsi); > get_stmt_operands (stmt_35); > var_38 = op_iter_init_tree (&iter, stmt_35, 13); > lsm_tmp.500_356 = iter.done; > goto <bb 9> (<L10>); > > <L9>:; > var_45 = op_iter_next_tree (&iter); > > <L10>:; > D.17355_41 = lsm_tmp.500_356; > D.17353_42 = (int) D.17355_41; > D.17347_44 = (unsigned char) D.17353_42; > if (D.17347_44 == 0) goto <L9>; else goto <L18>; > > <L18>:; > iter.done = lsm_tmp.500_356; > > note that the use of iter.done has been hoisted out of the loop even though > the > call of op_iter_next_tree passes the address of iter. This is probably because is_call_clobbered_ref is wrong for variables that have subvars (it checks the base var instead of the SFT's). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20542