diff options
| author | Prashanth Mundkur | 2018-07-09 15:20:36 -0700 |
|---|---|---|
| committer | Prashanth Mundkur | 2018-07-09 15:20:47 -0700 |
| commit | 1f950bdf4f6f80b472ec06eb07a3144666840126 (patch) | |
| tree | b1adbf8f67f9321f4c1870fe00b22d05462e86bb /riscv | |
| parent | 53ce89769a10be9a47af72b5fb440afa74bb4d02 (diff) | |
Log some timing info at the end of riscv execution.
Diffstat (limited to 'riscv')
| -rw-r--r-- | riscv/platform_main.ml | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/riscv/platform_main.ml b/riscv/platform_main.ml index 8dd47547..4c33e24d 100644 --- a/riscv/platform_main.ml +++ b/riscv/platform_main.ml @@ -87,11 +87,7 @@ let elf_arg = | _ -> (prerr_endline "Please provide an ELF file."; exit 0) ) -let () = - Random.self_init (); - - let pc = Platform.init elf_arg in - +let run pc = sail_call (fun r -> try ( zinit_platform (); (* devices *) @@ -105,3 +101,22 @@ let () = | ZError_internal_error (_) -> prerr_endline "Error: internal error" ) + +let show_times init_s init_e run_e insts = + let init_time = init_e.Unix.tms_utime -. init_s.Unix.tms_utime in + let exec_time = run_e.Unix.tms_utime -. init_e.Unix.tms_utime in + Printf.eprintf "\nInitialization: %g secs\n" init_time; + Printf.eprintf "Execution: %g secs\n" exec_time; + Printf.eprintf "Instructions retired: %Ld\n" insts; + Printf.eprintf "Perf: %g ips\n" ((Int64.to_float insts) /. exec_time) + +let () = + Random.self_init (); + + let init_start = Unix.times () in + let pc = Platform.init elf_arg in + let init_end = Unix.times () in + let _ = run pc in + let run_end = Unix.times () in + let insts = Big_int.to_int64 (uint (!Riscv.zminstret)) in + show_times init_start init_end run_end insts |
