aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr>2021-08-21 16:58:25 +0200
committerJustus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr>2021-08-21 17:03:45 +0200
commit026cb2e2cb229c3651c2e0a117cd1893a59930e3 (patch)
treec148d469a6d51cde156cd16dad7655725d642497
parent6cd7dce5a15de04ee8ad5746f623191d803f7e77 (diff)
downloadcompcert-kvx-026cb2e2cb229c3651c2e0a117cd1893a59930e3.tar.gz
compcert-kvx-026cb2e2cb229c3651c2e0a117cd1893a59930e3.zip
Remove hopefully useless compiler passes
-rw-r--r--driver/Compiler.vexpand11
-rw-r--r--tools/compiler_expand.ml10
2 files changed, 5 insertions, 16 deletions
diff --git a/driver/Compiler.vexpand b/driver/Compiler.vexpand
index 3442502f..34e85b6b 100644
--- a/driver/Compiler.vexpand
+++ b/driver/Compiler.vexpand
@@ -315,14 +315,7 @@ EXPAND_RTL_FORWARD_SIMULATIONS
eapply match_if_simulation. eassumption. eapply CSE3proof.transf_program_correct; eassumption.
eapply compose_forward_simulations.
eapply match_if_simulation. eassumption. eapply Deadcodeproof.transf_program_correct; eassumption.
- eapply compose_forward_simulations.
- eapply Renumberproof.transf_program_correct; eassumption.
- eapply compose_forward_simulations.
- eapply match_if_simulation. eassumption. eapply CSE3proof.transf_program_correct; eassumption.
- eapply compose_forward_simulations.
- eapply match_if_simulation. eassumption. eapply KillUselessMovesproof.transf_program_correct; eassumption.
- eapply compose_forward_simulations.
- eapply match_if_simulation. eassumption. eapply Deadcodeproof.transf_program_correct; eassumption.
+
eapply compose_forward_simulations.
eapply RTLpathLivegenproof.transf_program_correct; eassumption.
pose proof RTLpathLivegenproof.all_fundef_liveness_ok as X'.
@@ -341,6 +334,8 @@ EXPAND_RTL_FORWARD_SIMULATIONS
eapply match_if_simulation. eassumption. eapply KillUselessMovesproof.transf_program_correct; eassumption.
eapply compose_forward_simulations.
eapply match_if_simulation. eassumption. eapply ForwardMovesproof.transf_program_correct; eassumption.
+ eapply compose_forward_simulations.
+ eapply match_if_simulation. eassumption. eapply Deadcodeproof.transf_program_correct; eassumption.
eapply compose_forward_simulations.
diff --git a/tools/compiler_expand.ml b/tools/compiler_expand.ml
index a0809296..dfadca3b 100644
--- a/tools/compiler_expand.ml
+++ b/tools/compiler_expand.ml
@@ -67,22 +67,16 @@ let post_rtl_passes =
(* This is meant to clean up dead code afer "if-lifting" + removing of redundant condition *)
PARTIAL, (Option "optim_redundancy"), Require, (Some "Redundancy elimination"), "Deadcode", Noprint;
- (* Actual CSE3 pass *)
- TOTAL, Always, NoRequire, (Some "Renumbering pre CSE"), "Renumber", Noprint;
- PARTIAL, (Option "optim_CSE3"), Require, (Some "CSE3"), "CSE3", Noprint;
- TOTAL, (Option "optim_CSE3"), Require, (Some "Kill useless moves after CSE3"), "KillUselessMoves", Noprint;
- (* TOTAL, (Option "optim_forward_moves"), Require, (Some "Forwarding moves"), "ForwardMoves", Noprint; *)
- PARTIAL, (Option "optim_redundancy"), Require, (Some "Redundancy elimination"), "Deadcode", Noprint;
-
PARTIAL, Always, Require, (Some "RTLpath generation"), "RTLpathLivegen", Noprint;
PARTIAL, Always, Require, (Some "Prepass scheduling"), "RTLpathScheduler", Noprint;
TOTAL, Always, Require, (Some "Projection to RTL"), "RTLpath", (Print (Printf.sprintf "RTL %d" ((Array.length rtl_passes) + 1)));
+ (* Run CSE3 again, in case code is moved up again *)
TOTAL, Always, NoRequire, (Some "Renumbering pre CSE"), "Renumber", Noprint;
PARTIAL, (Option "optim_CSE3"), Require, (Some "CSE3"), "CSE3", Noprint;
TOTAL, (Option "optim_CSE3"), Require, (Some "Kill useless moves after CSE3"), "KillUselessMoves", Noprint;
TOTAL, (Option "optim_forward_moves"), Require, (Some "Forwarding moves"), "ForwardMoves", Noprint;
- (* PARTIAL, (Option "optim_redundancy"), Require, (Some "Redundancy elimination"), "Deadcode", Noprint; *)
+ PARTIAL, (Option "optim_redundancy"), Require, (Some "Redundancy elimination"), "Deadcode", Noprint;
PARTIAL, Always, Require, (Some "Register allocation"), "Allocation", (Print "LTL 1");
PARTIAL, Always, Require, (Some "LTL Branch tunneling"), "LTLTunneling", (Print "LTL 2");