100x -O0 Compile Time Regression {3.2,3.3} -> {3.4,3.5}

Daniel Berlin dberlin@dberlin.org
Fri Feb 13 04:35:00 GMT 2004


>
> ps.  Trivia question for the rest of the list.  What routine gets the 
> most
> amount of cpu time doing a "make -k check" from the toplevel of the
> source tree after a 3-stage bootstrap (tree-ssa branch).....
>
>
> et_splay with a whopping 27% of all the events within cc1 (cc1 has 
> just over
> 40% of the total events during make-k check run).

Try it on 20001226-1.c

The time gets blamed on split_critical_edges but the actual time sink 
is recounting a set of dominators every time we split an edge.

If you free_dominance_info (CDI_DOMINATORS) before we split edges, it 
won't do the recounting.

IE this patch will make the time in split_critical_edges 4 seconds 
instead of 56 on 20001226-1.c:

Index: tree-cfg.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-cfg.c,v
retrieving revision 1.1.4.264
diff -u -3 -p -r1.1.4.264 tree-cfg.c
--- tree-cfg.c  4 Feb 2004 06:08:20 -0000       1.1.4.264
+++ tree-cfg.c  13 Feb 2004 04:34:59 -0000
@@ -3948,7 +3948,7 @@ split_critical_edges (void)
  {
    basic_block bb;
    edge e;
-
+  free_dominance_info (CDI_DOMINATORS);
    FOR_ALL_BB (bb)
      {
        for (e = bb->succ; e ; e = e->succ_next)



More information about the Gcc mailing list