From c0acc4222cfd3bd120e12da83321a4f1e880c2be Mon Sep 17 00:00:00 2001 From: Russel Arbore <russel.jma@gmail.com> Date: Thu, 23 Jan 2025 09:51:12 -0600 Subject: [PATCH] Run CRC and SLF before the first SROA, so that read chains test doesn't break SROA --- juno_frontend/src/lib.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/juno_frontend/src/lib.rs b/juno_frontend/src/lib.rs index c06ebf34..d9a59a38 100644 --- a/juno_frontend/src/lib.rs +++ b/juno_frontend/src/lib.rs @@ -149,8 +149,13 @@ pub fn compile_ir( pm.add_pass(hercules_opt::pass::Pass::Verify); } add_verified_pass!(pm, verify, GVN); + add_pass!(pm, verify, DCE); add_verified_pass!(pm, verify, PhiElim); add_pass!(pm, verify, DCE); + add_pass!(pm, verify, CRC); + add_pass!(pm, verify, DCE); + add_pass!(pm, verify, SLF); + add_pass!(pm, verify, DCE); if x_dot { pm.add_pass(hercules_opt::pass::Pass::Xdot(true)); } @@ -167,7 +172,7 @@ pub fn compile_ir( // Run SROA pretty early (though after inlining which can make SROA more effective) so that // CCP, GVN, etc. can work on the result of SROA add_pass!(pm, verify, InterproceduralSROA); - //add_pass!(pm, verify, SROA); + add_pass!(pm, verify, SROA); // We run phi-elim again because SROA can introduce new phis that might be able to be // simplified add_verified_pass!(pm, verify, PhiElim); @@ -205,7 +210,7 @@ pub fn compile_ir( add_pass!(pm, verify, DCE); add_pass!(pm, verify, Outline); add_pass!(pm, verify, InterproceduralSROA); - //add_pass!(pm, verify, SROA); + add_pass!(pm, verify, SROA); add_pass!(pm, verify, InferSchedules); add_verified_pass!(pm, verify, DCE); if x_dot { -- GitLab