aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2009-01-04 16:00:07 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2009-01-04 16:00:07 +0000
commitbcc49e9df3e1885fcdf6e7a082f9101a323fb39c (patch)
treef442f7a477d08e2ef7f18a639a82e1c7ce2853f4
parent7e18fbae543b78ffd9a3359eac1a8cf4f9c7a568 (diff)
downloadcompcert-kvx-bcc49e9df3e1885fcdf6e7a082f9101a323fb39c.tar.gz
compcert-kvx-bcc49e9df3e1885fcdf6e7a082f9101a323fb39c.zip
Cminor, CminorSel: removed useless premises in rules for Sreturn
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@938 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
-rw-r--r--arm/Selectionproof.v4
-rw-r--r--backend/Cminor.v2
-rw-r--r--backend/CminorSel.v2
-rw-r--r--powerpc/Selectionproof.v4
4 files changed, 4 insertions, 8 deletions
diff --git a/arm/Selectionproof.v b/arm/Selectionproof.v
index e487d15a..a307597a 100644
--- a/arm/Selectionproof.v
+++ b/arm/Selectionproof.v
@@ -1427,11 +1427,11 @@ Proof.
constructor; auto. destruct b; auto.
(* Sreturn None *)
econstructor; split.
- econstructor. rewrite <- H; reflexivity.
+ econstructor.
constructor; auto. apply call_cont_commut.
(* Sreturn Some *)
econstructor; split.
- econstructor. simpl. auto. eauto with evalexpr.
+ econstructor. simpl. eauto with evalexpr.
constructor; auto. apply call_cont_commut.
(* Sgoto *)
econstructor; split.
diff --git a/backend/Cminor.v b/backend/Cminor.v
index b6186f2e..16f7c3df 100644
--- a/backend/Cminor.v
+++ b/backend/Cminor.v
@@ -478,11 +478,9 @@ Inductive step: state -> trace -> state -> Prop :=
E0 (State f (Sexit (switch_target n default cases)) k sp e m)
| step_return_0: forall f k sp e m,
- f.(fn_sig).(sig_res) = None ->
step (State f (Sreturn None) k (Vptr sp Int.zero) e m)
E0 (Returnstate Vundef (call_cont k) (Mem.free m sp))
| step_return_1: forall f a k sp e m v,
- f.(fn_sig).(sig_res) <> None ->
eval_expr (Vptr sp Int.zero) e m a v ->
step (State f (Sreturn (Some a)) k (Vptr sp Int.zero) e m)
E0 (Returnstate v (call_cont k) (Mem.free m sp))
diff --git a/backend/CminorSel.v b/backend/CminorSel.v
index 60c1d57a..1d5c8c05 100644
--- a/backend/CminorSel.v
+++ b/backend/CminorSel.v
@@ -333,11 +333,9 @@ Inductive step: state -> trace -> state -> Prop :=
E0 (State f (Sexit (switch_target n default cases)) k sp e m)
| step_return_0: forall f k sp e m,
- f.(fn_sig).(sig_res) = None ->
step (State f (Sreturn None) k (Vptr sp Int.zero) e m)
E0 (Returnstate Vundef (call_cont k) (Mem.free m sp))
| step_return_1: forall f a k sp e m v,
- f.(fn_sig).(sig_res) <> None ->
eval_expr (Vptr sp Int.zero) e m nil a v ->
step (State f (Sreturn (Some a)) k (Vptr sp Int.zero) e m)
E0 (Returnstate v (call_cont k) (Mem.free m sp))
diff --git a/powerpc/Selectionproof.v b/powerpc/Selectionproof.v
index 6d629794..5e0b2b27 100644
--- a/powerpc/Selectionproof.v
+++ b/powerpc/Selectionproof.v
@@ -1350,11 +1350,11 @@ Proof.
constructor; auto. destruct b; auto.
(* Sreturn None *)
econstructor; split.
- econstructor. rewrite <- H; reflexivity.
+ econstructor.
constructor; auto. apply call_cont_commut.
(* Sreturn Some *)
econstructor; split.
- econstructor. simpl. auto. eauto with evalexpr.
+ econstructor. simpl. eauto with evalexpr.
constructor; auto. apply call_cont_commut.
(* Sgoto *)
econstructor; split.