diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2014-04-06 07:11:12 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2014-04-06 07:11:12 +0000 |
commit | 56579f8ade21cb0a880ffbd6d5e28f152e951be8 (patch) | |
tree | 533192cc9757df2c0811497231acb6290f678e29 /lib/Camlcoq.ml | |
parent | f45d0c79bc220fc5dbbf7a59b5d100d16726f1ec (diff) | |
download | compcert-56579f8ade21cb0a880ffbd6d5e28f152e951be8.tar.gz compcert-56579f8ade21cb0a880ffbd6d5e28f152e951be8.zip |
Merge of branch linear-typing:
1) Revised division of labor between RTLtyping and Lineartyping:
- RTLtyping no longer keeps track of single-precision floats,
switches from subtype-based inference to unification-based inference.
- Unityping: new library for unification-based inference.
- Locations: don't normalize at assignment in a stack slot
- Allocation, Allocproof: simplify accordingly.
- Lineartyping: add inference of locations that contain
a single-precision float.
- Stackingproof: adapted accordingly.
This addresses a defect report whereas RTLtyping was rejecting code that used a RTL pseudoreg to hold both double- and single-precision floats (see test/regression/singlefloats.c).
This corresponds to commits 2435+2436 plus improvements in Lineartyping.
2) Add -dtimings option to measure compilation times.
Moved call to C parser from Elab to Parse, to make it easier to
measure parsing time independently of elaboration time.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2449 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'lib/Camlcoq.ml')
-rw-r--r-- | lib/Camlcoq.ml | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/lib/Camlcoq.ml b/lib/Camlcoq.ml index ca48341d..c580e212 100644 --- a/lib/Camlcoq.ml +++ b/lib/Camlcoq.ml @@ -324,69 +324,3 @@ let coqfloat_of_camlfloat f = let camlfloat_of_coqfloat f = Int64.float_of_bits(camlint64_of_coqint(Float.bits_of_double f)) -(* Timing facility *) - -(* -let timers = Hashtbl.create 9 - -let add_to_timer name time = - let old = try Hashtbl.find timers name with Not_found -> 0.0 in - Hashtbl.replace timers name (old +. time) - -let time name fn arg = - let start = Unix.gettimeofday() in - try - let res = fn arg in - add_to_timer name (Unix.gettimeofday() -. start); - res - with x -> - add_to_timer name (Unix.gettimeofday() -. start); - raise x - -let time2 name fn arg1 arg2 = - let start = Unix.gettimeofday() in - try - let res = fn arg1 arg2 in - add_to_timer name (Unix.gettimeofday() -. start); - res - with x -> - add_to_timer name (Unix.gettimeofday() -. start); - raise x - -let time3 name fn arg1 arg2 arg3 = - let start = Unix.gettimeofday() in - try - let res = fn arg1 arg2 arg3 in - add_to_timer name (Unix.gettimeofday() -. start); - res - with x -> - add_to_timer name (Unix.gettimeofday() -. start); - raise x - -let time4 name fn arg1 arg2 arg3 arg4 = - let start = Unix.gettimeofday() in - try - let res = fn arg1 arg2 arg3 arg4 in - add_to_timer name (Unix.gettimeofday() -. start); - res - with x -> - add_to_timer name (Unix.gettimeofday() -. start); - raise x - -let print_timers () = - Hashtbl.iter - (fun name time -> Printf.printf "%-20s %.3f\n" name time) - timers - -let _ = at_exit print_timers -*) - -(* Heap profiling facility *) - -(* -let heap_info msg = - Gc.full_major(); - let s = Gc.stat() in - Printf.printf "%s: size %d live %d\n " msg s.Gc.heap_words s.Gc.live_words; - flush stdout -*) |