From d87ee7f1c9cd2ffa6302cdfd0686d72e5bb7463b Mon Sep 17 00:00:00 2001 From: guojiufu Date: Tue, 17 Nov 2020 19:49:03 +0800 Subject: Clean up loop-closed PHIs after loop finalize This patch propagates loop-closed PHIs them out at loop_optimizer_finalize. For some cases, to clean up loop-closed PHIs would save efforts of optimization passes after loopdone. Thanks, Jiufu Guo. gcc/ChangeLog: 2020-10-18 Jiufu Guo * cfgloop.h (loop_optimizer_finalize): Add flag argument. * loop-init.c (loop_optimizer_finalize): Call clean_up_loop_closed_phi. * tree-cfgcleanup.h (clean_up_loop_closed_phi): New declare. * tree-ssa-loop.c (tree_ssa_loop_done): Call loop_optimizer_finalize with flag argument. * tree-ssa-propagate.c (clean_up_loop_closed_phi): New function. gcc/testsuite/ChangeLog: 2020-10-18 Jiufu Guo * gcc.dg/tree-ssa/loopclosedphi.c: New test. --- gcc/tree-ssa-loop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc/tree-ssa-loop.c') diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c index 5e8365d..339a0c5 100644 --- a/gcc/tree-ssa-loop.c +++ b/gcc/tree-ssa-loop.c @@ -529,7 +529,7 @@ tree_ssa_loop_done (void) { free_numbers_of_iterations_estimates (cfun); scev_finalize (); - loop_optimizer_finalize (); + loop_optimizer_finalize (cfun, true); return 0; } -- cgit v1.1