From 2f62294dec1f3af59dd7505c058b0af38c2d1524 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Wed, 12 Jan 2022 15:25:07 +0100 Subject: tree-optimization/103990 - fix CFG cleanup regression from PRE change This adjusts the CFG cleanup flow back to what it was before the last change which fixes the observed regression of 541.leela_r with LTO and FDO. 2022-01-12 Richard Biener PR tree-optimization/103990 * tree-pass.h (tail_merge_optimize): Drop unused argument. * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise. * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg and adjust call to tail_merge_optimize. --- gcc/tree-ssa-pre.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'gcc/tree-ssa-pre.c') diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index ab24fa9..5113256 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -4442,7 +4442,6 @@ pass_pre::execute (function *fun) if (todo & TODO_cleanup_cfg) { cleanup_tree_cfg (); - todo &= ~TODO_cleanup_cfg; need_crit_edge_split = true; } @@ -4458,9 +4457,8 @@ pass_pre::execute (function *fun) It should either: - call merge_blocks after each tail merge iteration - call merge_blocks after all tail merge iterations - - mark TODO_cleanup_cfg when necessary - - share the cfg cleanup with fini_pre. */ - todo |= tail_merge_optimize (todo, need_crit_edge_split); + - mark TODO_cleanup_cfg when necessary. */ + todo |= tail_merge_optimize (need_crit_edge_split); free_rpo_vn (); -- cgit v1.1