diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-04-01 12:50:58 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-04-01 12:50:58 +0200 |
commit | 25da4f1a90457c592cd8594666cd4d1d9628a8b1 (patch) | |
tree | 8e54e625bade68a24294759cb12df5692fc5d964 /driver | |
parent | 8e3ae6d6ff625dc8f93c54392b80b836b613c3cc (diff) | |
parent | c34e25a208e092aff0b7dfa931b199df0ce3bc52 (diff) | |
download | compcert-kvx-25da4f1a90457c592cd8594666cd4d1d9628a8b1.tar.gz compcert-kvx-25da4f1a90457c592cd8594666cd4d1d9628a8b1.zip |
Merge remote-tracking branch 'origin/mppa-work' into mppa-licm
Diffstat (limited to 'driver')
-rw-r--r-- | driver/Compiler.v | 10 | ||||
-rw-r--r-- | driver/Compopts.v | 3 |
2 files changed, 6 insertions, 7 deletions
diff --git a/driver/Compiler.v b/driver/Compiler.v index cc1e7917..5175abdb 100644 --- a/driver/Compiler.v +++ b/driver/Compiler.v @@ -140,7 +140,7 @@ Definition transf_rtl_program (f: RTL.program) : res Asm.program := @@ print (print_RTL 3) @@ time "Renumbering" Renumber.transf_program @@ print (print_RTL 4) - @@@ time "Tail-duplicating" Duplicate.transf_program + @@@ partial_if Compopts.optim_duplicate (time "Tail-duplicating" Duplicate.transf_program) @@ print (print_RTL 5) @@ total_if Compopts.optim_constprop (time "Constant propagation" Constprop.transf_program) @@ print (print_RTL 6) @@ -263,7 +263,7 @@ Definition CompCert's_passes := ::: mkpass Inliningproof.match_prog ::: mkpass FirstNopproof.match_prog ::: mkpass Renumberproof.match_prog - ::: mkpass Duplicateproof.match_prog + ::: mkpass (match_if Compopts.optim_duplicate Duplicateproof.match_prog) ::: mkpass (match_if Compopts.optim_constprop Constpropproof.match_prog) ::: mkpass (match_if Compopts.optim_constprop Renumberproof.match_prog) ::: mkpass (match_if Compopts.optim_CSE CSEproof.match_prog) @@ -312,7 +312,7 @@ Proof. destruct (Inlining.transf_program p7) as [p8|e] eqn:P8; simpl in T; try discriminate. set (p9 := FirstNop.transf_program p8) in *. set (p9bis := Renumber.transf_program p9) in *. - destruct (Duplicate.transf_program p9bis) as [p10|e] eqn:P10; simpl in T; try discriminate. + destruct (partial_if optim_duplicate Duplicate.transf_program p9bis) as [p10|e] eqn:P10; simpl in T; try discriminate. set (p11 := total_if optim_constprop Constprop.transf_program p10) in *. set (p12 := total_if optim_constprop Renumber.transf_program p11) in *. destruct (partial_if optim_CSE CSE.transf_program p12) as [p13|e] eqn:P13; simpl in T; try discriminate. @@ -339,7 +339,7 @@ Proof. exists p8; split. apply Inliningproof.transf_program_match; auto. exists p9; split. apply FirstNopproof.transf_program_match; auto. exists p9bis; split. apply Renumberproof.transf_program_match; auto. - exists p10; split. apply Duplicateproof.transf_program_match; auto. + exists p10; split. eapply partial_if_match; eauto. apply Duplicateproof.transf_program_match; auto. exists p11; split. apply total_if_match. apply Constpropproof.transf_program_match. exists p12; split. apply total_if_match. apply Renumberproof.transf_program_match. exists p13; split. eapply partial_if_match; eauto. apply CSEproof.transf_program_match. @@ -427,7 +427,7 @@ Ltac DestructM := eapply compose_forward_simulations. eapply FirstNopproof.transf_program_correct; eassumption. eapply compose_forward_simulations. eapply Renumberproof.transf_program_correct; eassumption. eapply compose_forward_simulations. - eapply Duplicateproof.transf_program_correct; eassumption. + eapply match_if_simulation. eassumption. exact Duplicateproof.transf_program_correct. eapply compose_forward_simulations. eapply match_if_simulation. eassumption. exact Constpropproof.transf_program_correct. eapply compose_forward_simulations. diff --git a/driver/Compopts.v b/driver/Compopts.v index f1ab4f7b..a3181da8 100644 --- a/driver/Compopts.v +++ b/driver/Compopts.v @@ -27,8 +27,7 @@ Parameter generate_float_constants: unit -> bool. (** For value analysis. Currently always false. *) Parameter va_strict: unit -> bool. -(** Flag -fduplicate. For tail duplication optimization. Necessary to have - * bigger superblocks *) +(** Flag -fduplicate. Branch prediction annotation + tail duplication *) Parameter optim_duplicate: unit -> bool. (** Flag -ftailcalls. For tail call optimization. *) |