diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2010-10-27 09:23:19 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2010-10-27 09:23:19 +0000 |
commit | b54721f58c2ecb65ce554d8b34f214d5121a2b0c (patch) | |
tree | 01bc71f3e5e6b1681dac76de97ab925e005cc2c4 /backend/Constprop.v | |
parent | 63cc20f9ddb18bebae523c46438abdf2a4b140d4 (diff) |
Various algorithmic improvements that reduce compile times (thanks Alexandre Pilkiewicz):
- Lattice: preserve sharing in "combine" operation
- Kildall: use splay heaps (lib/Heaps.v) for node sets
- RTLgen: add a "nop" before loops so that natural enumeration of nodes
coincides with (reverse) postorder
- Maps: add PTree.map1 operation, use it in RTL and LTL.
- Driver: increase minor heap size
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1543 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'backend/Constprop.v')
-rw-r--r-- | backend/Constprop.v | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/backend/Constprop.v b/backend/Constprop.v index 03966cd..47c40e3 100644 --- a/backend/Constprop.v +++ b/backend/Constprop.v @@ -87,12 +87,6 @@ Module Approx <: SEMILATTICE_WITH_TOP. | _, Novalue => x | _, _ => Unknown end. - Lemma lub_commut: forall x y, eq (lub x y) (lub y x). - Proof. - unfold lub, eq; intros. - case (eq_dec x y); case (eq_dec y x); intros; try congruence. - destruct x; destruct y; auto. - Qed. Lemma ge_lub_left: forall x y, ge (lub x y) x. Proof. unfold lub; intros. @@ -100,6 +94,13 @@ Module Approx <: SEMILATTICE_WITH_TOP. apply ge_refl. apply eq_refl. destruct x; destruct y; unfold ge; tauto. Qed. + Lemma ge_lub_right: forall x y, ge (lub x y) y. + Proof. + unfold lub; intros. + case (eq_dec x y); intro. + apply ge_refl. subst. apply eq_refl. + destruct x; destruct y; unfold ge; tauto. + Qed. End Approx. Module D := LPMap Approx. |