aboutsummaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2017-02-13 09:57:27 +0100
committerXavier Leroy <xavier.leroy@inria.fr>2017-02-13 09:57:27 +0100
commit9ceacf45af6bfe396e36938e2573348ac4d07603 (patch)
treebb5200ab8fa1ab24ad547a10e5626585f307c6bf /backend
parent236d8a48288ea5845466408cf9d0be2ccd68f9a8 (diff)
parentc514b1e62302bb674075cd32a412ed47a57cbb5b (diff)
downloadcompcert-9ceacf45af6bfe396e36938e2573348ac4d07603.tar.gz
compcert-9ceacf45af6bfe396e36938e2573348ac4d07603.zip
Merge branch 'coq-8.6' of https://github.com/maximedenes/CompCert into maximedenes-coq-8.6
Diffstat (limited to 'backend')
-rw-r--r--backend/Deadcodeproof.v3
-rw-r--r--backend/Inliningproof.v4
-rw-r--r--backend/NeedDomain.v4
-rw-r--r--backend/Unusedglobproof.v2
4 files changed, 7 insertions, 6 deletions
diff --git a/backend/Deadcodeproof.v b/backend/Deadcodeproof.v
index 52f1f112..fa402e9f 100644
--- a/backend/Deadcodeproof.v
+++ b/backend/Deadcodeproof.v
@@ -978,7 +978,8 @@ Ltac UseTransfer :=
eapply match_succ_states; eauto. simpl; auto.
destruct res; auto. apply eagree_set_undef; auto.
eapply magree_storebytes_left; eauto.
- exploit aaddr_arg_sound; eauto.
+ clear H3.
+ exploit aaddr_arg_sound; eauto.
intros (bc & A & B & C).
intros. eapply nlive_contains; eauto.
erewrite Mem.loadbytes_length in H0 by eauto.
diff --git a/backend/Inliningproof.v b/backend/Inliningproof.v
index d06fa997..d5d7e033 100644
--- a/backend/Inliningproof.v
+++ b/backend/Inliningproof.v
@@ -1171,11 +1171,11 @@ Proof.
rewrite <- SP in MS0.
eapply match_stacks_invariant; eauto.
intros. destruct (eq_block b1 stk).
- subst b1. rewrite D in H8; inv H8. subst b2. eelim Plt_strict; eauto.
+ subst b1. rewrite D in H8; inv H8. eelim Plt_strict; eauto.
rewrite E in H8; auto.
intros. exploit Mem.perm_alloc_inv. eexact H. eauto.
destruct (eq_block b1 stk); intros; auto.
- subst b1. rewrite D in H8; inv H8. subst b2. eelim Plt_strict; eauto.
+ subst b1. rewrite D in H8; inv H8. eelim Plt_strict; eauto.
intros. eapply Mem.perm_alloc_1; eauto.
intros. exploit Mem.perm_alloc_inv. eexact A. eauto.
rewrite dec_eq_false; auto.
diff --git a/backend/NeedDomain.v b/backend/NeedDomain.v
index a53040f9..8e8b9c0b 100644
--- a/backend/NeedDomain.v
+++ b/backend/NeedDomain.v
@@ -1255,8 +1255,8 @@ Proof.
split; simpl; auto; intros.
rewrite PTree.gsspec in H6. destruct (peq id0 id).
+ inv H6. destruct H3. congruence. destruct gl!id as [iv0|] eqn:NG.
- rewrite ISet.In_add. intros [P|P]. omega. eelim GL; eauto.
- rewrite ISet.In_interval. omega.
+ unfold iv'; rewrite ISet.In_add. intros [P|P]. omega. eelim GL; eauto.
+ unfold iv'; rewrite ISet.In_interval. omega.
+ eauto.
- (* Stk ofs *)
split; simpl; auto; intros. destruct H3.
diff --git a/backend/Unusedglobproof.v b/backend/Unusedglobproof.v
index 7e9c3ca0..c79ae4fd 100644
--- a/backend/Unusedglobproof.v
+++ b/backend/Unusedglobproof.v
@@ -1015,7 +1015,7 @@ Proof.
{ rewrite STK, TSTK.
apply match_stacks_incr with j; auto.
intros. destruct (eq_block b1 stk).
- subst b1. rewrite F in H1; inv H1. subst b2. split; apply Ple_refl.
+ subst b1. rewrite F in H1; inv H1. split; apply Ple_refl.
rewrite G in H1 by auto. congruence. }
econstructor; split.
eapply exec_function_internal; eauto.