From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16630 invoked by alias); 26 Oct 2002 22:39:50 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 16540 invoked from network); 26 Oct 2002 22:39:48 -0000 Received: from unknown (HELO nikam.ms.mff.cuni.cz) (195.113.18.106) by sources.redhat.com with SMTP; 26 Oct 2002 22:39:48 -0000 Received: from camelot.ms.mff.cuni.cz (kampanus.ms.mff.cuni.cz [195.113.18.107]) by nikam.ms.mff.cuni.cz (Postfix) with SMTP id 826E84E2A8; Sun, 27 Oct 2002 00:39:49 +0200 (CEST) Received: by camelot.ms.mff.cuni.cz (sSMTP sendmail emulation); Sun, 27 Oct 2002 00:39:46 +0200 Date: Sun, 27 Oct 2002 17:23:00 -0000 From: Jan Hubicka To: Graham Stott Cc: Andreas Jaeger , gcc@gcc.gnu.org, jh@suse.cz Subject: Re: Ada bootstrap fails on CVS mainline Message-ID: <20021026223946.GF18149@kam.mff.cuni.cz> References: <3DBA68D9.5090903@btinternet.com> <3DBABDBF.5070307@btinternet.com> <3DBACFF6.5080801@btinternet.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3DBACFF6.5080801@btinternet.com> User-Agent: Mutt/1.3.28i X-SW-Source: 2002-10/txt/msg01586.txt.bz2 > Graham Stott wrote: > >Graham Stott wrote: > > > >>Andreas, > >> > >>I did a i686-linux-gnu-pc bootstrap last night from a ~18:00pm cvs > >>checkout which went > >>through with no problems, including Ada. > >> > >>So it might be something that went in after that. > >> > >>I'll be updating again soon and do another bootstrap. > >> > >>Graham > >> > >> > > > >After today's update I get the same bootstrap failure :-( > > > >I suspect it's due to this patch > > > >------------------------------------------------------------------ > >Sat Oct 26 01:44:46 CEST 2002 Jan Hubicka > > > > * toplev.c (dump_file_index): Add DFI_ce3. > > (dump_file_info): Likewise. > > (rest_of_compilation): Run first ifcvt pass before tracer. > >------------------------------------------------------------------ > > > >I'm going to revert it in my tree and see if the failure goes away. > > > >Graham > > > > > > Yep reverting Jan's patch gets me back to bootstrap land again. Hi, I've sent a patch, but I won't be able to do ADA bootstrap before monday most probably. If you can do, could you please check the attached one? I am still bootstrapping it, but it has fixed the other failures my patch has caused. Hi, the problem has been uncovered latent bug - we didn't run reg-scan pass in all ocasions when cse2 has been disabled but used the info in final pass by enabling alias analysis. I am just testing the attached patch that makes the ifcvt1 pass to finish with reg_scan data valid and all the subsequent passes to update it as needed. I've verified it to test the testcase, bootstrap in progress. OK if it passes? Sun Oct 27 00:20:08 CEST 2002 Jan Hubicka * toplev.c (rest_of_compilation): Reorganize way reg_scan is called before final pass. Index: toplev.c =================================================================== RCS file: /cvs/gcc/egcs/gcc/toplev.c,v retrieving revision 1.684 diff -c -3 -p -r1.684 toplev.c *** toplev.c 25 Oct 2002 23:46:06 -0000 1.684 --- toplev.c 26 Oct 2002 22:19:53 -0000 *************** rest_of_compilation (decl) *** 2987,3003 **** close_dump_file (DFI_bp, print_rtl_with_bb, insns); timevar_pop (TV_BRANCH_PROB); } ! if (flag_if_conversion) { - timevar_push (TV_IFCVT); - if (rtl_dump_file) - dump_flow_info (rtl_dump_file); open_dump_file (DFI_ce1, decl); cleanup_cfg (CLEANUP_EXPENSIVE); reg_scan (insns, max_reg_num (), 0); ! if_convert (0); close_dump_file (DFI_ce1, print_rtl_with_bb, get_insns ()); - timevar_pop (TV_IFCVT); } if (flag_tracer) { --- 2987,3010 ---- close_dump_file (DFI_bp, print_rtl_with_bb, insns); timevar_pop (TV_BRANCH_PROB); } ! if (optimize >= 0) { open_dump_file (DFI_ce1, decl); + if (flag_if_conversion) + { + timevar_push (TV_IFCVT); + if (rtl_dump_file) + dump_flow_info (rtl_dump_file); + cleanup_cfg (CLEANUP_EXPENSIVE); + reg_scan (insns, max_reg_num (), 0); + if_convert (0); + timevar_pop (TV_IFCVT); + } + timevar_push (TV_JUMP); cleanup_cfg (CLEANUP_EXPENSIVE); reg_scan (insns, max_reg_num (), 0); ! timevar_pop (TV_JUMP); close_dump_file (DFI_ce1, print_rtl_with_bb, get_insns ()); } if (flag_tracer) { *************** rest_of_compilation (decl) *** 3005,3051 **** open_dump_file (DFI_tracer, decl); if (rtl_dump_file) dump_flow_info (rtl_dump_file); - cleanup_cfg (CLEANUP_EXPENSIVE); tracer (); cleanup_cfg (CLEANUP_EXPENSIVE); close_dump_file (DFI_tracer, print_rtl_with_bb, get_insns ()); timevar_pop (TV_TRACER); - reg_scan (get_insns (), max_reg_num (), 0); } ! if (optimize > 0) { timevar_push (TV_CSE2); open_dump_file (DFI_cse2, decl); if (rtl_dump_file) dump_flow_info (rtl_dump_file); ! if (flag_rerun_cse_after_loop) { timevar_push (TV_JUMP); ! reg_scan (insns, max_reg_num (), 0); ! timevar_pop (TV_JUMP); ! cleanup_cfg (CLEANUP_EXPENSIVE); ! /* CFG is no longer maintained up-to-date. */ ! reg_scan (insns, max_reg_num (), 0); ! tem = cse_main (insns, max_reg_num (), 1, rtl_dump_file); ! purge_all_dead_edges (0); ! delete_trivially_dead_insns (insns, max_reg_num ()); ! ! if (tem) ! { ! timevar_push (TV_JUMP); ! rebuild_jump_labels (insns); ! cleanup_cfg (CLEANUP_EXPENSIVE); ! timevar_pop (TV_JUMP); ! } } ! close_dump_file (DFI_cse2, print_rtl_with_bb, insns); - timevar_pop (TV_CSE2); - ggc_collect (); } cse_not_expected = 1; --- 3012,3046 ---- open_dump_file (DFI_tracer, decl); if (rtl_dump_file) dump_flow_info (rtl_dump_file); tracer (); cleanup_cfg (CLEANUP_EXPENSIVE); + reg_scan (insns, max_reg_num (), 0); close_dump_file (DFI_tracer, print_rtl_with_bb, get_insns ()); timevar_pop (TV_TRACER); } ! if (flag_rerun_cse_after_loop) { timevar_push (TV_CSE2); open_dump_file (DFI_cse2, decl); if (rtl_dump_file) dump_flow_info (rtl_dump_file); + /* CFG is no longer maintained up-to-date. */ + tem = cse_main (insns, max_reg_num (), 1, rtl_dump_file); + purge_all_dead_edges (0); + delete_trivially_dead_insns (insns, max_reg_num ()); ! if (tem) { timevar_push (TV_JUMP); ! rebuild_jump_labels (insns); cleanup_cfg (CLEANUP_EXPENSIVE); ! timevar_pop (TV_JUMP); } ! reg_scan (insns, max_reg_num (), 0); close_dump_file (DFI_cse2, print_rtl_with_bb, insns); ggc_collect (); + timevar_pop (TV_CSE2); } cse_not_expected = 1;