new codegen
Matthew Fluet
mfluet@intertrust.com
Tue, 14 Aug 2001 09:29:57 -0700 (PDT)
> Do I need to do something special in CVS to get it, or haven't you checked it in
> yet?
No, I hadn't checked it in last night. (You left the ssa directory in a
bad state; commited the sources.cm without the supporting files.)
Here are the results of the series of builds to a fixed-point. There is a
minor slow down in total compile time. I think this can primarily be
traced to the fact that while there is a speed up in the computational
portion of the x86 code gen, there is a big increase in GC time in that
pass. I'll take a look at a -v3 compile and see if I can track down some
sub-pass that is generating all the extra garbage.
compiler: mlton-20010806
Compiling mlton (takes a while)
time mlton @MLton -- -v -o mlton-compile mlton.cm
MLton starting
Compile SML starting
pre codegen starting
gcc -DNODEBUG -DMLton_safe=TRUE -DMLton_detectOverflow=TRUE \
-I/home/mfluet/mlton/mlton/include -o /tmp/file2TytON \
/tmp/fileaBoNGn.c -L/home/mfluet/mlton/mlton/lib -lmlton -lm -lgmp
/tmp/file2TytON /tmp/fileKtIf4F
pre codegen finished in 106.56 + 119.54 (53% GC)
x86 code gen starting
x86 code gen finished in 258.03 + 45.16 (15% GC)
Compile SML finished in 364.59 + 164.70 (31% GC)
Compile C starting
gcc -S -DNODEBUG -DMLton_safe=TRUE -DMLton_detectOverflow=TRUE \
-I/home/mfluet/mlton/mlton/include -o /tmp/fileHSfgHO.s \
/tmp/filePI78Nw.c
Compile C finished in 8.50 + 0.0 (0.0% GC)
Assemble starting
gcc -c -o /tmp/filex072HE.o /tmp/fileHSfgHO.s
gcc -c -o /tmp/file3k1EN2.o /tmp/fileBmroL0.68.S
...
gcc -c -o /tmp/fileBejKDc.o /tmp/fileXMXIVQ.0.S
Assemble finished in 24.71 + 0.0 (0.0% GC)
Link starting
gcc -o mlton-compile /tmp/filex072HE.o /tmp/fileBejKDc.o \
...
-lmlton -lm -lgmp
Link finished in 1.20 + 0.0 (0.0% GC)
MLton finished in 399.12 + 164.70 (29% GC)
556.70user 7.16system 9:35.24elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (50401major+1043307minor)pagefaults 0swaps
size mlton-compile
text data bss dec hex filename
6686528 886172 31780 7604480 740900 mlton-compile
compiler: result of above compile
(i.e., a compiler that compiles using the new codegen,
but whose binary was generated by the old codegen)
Compiling mlton (takes a while)
time mlton @MLton -- -v -o mlton-compile mlton.cm
MLton starting
Compile SML starting
pre codegen starting
gcc -DNODEBUG -DMLton_safe=TRUE -DMLton_detectOverflow=TRUE \
-I/home/mfluet/mlton/mlton/include -o /tmp/fileGn2Tyt \
/tmp/filektaBoN.c -L/home/mfluet/mlton/mlton/lib -lmlton -lm -lgmp
/tmp/fileGn2Tyt /tmp/fileONKtIf
pre codegen finished in 103.35 + 130.45 (56% GC)
x86 code gen starting
x86 code gen finished in 199.03 + 142.37 (42% GC)
Compile SML finished in 302.38 + 272.82 (47% GC)
Compile C starting
gcc -S -DNODEBUG -DMLton_safe=TRUE -DMLton_detectOverflow=TRUE \
-I/home/mfluet/mlton/mlton-cvs-merge/include -o /tmp/fileXaTeVG.s \
/tmp/filewhutiB.c
Compile C finished in 8.44 + 0.0 (0.0% GC)
Assemble starting
gcc -c -o /tmp/fileFsZATK.o /tmp/fileXaTeVG.s
gcc -c -o /tmp/fileNsRcNe.o /tmp/fileWTi3A9.66.S
...
gcc -c -o /tmp/file7ktkrg.o /tmp/filekFo30p.0.S
Assemble finished in 23.62 + 0.0 (0.0% GC)
Link starting
gcc -o mlton-compile /tmp/fileFsZATK.o /tmp/file7ktkrg.o \
...
-lmlton -lm -lgmp
Link finished in 2.19 + 0.0 (0.0% GC)
MLton finished in 336.74 + 272.87 (45% GC)
604.73user 4.91system 10:16.87elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (47876major+518832minor)pagefaults 0swaps
size mlton-compile
text data bss dec hex filename
5761696 880812 31812 6674320 65d790 mlton-compile
compiler: result of above compile
(i.e., a compiler that compiles using the new codegen,
and whose binary was generated by the new codegen)
Compiling mlton (takes a while)
time mlton @MLton -- -v -o mlton-compile mlton.cm
MLton starting
Compile SML starting
pre codegen starting
gcc -DNODEBUG -DMLton_safe=TRUE -DMLton_detectOverflow=TRUE \
-I/home/mfluet/mlton/mlton/include -o /tmp/fileoNGn2T \
/tmp/file8fktaB.c -L/home/mfluet/mlton/mlton/lib -lmlton -lm -lgmp
/tmp/fileoNGn2T /tmp/fileytONKt
pre codegen finished in 103.07 + 130.58 (56% GC)
x86 code gen starting
x86 code gen finished in 199.45 + 142.43 (42% GC)
Compile SML finished in 302.53 + 273.01 (47% GC)
Compile C starting
gcc -S -DNODEBUG -DMLton_safe=TRUE -DMLton_detectOverflow=TRUE \
-I/home/mfluet/mlton/mlton/include -o /tmp/file8DELqj.s \
/tmp/file3IVu1q.c
Compile C finished in 8.43 + 0.0 (0.0% GC)
Assemble starting
gcc -c -o /tmp/fileGtsBsz.o /tmp/file8DELqj.s
gcc -c -o /tmp/fileEjUD2z.o /tmp/filep2fwHe.65.S
...
gcc -c -o /tmp/filemZkd2D.o /tmp/file9o72LC.0.S
Assemble finished in 23.61 + 0.0 (0.0% GC)
Link starting
gcc -o mlton-compile /tmp/fileGtsBsz.o /tmp/filemZkd2D.o \
...
-lmlton -lm -lgmp
Link finished in 2.17 + 0.0 (0.0% GC)
MLton finished in 336.86 + 273.08 (45% GC)
605.05user 4.92system 10:22.26elapsed 98%CPU (0avgtext+0avgdata
0maxresident)k
0inputs+0outputs (47213major+359541minor)pagefaults 0swaps
size mlton-compile
text data bss dec hex filename
5756784 879876 31780 6668440 65c098 mlton-compile
[Note: the size differences between the last two compiles are due to my
commenting out of some diagnostic code that I hadn't realized were still
on. So, I think that probably accounts for the very minor speed up
between the two compiles. So, the conclusion is that the new codegen
(without tracking stack slots) is about the same as the old codegen --
which is what I generally expected.]