aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/rtinit.c
diff options
context:
space:
mode:
authorAndrew Pinski <andrew.pinski@oss.qualcomm.com>2025-12-06 01:11:29 -0800
committerAndrew Pinski <andrew.pinski@oss.qualcomm.com>2025-12-08 14:22:25 -0800
commitfae0c626250563c1619cc10c6af18a0c4cae5a97 (patch)
treeeccf369a57e057ddc6f4a1296b3386aba6c00df4 /gcc/ada/rtinit.c
parent8e9d923a932e691030d0a0e0adbc0574d5b18350 (diff)
downloadgcc-fae0c626250563c1619cc10c6af18a0c4cae5a97.zip
gcc-fae0c626250563c1619cc10c6af18a0c4cae5a97.tar.gz
gcc-fae0c626250563c1619cc10c6af18a0c4cae5a97.tar.bz2
final_cleanup: Call make_forwarders_with_degenerate_phis [PR46555]
This fixes a regression introduced with r16-5258-g1d8e2d51e5c5cb. With GCC 12+, we would not merge forwarders (with phis, vops included), this meant that after the last cddce, degenerate phis would stay not merged which allowed for better expansion. Now after my patch, the forwarder block would be removed and get worse expansion. This fixes the problem by creating the forwarder blocks in "optimized" and no other cleanupcfg is called afterwards. Oh this also fixes the problem at -O1 which was missed because the agressive version of dce was not done at -O1. Bootstrapped and tested on x86_64-linux-gnu. PR tree-optimization/46555 gcc/ChangeLog: * tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing): Don't set todo to include cleanupcfg; do it manually. Call make_forwarders_with_degenerate_phis if optimizing. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/pr46555.c: New test. Signed-off-by: Andrew Pinski <andrew.pinski@oss.qualcomm.com>
Diffstat (limited to 'gcc/ada/rtinit.c')
0 files changed, 0 insertions, 0 deletions