aboutsummaryrefslogtreecommitdiffstats
path: root/cfrontend/SimplExprproof.v
diff options
context:
space:
mode:
authorXavier Leroy <xavierleroy@users.noreply.github.com>2021-11-16 09:38:54 +0100
committerGitHub <noreply@github.com>2021-11-16 09:38:54 +0100
commitb9dfe18fb99d9fd0e8918c160ee297755c5fca59 (patch)
treec7613e597e7f13156b57cdaf97c0ec89a4b7f655 /cfrontend/SimplExprproof.v
parent168495d726e623e0b4bd6364f949ae577fa8b52e (diff)
downloadcompcert-kvx-b9dfe18fb99d9fd0e8918c160ee297755c5fca59.tar.gz
compcert-kvx-b9dfe18fb99d9fd0e8918c160ee297755c5fca59.zip
An improved PTree data structure (#420)
This PR replaces the "PTree" data structure used in lib/Maps.v by the canonical binary tries data structure proposed by A. W. Appel and described in the paper "Efficient Extensional Binary Tries", https://arxiv.org/abs/2110.05063 The new implementation is more memory-efficient and a bit faster, resulting in reduced compilation times (-5% on typical C programs, up to -10% on very large C functions). It also enjoys the extensionality property (two tries mapping equal keys to equal data are equal), which simplifies some proofs.
Diffstat (limited to 'cfrontend/SimplExprproof.v')
-rw-r--r--cfrontend/SimplExprproof.v8
1 files changed, 2 insertions, 6 deletions
diff --git a/cfrontend/SimplExprproof.v b/cfrontend/SimplExprproof.v
index 507e2128..ea89a8ba 100644
--- a/cfrontend/SimplExprproof.v
+++ b/cfrontend/SimplExprproof.v
@@ -893,13 +893,9 @@ Qed.
Lemma static_bool_val_sound:
forall v t m b, bool_val v t Mem.empty = Some b -> bool_val v t m = Some b.
Proof.
- assert (A: forall b ofs, Mem.weak_valid_pointer Mem.empty b ofs = false).
- { unfold Mem.weak_valid_pointer, Mem.valid_pointer, proj_sumbool; intros.
- rewrite ! pred_dec_false by (apply Mem.perm_empty). auto. }
intros until b; unfold bool_val.
- destruct (classify_bool t); destruct v; destruct Archi.ptr64 eqn:SF; auto.
-- rewrite A; congruence.
-- simpl; rewrite A; congruence.
+ destruct (classify_bool t); destruct v; destruct Archi.ptr64 eqn:SF; auto;
+ simpl; congruence.
Qed.
Lemma step_makeif: