aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-04-27 14:32:27 +0200
committerRichard Biener <rguenther@suse.de>2021-04-29 08:32:14 +0200
commitb58dc0b803057c0e6032e0d9bd92cd834f72c75c (patch)
tree10646b0a8e6364098f9965acdf76056e136f14e4 /gcc/ada
parent8ddce3f7d0db060885df24e41dd289173ec774a0 (diff)
downloadgcc-b58dc0b803057c0e6032e0d9bd92cd834f72c75c.zip
gcc-b58dc0b803057c0e6032e0d9bd92cd834f72c75c.tar.gz
gcc-b58dc0b803057c0e6032e0d9bd92cd834f72c75c.tar.bz2
tree-optimization/99912 - delete trivially dead stmts during DSE
DSE performs a backwards walk over stmts removing stores but it leaves removing resulting dead SSA defs to later passes. This eats into its own alias walking budget if the removed stores kept loads live. The following patch adds removal of trivially dead SSA defs which helps in this situation and reduces the amount of garbage followup passes need to deal with. 2021-04-28 Richard Biener <rguenther@suse.de> PR tree-optimization/99912 * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New. (dse_dom_walker::todo): Likewise. (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the caller. (dse_dom_walker::before_dom_children): Remove trivially dead SSA defs and schedule CFG cleanup if we removed all PHIs in a block. (pass_dse::execute): Get TODO as computed by the DOM walker and return it. Wipe dominator info earlier. * gcc.dg/pr95580.c: Disable DSE. * gcc.dg/Wrestrict-8.c: Place a use after each memcpy. * c-c++-common/ubsan/overflow-negate-3.c: Make asms volatile to prevent them from being removed. * c-c++-common/ubsan/overflow-sub-4.c: Likewise.
Diffstat (limited to 'gcc/ada')
0 files changed, 0 insertions, 0 deletions