Could you post here some timings (compilation speed and performance of compiled code)?
Minor question about the patch: wouldn't it be cleaner to have a single function Asmgen.regalloc with a conditional on use_linscan, rather than having two functions called in sequence that do their job or nothing according to the situation?
Also, is it really necessary to redefine sys_time? (As opposed to using Sys.time which is in the stdlib.)
I've added timings for the runtime performance for amd64 and i386. Both showing the runtime for code compiled with the graph-coloring and the linear-scan algorithm and the ratio of the two measurements.
Although meurer already merged the latest changed into the GitHub-Repository I also added the latest diff.
Here is my analysis of this proposal. The "big" users of OCaml, esp. the members of the Caml consortium, push strongly towards improving the performance of ocamlopt-generated code, but don't really care about compilation times. Linear scan register allocation goes in a different direction: fast compilation times at the cost of slightly lower quality of the generated code. I would rather invest time and effort on replacing ocamlopt's Briggs-style graph coloring by George and Appel's IRC graph coloring: this should result in slightly faster generated code and slightly lower compilation times at the same time. For the time being, let me just put this PR in the "suspended" state.
Original bug ID: 5324
Status: resolved (set by @xavierleroy on 2012-01-31T08:03:10Z)
Target version: 4.06.0 +dev/beta1/beta2/rc1
Category: ~DO NOT USE (was: OCaml general)
Monitored by: meyer @gasche abdallah bitbckt meurer mehdi @ygrek @glondu @hcarty @Chris00 @alainfrisch
As announced on the mailinglist, here is the first version of the linear scan algorithm for ocamlopt and ocamlnat.
The text was updated successfully, but these errors were encountered: