This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patches] Re: infinite loop in SPEC's gcc after your patches
> While you updated gcse to basically preserve the CFG, local cse
> was not updated. Both have been run at this point, and the CFG
> is corrupt; cleanup_cfg then makes things worse, which leads to
> the abort.
Uff, this is another problem, than I am shooting for. But good catch
too. I believe I've added all neccesary find_basic_blcoks, but obviously
I've missed this one.
Updating CFG after CSE is quite trivial. I will send patch for that once I
solve the remaining problems.
Bootstrapping i386, OK if suceeds?
Honza
Tue Jul 24 22:29:58 CEST 2001 Jan Hubicka <jh@suse.cz>
Pointed out by Richard Henderson:
* toplev.c (rest_of_compilation): Call find_basic_block before
cleanup_cfg is call after gcse.
Index: toplev.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/toplev.c,v
retrieving revision 1.497
diff -c -3 -p -r1.497 toplev.c
*** toplev.c 2001/07/24 18:34:06 1.497
--- toplev.c 2001/07/24 20:29:40
*************** rest_of_compilation (decl)
*** 3060,3065 ****
--- 3060,3066 ----
tem = tem2 = 0;
timevar_push (TV_JUMP);
rebuild_jump_labels (insns);
+ find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
cleanup_cfg (CLEANUP_EXPENSIVE);
timevar_pop (TV_JUMP);