diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-05-06 20:16:08 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-05-06 20:16:08 +0200 |
commit | f1f535cad98f3db3e586f0f7a2dbc329fc5bff6f (patch) | |
tree | 1a4fed5a512a4db2c62472ba7ee2e7cf2810ed3c /backend/CSE3analysis.v | |
parent | b679621ac631ac2783bfd391042d30c120b5a220 (diff) | |
download | compcert-kvx-f1f535cad98f3db3e586f0f7a2dbc329fc5bff6f.tar.gz compcert-kvx-f1f535cad98f3db3e586f0f7a2dbc329fc5bff6f.zip |
CSE3 across merges
Diffstat (limited to 'backend/CSE3analysis.v')
-rw-r--r-- | backend/CSE3analysis.v | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/backend/CSE3analysis.v b/backend/CSE3analysis.v index b5fdbd63..bd507dec 100644 --- a/backend/CSE3analysis.v +++ b/backend/CSE3analysis.v @@ -75,29 +75,43 @@ Module RELATION <: SEMILATTICE_WITHOUT_BOTTOM. intuition. Qed. - Definition lub := PSet.inter. + Definition lub x y := + if Compopts.optim_CSE3_across_merges tt + then PSet.inter x y + else PSet.empty. + Definition glb := PSet.union. Lemma ge_lub_left: forall x y, ge (lub x y) x. Proof. unfold ge, lub. intros. - apply PSet.is_subset_spec. - intro. - rewrite PSet.ginter. - rewrite andb_true_iff. - intuition. + destruct (Compopts.optim_CSE3_across_merges tt). + - apply PSet.is_subset_spec. + intro. + rewrite PSet.ginter. + rewrite andb_true_iff. + intuition. + - apply PSet.is_subset_spec. + intro. + rewrite PSet.gempty. + discriminate. Qed. Lemma ge_lub_right: forall x y, ge (lub x y) y. Proof. unfold ge, lub. intros. - apply PSet.is_subset_spec. - intro. - rewrite PSet.ginter. - rewrite andb_true_iff. - intuition. + destruct (Compopts.optim_CSE3_across_merges tt). + - apply PSet.is_subset_spec. + intro. + rewrite PSet.ginter. + rewrite andb_true_iff. + intuition. + - apply PSet.is_subset_spec. + intro. + rewrite PSet.gempty. + discriminate. Qed. Definition top := PSet.empty. |