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/RTLgenspec.v | |
parent | 63cc20f9ddb18bebae523c46438abdf2a4b140d4 (diff) | |
download | compcert-b54721f58c2ecb65ce554d8b34f214d5121a2b0c.tar.gz compcert-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.v | 7 |
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. |