diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-03-16 16:51:42 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-03-16 16:51:42 +0000 |
commit | 707b6a1ae9660b13cf6f68c7c0ce74017f5981c5 (patch) | |
tree | 166a21d507612d60db40737333ddec5003fc81aa /backend/RREtyping.v | |
parent | e44df4563f1cb893ab25b2a8b25d5b83095205be (diff) | |
download | compcert-707b6a1ae9660b13cf6f68c7c0ce74017f5981c5.tar.gz compcert-707b6a1ae9660b13cf6f68c7c0ce74017f5981c5.zip |
Assorted changes to reduce stack and heap requirements when compiling very big functions.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2151 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'backend/RREtyping.v')
-rw-r--r-- | backend/RREtyping.v | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/backend/RREtyping.v b/backend/RREtyping.v index 539fb20b..170d8adc 100644 --- a/backend/RREtyping.v +++ b/backend/RREtyping.v @@ -83,19 +83,20 @@ Hint Resolve wt_kill_op: linearty. Lemma wt_transf_code: forall f c eqs, wt_code f c -> wt_eqs eqs -> - wt_code (transf_function f) (transf_code eqs c). + wt_code (transf_function f) (transf_code eqs c nil). Proof. induction c; intros; simpl. red; simpl; tauto. assert (WI: wt_instr f a) by auto with coqlib. assert (WC: wt_code f c) by (red; auto with coqlib). clear H. - inv WI; auto 10 with linearty. + inv WI; rewrite ? transf_code_eq; auto 10 with linearty. destruct (is_incoming s) eqn:?. auto with linearty. destruct (contains_equation s r eqs). auto with linearty. destruct (find_reg_containing s eqs) as [r'|] eqn:?; auto with linearty. assert (mreg_type r' = mreg_type r). exploit H0. eapply find_reg_containing_sound; eauto. simpl. congruence. + rewrite ! transf_code_eq. destruct (safe_move_insertion c); auto 10 with linearty. Qed. |