latest contify.fun
Stephen Weeks
MLton@sourcelight.com
Thu, 22 Feb 2001 14:12:24 -0800 (PST)
> Here's the revised contify.new.fun. No linear lookups for any addEdge. I
> also tweaked the transform code, to process the nodes as part of the dfs,
> rather than building a todo list and then immediately processing it.
Much better. Here are the self-compile timings for the three contify passes,
with gc split out.
pass 1 pass 2 pass 3
gc gc gc
----------- ----------- -----------
old 1.41 + 2.15 0.89 + 0.00 1.38 + 1.60
new 2.41 + 4.16 1.57 + 0.98 1.85 + 1.47
Basically, it looks like the transform is about the same speed as the old one,
and we're just paying a bit more for the analysis. Looks good to me.
> Well, I'm leaving addEdge' in. If the graphs still seem to big, we can
> try using it in some places.
I was running with gc-messages, and the amount live during the gcs looks fine --
no discernable difference between the two.
Here's the raw data I used to compute the above numbers.
old
--------------------
contify starting
/tmp/fileZXrFxD.36.S 14226: GC
Starting gc.
fromSpace 225,239,040 toSpace 225,239,040
Finished gc.
time(ms): 2,150
live(bytes): 58,635,128 (26.0%)
contify finished in 3.560
contify starting
contify finished in 0.890
contify starting
/tmp/fileMGxauv.24.S 2380: GC
Starting gc.
fromSpace 225,239,040 toSpace 225,239,040
Finished gc.
time(ms): 1,600
live(bytes): 42,866,444 (19.0%)
contify finished in 2.980
new
--------------------
contify starting
analyzeCall starting
analyzeCall finished in 0.080
analyzeCont starting
analyzeCont finished in 0.090
analyzeDom starting
buildGraph starting
buildGraph finished in 0.120
computeDominators starting
/tmp/fileLMlOdy.36.S 8855: GC
Starting gc.
fromSpace 224,886,784 toSpace 224,886,784
Finished gc.
time(ms): 1,980
live(bytes): 56,861,120 (25.3%)
computeDominators finished in 2.420
compute ADom starting
compute ADom finished in 0.030
analyzeDom finished in 2.610
diagnostics starting
functions: 9919
call_cont_dom: 3352 call_cont: 0
call_dom: 869 cont_dom: 334
call: 0 cont: 0 dom: 205
rem_call_cont_dom: 1003 rem_call_cont: 0
rem_call_dom: 0 rem_cont_dom: 0
rem_call: 0 rem_cont: 0 rem_dom: 0
diagnostics finished in 0.010
transform starting
/tmp/fileQn5Jev.33.S 1096: GC
Starting gc.
fromSpace 224,886,784 toSpace 224,886,784
Finished gc.
time(ms): 2,180
live(bytes): 64,474,188 (28.7%)
transform finished in 3.470
contify finished in 6.570
contify starting
analyzeCall starting
analyzeCall finished in 0.050
analyzeCont starting
/tmp/file0UmGa6.25.S 10182: GC
Starting gc.
fromSpace 224,886,784 toSpace 224,886,784
Finished gc.
time(ms): 980
live(bytes): 25,764,244 (11.5%)
analyzeCont finished in 1.050
analyzeDom starting
buildGraph starting
buildGraph finished in 0.080
computeDominators starting
computeDominators finished in 0.320
compute ADom starting
compute ADom finished in 0.010
analyzeDom finished in 0.450
diagnostics starting
functions: 4145
call_cont_dom: 423 call_cont: 0
call_dom: 4 cont_dom: 8
call: 0 cont: 0 dom: 3
rem_call_cont_dom: 0 rem_call_cont: 0
rem_call_dom: 0 rem_cont_dom: 0
rem_call: 0 rem_cont: 0 rem_dom: 0
diagnostics finished in 0.0
transform starting
transform finished in 0.820
contify finished in 2.550
contify starting
analyzeCall starting
analyzeCall finished in 0.060
analyzeCont starting
analyzeCont finished in 0.070
analyzeDom starting
buildGraph starting
buildGraph finished in 0.080
computeDominators starting
/tmp/file6KF1jh.31.S 3808: GC
Starting gc.
fromSpace 224,886,784 toSpace 224,886,784
Finished gc.
time(ms): 1,470
live(bytes): 40,012,180 (17.8%)
computeDominators finished in 1.710
compute ADom starting
compute ADom finished in 0.0
analyzeDom finished in 1.810
diagnostics starting
functions: 1024
call_cont_dom: 1 call_cont: 0
call_dom: 0 cont_dom: 0
call: 0 cont: 0 dom: 0
rem_call_cont_dom: 0 rem_call_cont: 0
rem_call_dom: 0 rem_cont_dom: 0
rem_call: 0 rem_cont: 0 rem_dom: 0
diagnostics finished in 0.0
transform starting
transform finished in 1.170
contify finished in 3.320