diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-02 20:23:56 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-02 20:23:56 +0200 |
commit | df9f42773b48270e77d1760719b1d8399062c2ea (patch) | |
tree | ab455803abd768f3b2de7d8e4c7a1f37e8528e38 /mppa_k1c/Peephole.v | |
parent | c56f9a47fe1837b7afb73c2c24aed9228bc0db08 (diff) | |
download | compcert-kvx-df9f42773b48270e77d1760719b1d8399062c2ea.tar.gz compcert-kvx-df9f42773b48270e77d1760719b1d8399062c2ea.zip |
seems to work
Diffstat (limited to 'mppa_k1c/Peephole.v')
-rw-r--r-- | mppa_k1c/Peephole.v | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/mppa_k1c/Peephole.v b/mppa_k1c/Peephole.v new file mode 100644 index 00000000..56e547e5 --- /dev/null +++ b/mppa_k1c/Peephole.v @@ -0,0 +1,15 @@ +Require Import Asmvliw. + +Definition optimize_body (insns : list basic) := insns. + +Program Definition optimize_bblock (bb : bblock) := + let optimized := optimize_body (body bb) in + let wf_ok := wf_bblockb optimized (exit bb) in + {| header := header bb; + body := if wf_ok then optimized else (body bb); + exit := exit bb |}. +Next Obligation. + destruct (wf_bblockb (optimize_body (body bb))) eqn:Rwf. + - rewrite Rwf. simpl. trivial. + - exact (correct bb). +Qed. |