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