aboutsummaryrefslogtreecommitdiffstats
path: root/backend/RTLgenspec.v
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2010-10-27 09:23:19 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2010-10-27 09:23:19 +0000
commitb54721f58c2ecb65ce554d8b34f214d5121a2b0c (patch)
tree01bc71f3e5e6b1681dac76de97ab925e005cc2c4 /backend/RTLgenspec.v
parent63cc20f9ddb18bebae523c46438abdf2a4b140d4 (diff)
downloadcompcert-kvx-b54721f58c2ecb65ce554d8b34f214d5121a2b0c.tar.gz
compcert-kvx-b54721f58c2ecb65ce554d8b34f214d5121a2b0c.zip
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/RTLgenspec.v')
-rw-r--r--backend/RTLgenspec.v7
1 files changed, 4 insertions, 3 deletions
diff --git a/backend/RTLgenspec.v b/backend/RTLgenspec.v
index 44e7c418..9b2e63e8 100644
--- a/backend/RTLgenspec.v
+++ b/backend/RTLgenspec.v
@@ -885,9 +885,10 @@ Inductive tr_stmt (c: code) (map: mapping):
tr_stmt c map sfalse nfalse nd nexits ngoto nret rret ->
tr_condition c map nil a ns ntrue nfalse ->
tr_stmt c map (Sifthenelse a strue sfalse) ns nd nexits ngoto nret rret
- | tr_Sloop: forall sbody ns nd nexits ngoto nret rret nloop,
- tr_stmt c map sbody nloop ns nexits ngoto nret rret ->
+ | tr_Sloop: forall sbody ns nd nexits ngoto nret rret nloop nend,
+ tr_stmt c map sbody nloop nend nexits ngoto nret rret ->
c!ns = Some(Inop nloop) ->
+ c!nend = Some(Inop nloop) ->
tr_stmt c map (Sloop sbody) ns nd nexits ngoto nret rret
| tr_Sblock: forall sbody ns nd nexits ngoto nret rret,
tr_stmt c map sbody ns nd (nd :: nexits) ngoto nret rret ->
@@ -1294,7 +1295,7 @@ Proof.
econstructor.
apply tr_stmt_incr with s1; auto.
eapply IHstmt; eauto with rtlg.
- eauto with rtlg.
+ eauto with rtlg. eauto with rtlg.
(* Sblock *)
econstructor.
eapply IHstmt; eauto with rtlg.