This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH]: Fix bootstrap compile time blowout on x86_64.


Hi!

Thanks to Jan Hubicka an issue with compile time blowout came up. Over 80% of insn-attrtab.c compile time is spent in haifa-sched.c: check_cfg () function which does sanity check of the whole CFG. There are three callers of check_cfg () at the moment: sched_init (), schedule_block () and sched_finish (). While calls from sched_{init, finish} () are done once per function the call from schedule_block () is invoked for every single basic block. Leaving only two of the three calls - sched_{init, finish} () - will pretty much solve the problem. Please find the patch attached.

OK for trunk and gcc-4_2-branch?

:ADDPATCH scheduler:

Thanks,

Maxim
2006-12-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

	PR ???
	* haifa-sched.c (schedule_block): Remove excessive sanity check.
=== haifa-sched.c
==================================================================
--- haifa-sched.c	(/mirror/trunk/gcc)	(revision 504)
+++ haifa-sched.c	(/mirror/honza/gcc)	(revision 504)
@@ -2421,14 +2421,6 @@
       fix_inter_tick (NEXT_INSN (prev_head), last_scheduled_insn);
     }
 
-#ifdef ENABLE_CHECKING
-  /* After the reload the ia64 backend doesn't maintain BB_END, so
-     if we want to check anything, better do it now. 
-     And it already clobbered previously scheduled code.  */
-  if (reload_completed)
-    check_cfg (BB_HEAD (BLOCK_FOR_INSN (prev_head)), 0);
-#endif
-
   if (targetm.sched.md_finish)
     targetm.sched.md_finish (sched_dump, sched_verbose);
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]