diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2021-01-07 17:43:19 +0100 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2021-01-07 17:43:19 +0100 |
commit | 749fa737e57bb37539ee742f0df552fec8d3e4ef (patch) | |
tree | 934b4cbb63f426ee682252cb27cefe168a0fc9ac | |
parent | e21a56acc2d28995aef4586668f756806a53869b (diff) | |
download | compcert-kvx-749fa737e57bb37539ee742f0df552fec8d3e4ef.tar.gz compcert-kvx-749fa737e57bb37539ee742f0df552fec8d3e4ef.zip |
-fcse3-trivial-ops
-rw-r--r-- | backend/CSE3.v | 3 | ||||
-rw-r--r-- | backend/CSE3proof.v | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/backend/CSE3.v b/backend/CSE3.v index df1c2bfc..13d07e65 100644 --- a/backend/CSE3.v +++ b/backend/CSE3.v @@ -58,7 +58,8 @@ Definition transf_instr (fmap : PMap.t RB.t) match instr with | Iop op args dst s => let args' := subst_args fmap pc args in - match (if is_trivial_op op then None else find_op_in_fmap fmap pc op args') with + match (if (negb (Compopts.optim_CSE3_trivial_ops tt)) && (is_trivial_op op) + then None else find_op_in_fmap fmap pc op args') with | None => Iop op args' dst s | Some src => Iop Omove (src::nil) dst s end diff --git a/backend/CSE3proof.v b/backend/CSE3proof.v index 3fbc9912..2257b4de 100644 --- a/backend/CSE3proof.v +++ b/backend/CSE3proof.v @@ -463,12 +463,12 @@ Proof. destruct (@PMap.get (option RELATION.t) pc) eqn:INV_PC. pose proof (rhs_find_sound (sp:=sp) (genv:=ge) (ctx:=(context_from_hints (snd (preanalysis tenv f)))) pc (SOp op) (subst_args (ctx:=(context_from_hints (snd (preanalysis tenv f)))) (fst (preanalysis tenv f)) pc args) t) as FIND_SOUND. - * destruct (if is_trivial_op op + * destruct (if (negb (Compopts.optim_CSE3_trivial_ops tt)) && (is_trivial_op op) then None else rhs_find pc (SOp op) (subst_args (fst (preanalysis tenv f)) pc args) t) eqn:FIND. - ** destruct (is_trivial_op op). discriminate. + ** destruct ((negb (Compopts.optim_CSE3_trivial_ops tt)) && (is_trivial_op op)). discriminate. apply exec_Iop with (op := Omove) (args := r :: nil). TR_AT. subst instr'. |