aboutsummaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-07 12:27:43 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-07 12:27:43 +0200
commit35febfa5b231a71234a1b32c128169352e96eaca (patch)
tree5401681c76c8e45e9c1e6128d313851582e6fc9f /backend
parent046c24d29796a3bb130c94fe464e54e8a7aa2eb3 (diff)
downloadcompcert-kvx-35febfa5b231a71234a1b32c128169352e96eaca.tar.gz
compcert-kvx-35febfa5b231a71234a1b32c128169352e96eaca.zip
fixes for ARM
Diffstat (limited to 'backend')
-rw-r--r--backend/CSEproof.v12
-rw-r--r--backend/Constpropproof.v12
-rw-r--r--backend/Inliningproof.v4
-rw-r--r--backend/Stackingproof.v5
4 files changed, 12 insertions, 21 deletions
diff --git a/backend/CSEproof.v b/backend/CSEproof.v
index 684729d4..209fa40f 100644
--- a/backend/CSEproof.v
+++ b/backend/CSEproof.v
@@ -1151,9 +1151,7 @@ Proof.
econstructor. split.
eapply exec_Iload; eauto.
- rewrite eval_addressing_preserved with (ge1 := ge).
- exact Ha'1.
- exact symbols_preserved.
+ try (rewrite eval_addressing_preserved with (ge1 := ge) by assumption).
econstructor; eauto.
eapply analysis_correct_1; eauto. simpl; eauto.
@@ -1204,9 +1202,7 @@ Proof.
{
econstructor. split.
eapply exec_Iload; eauto.
- rewrite eval_addressing_preserved with (ge1 := ge).
- exact Ha'1.
- exact symbols_preserved.
+ try (rewrite eval_addressing_preserved with (ge1 := ge) by assumption).
econstructor; eauto.
eapply analysis_correct_1; eauto. simpl; eauto.
@@ -1220,9 +1216,7 @@ Proof.
{
econstructor. split.
eapply exec_Iload_notrap2; eauto.
- rewrite eval_addressing_preserved with (ge1 := ge).
- exact Ha'1.
- exact symbols_preserved.
+ try (rewrite eval_addressing_preserved with (ge1 := ge) by assumption).
econstructor; eauto.
eapply analysis_correct_1; eauto. simpl; eauto.
diff --git a/backend/Constpropproof.v b/backend/Constpropproof.v
index 2e43a93f..4d104141 100644
--- a/backend/Constpropproof.v
+++ b/backend/Constpropproof.v
@@ -444,8 +444,8 @@ Proof.
destruct (Mem.loadv_extends chunk m m' a v2 v MEM H1 Hlessdef2) as [vX [Hvx1 Hvx2]].
left; econstructor; econstructor; split.
eapply exec_Iload with (a := v2); eauto.
- erewrite eval_addressing_preserved with (ge1:=ge); auto.
- exact symbols_preserved.
+ try (erewrite eval_addressing_preserved with (ge1:=ge); auto;
+ exact symbols_preserved).
eapply match_states_succ; eauto. apply set_reg_lessdef; auto.
}
@@ -476,18 +476,14 @@ Proof.
left; econstructor; econstructor; split.
eapply exec_Iload; eauto.
- rewrite eval_addressing_preserved with (ge1 := ge).
- exact Heval'.
- exact symbols_preserved.
+ try (rewrite eval_addressing_preserved with (ge1 := ge); eassumption).
eapply match_states_succ; eauto. apply set_reg_lessdef; auto.
}
{
left; econstructor; econstructor; split.
eapply exec_Iload_notrap2; eauto.
- rewrite eval_addressing_preserved with (ge1 := ge).
- exact Heval'.
- exact symbols_preserved.
+ try (rewrite eval_addressing_preserved with (ge1 := ge); eassumption).
eapply match_states_succ; eauto. apply set_reg_lessdef; auto.
}
diff --git a/backend/Inliningproof.v b/backend/Inliningproof.v
index 588d7165..ebc48160 100644
--- a/backend/Inliningproof.v
+++ b/backend/Inliningproof.v
@@ -1017,7 +1017,7 @@ Proof.
+ left; econstructor; split.
eapply plus_one.
eapply exec_Iload; eauto.
- rewrite <- P. apply eval_addressing_preserved. exact symbols_preserved.
+ try (rewrite <- P; apply eval_addressing_preserved; exact symbols_preserved).
econstructor; eauto.
apply match_stacks_inside_set_reg; auto.
apply agree_set_reg; auto.
@@ -1025,7 +1025,7 @@ Proof.
+ left; econstructor; split.
eapply plus_one.
eapply exec_Iload_notrap2; eauto.
- rewrite <- P. apply eval_addressing_preserved. exact symbols_preserved.
+ try (rewrite <- P; apply eval_addressing_preserved; assumption).
econstructor; eauto.
apply match_stacks_inside_set_reg; auto.
apply agree_set_reg; auto.
diff --git a/backend/Stackingproof.v b/backend/Stackingproof.v
index 1d4a93e7..19a40e0f 100644
--- a/backend/Stackingproof.v
+++ b/backend/Stackingproof.v
@@ -1943,7 +1943,7 @@ Proof.
{
econstructor; split.
apply plus_one. apply exec_Mload with (a:=a') (v:=v'); eauto.
- rewrite <- A. apply eval_addressing_preserved. exact symbols_preserved.
+ try (rewrite <- A; apply eval_addressing_preserved; assumption).
econstructor; eauto with coqlib.
apply agree_regs_set_reg. rewrite transl_destroyed_by_load. apply agree_regs_undef_regs; auto. auto.
apply agree_locs_set_reg. apply agree_locs_undef_locs. auto. apply destroyed_by_load_caller_save. auto.
@@ -1951,7 +1951,8 @@ Proof.
{
econstructor; split.
apply plus_one. apply exec_Mload_notrap2 with (a:=a'); eauto.
- rewrite <- A. apply eval_addressing_preserved. exact symbols_preserved.
+ try (rewrite <- A; apply eval_addressing_preserved; assumption).
+
econstructor; eauto with coqlib.
apply agree_regs_set_reg. rewrite transl_destroyed_by_load. apply agree_regs_undef_regs; auto. auto.
apply agree_locs_set_reg. apply agree_locs_undef_locs. auto. apply destroyed_by_load_caller_save. auto.