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]

Speedup compile/20001226-1.c compilation


Hi,
this patch shave few seconds out of everyone favorite compile/20001226-1.c compilation.

Honza

 tree VRP              :  70.58 (42%) usr   0.05 ( 7%) sys  70.67 (42%) wall    6690 kB (17%) ggc
 dominance frontiers   :  82.97 (49%) usr   0.01 ( 1%) sys  83.04 (49%) wall       0 kB ( 0%) ggc
 if-conversion         :   4.90 ( 3%) usr   0.00 ( 0%) sys   4.90 ( 3%) wall       0 kB ( 0%) ggc
 if-conversion 2       :   2.45 ( 1%) usr   0.00 ( 0%) sys   2.45 ( 1%) wall       0 kB ( 0%) ggc
 TOTAL                 : 168.86             0.72           169.66              38241 kB

 tree VRP              :  71.30 (83%) usr   0.07 ( 9%) sys  71.49 (83%) wall    6690 kB (17%) ggc
 dominance frontiers   :   0.09 ( 0%) usr   0.00 ( 0%) sys   0.08 ( 0%) wall       0 kB ( 0%) ggc
 combiner              :   0.56 ( 1%) usr   0.00 ( 0%) sys   0.57 ( 1%) wall     189 kB ( 0%) ggc
 if-conversion         :   3.98 ( 5%) usr   0.00 ( 0%) sys   3.97 ( 5%) wall       0 kB ( 0%) ggc
 if-conversion 2       :   2.05 ( 2%) usr   0.00 ( 0%) sys   2.05 ( 2%) wall       0 kB ( 0%) ggc
 TOTAL                 :  85.44             0.76            86.40              38241 kB

Boostrapped/regtested i686-linux, OK?
:ADDPATCH middle-end::
Honza

	* cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.

Index: cfganal.c
===================================================================
*** cfganal.c	(revision 116885)
--- cfganal.c	(working copy)
*************** compute_dominance_frontiers_1 (bitmap *f
*** 1054,1059 ****
--- 1054,1061 ----
  	      domsb = get_immediate_dominator (CDI_DOMINATORS, b);
  	      while (runner != domsb)
  		{
+ 		  if (bitmap_bit_p (frontiers[runner->index], b->index))
+ 		    break;
  		  bitmap_set_bit (frontiers[runner->index],
  				  b->index);
  		  runner = get_immediate_dominator (CDI_DOMINATORS,


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