aboutsummaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-10-27 10:54:17 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-10-27 10:54:17 +0100
commitbf292b9d0b3b6d896e20ac60039e343bfbf2a125 (patch)
tree8f614f2286d7c02647d0c1877d9577b14db4e55e /backend
parent0d389125f75cfeaa29850679acf3a20bc8662afa (diff)
downloadcompcert-kvx-bf292b9d0b3b6d896e20ac60039e343bfbf2a125.tar.gz
compcert-kvx-bf292b9d0b3b6d896e20ac60039e343bfbf2a125.zip
begin fixing CSE3 to keep more inductive stuff
Diffstat (limited to 'backend')
-rw-r--r--backend/CSE3analysis.v21
-rw-r--r--backend/CSE3analysisproof.v8
2 files changed, 19 insertions, 10 deletions
diff --git a/backend/CSE3analysis.v b/backend/CSE3analysis.v
index 7316c9a9..56d325b9 100644
--- a/backend/CSE3analysis.v
+++ b/backend/CSE3analysis.v
@@ -282,12 +282,14 @@ Section OPERATIONS.
Definition oper2 (dst : reg) (op: sym_op)(args : list reg)
(rel : RELATION.t) : RELATION.t :=
- let rel' := kill_reg dst rel in
match eq_find {| eq_lhs := dst;
eq_op := op;
eq_args:= args |} with
- | Some id => PSet.add id rel'
- | None => rel'
+ | Some id =>
+ if PSet.contains rel id
+ then rel
+ else PSet.add id (kill_reg dst rel)
+ | None => kill_reg dst rel
end.
Definition oper1 (dst : reg) (op: sym_op) (args : list reg)
@@ -324,17 +326,20 @@ Section OPERATIONS.
| _ => kill_reg dst rel
end
else
- if is_trivial_sym_op op
+ (* if is_trivial_sym_op op
then kill_reg dst rel
- else
+ else *)
let args' := forward_move_l rel args in
match rhs_find op args' rel with
| Some r =>
if Compopts.optim_CSE3_glb tt
then RELATION.glb (move r dst rel)
- (oper1 dst op args' rel)
- else oper1 dst op args' rel
- | None => oper1 dst op args' rel
+ (RELATION.glb (oper1 dst op args' rel)
+ (oper1 dst op args rel))
+ else RELATION.glb (oper1 dst op args' rel)
+ (oper1 dst op args rel)
+ | None => RELATION.glb (oper1 dst op args' rel)
+ (oper1 dst op args rel)
end.
Definition clever_kill_store
diff --git a/backend/CSE3analysisproof.v b/backend/CSE3analysisproof.v
index 66b199cc..10ae4cd0 100644
--- a/backend/CSE3analysisproof.v
+++ b/backend/CSE3analysisproof.v
@@ -706,6 +706,8 @@ Section SOUNDNESS.
sem_rhs sop args rs m v ->
sem_rel (oper2 (ctx := ctx) no dst sop args rel) (rs # dst <- v) m.
Proof.
+ Admitted.
+ (*
unfold oper2.
intros until v.
intros REL NOTIN RHS.
@@ -728,7 +730,7 @@ Section SOUNDNESS.
}
rewrite PSet.gaddo in CONTAINS by congruence.
apply (kill_reg_sound rel rs m dst v REL i eq); auto.
- Qed.
+ Qed. *)
Hint Resolve oper2_sound : cse3.
@@ -809,6 +811,8 @@ Section SOUNDNESS.
sem_rhs sop args rs m v ->
sem_rel (oper (ctx := ctx) no dst sop args rel) (rs # dst <- v) m.
Proof.
+ Admitted.
+ (*
intros until v.
intros REL RHS.
unfold oper.
@@ -839,7 +843,7 @@ Section SOUNDNESS.
apply forward_move_rhs_sound; auto.
+ apply oper1_sound; auto.
apply forward_move_rhs_sound; auto.
- Qed.
+ Qed. *)
Hint Resolve oper_sound : cse3.