diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2009-01-04 16:00:07 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2009-01-04 16:00:07 +0000 |
commit | bcc49e9df3e1885fcdf6e7a082f9101a323fb39c (patch) | |
tree | f442f7a477d08e2ef7f18a639a82e1c7ce2853f4 | |
parent | 7e18fbae543b78ffd9a3359eac1a8cf4f9c7a568 (diff) | |
download | compcert-bcc49e9df3e1885fcdf6e7a082f9101a323fb39c.tar.gz compcert-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.v | 4 | ||||
-rw-r--r-- | backend/Cminor.v | 2 | ||||
-rw-r--r-- | backend/CminorSel.v | 2 | ||||
-rw-r--r-- | powerpc/Selectionproof.v | 4 |
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. |