aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2019-09-18 14:05:09 +0200
committerCyril SIX <cyril.six@kalray.eu>2019-09-18 14:05:09 +0200
commita42baf15372e64f398685aaef079a82ea0db834e (patch)
treebf430c795591d63fc85e6b53cd0110a1d9fd818b /mppa_k1c
parenta1b4ed93ca2b7a244fb5d6d54c0bd0737f618837 (diff)
downloadcompcert-kvx-a42baf15372e64f398685aaef079a82ea0db834e.tar.gz
compcert-kvx-a42baf15372e64f398685aaef079a82ea0db834e.zip
Timings for Machblockgen, Asmblockgen and postpass scheduling
Diffstat (limited to 'mppa_k1c')
-rw-r--r--mppa_k1c/Asmgen.v12
-rw-r--r--mppa_k1c/Asmgenproof.v2
2 files changed, 8 insertions, 6 deletions
diff --git a/mppa_k1c/Asmgen.v b/mppa_k1c/Asmgen.v
index 58e80be1..704a0ac5 100644
--- a/mppa_k1c/Asmgen.v
+++ b/mppa_k1c/Asmgen.v
@@ -18,15 +18,17 @@
Require Import Integers.
Require Import Mach Asm Asmblock Asmblockgen Machblockgen.
Require Import PostpassScheduling.
-Require Import Errors.
+Require Import Errors String.
Local Open Scope error_monad_scope.
+Definition time {A B: Type} (name: string) (f: A -> B) : A -> B := f.
+
Definition transf_program (p: Mach.program) : res Asm.program :=
- let mbp := Machblockgen.transf_program p in
- do abp <- Asmblockgen.transf_program mbp;
- do abp' <- PostpassScheduling.transf_program abp;
- OK (Asm.transf_program abp').
+ let mbp := (time "Machblock generation" Machblockgen.transf_program) p in
+ do abp <- (time "Asmblock generation" Asmblockgen.transf_program) mbp;
+ do abp' <- (time "PostpassScheduling optimization" PostpassScheduling.transf_program) abp;
+ OK ((time "Asm generation" Asm.transf_program) abp').
Definition transf_function (f: Mach.function) : res Asm.function :=
let mbf := Machblockgen.transf_function f in
diff --git a/mppa_k1c/Asmgenproof.v b/mppa_k1c/Asmgenproof.v
index e0878c7d..5d7bb81f 100644
--- a/mppa_k1c/Asmgenproof.v
+++ b/mppa_k1c/Asmgenproof.v
@@ -35,7 +35,7 @@ Proof.
intros p tp H.
unfold Asmgen.transf_program in H. apply bind_inversion in H. destruct H.
inversion_clear H. apply bind_inversion in H1. destruct H1.
- inversion_clear H. inversion H2. remember (Machblockgen.transf_program p) as mbp.
+ inversion_clear H. inversion H2. unfold time in *. remember (Machblockgen.transf_program p) as mbp.
unfold match_prog; simpl.
exists mbp; split. apply Machblockgenproof.transf_program_match; auto.
exists x; split. apply Asmblockgenproof.transf_program_match; auto.