Perform reverse program order walk for GIMPLE DSE
authorRichard Biener <rguenther@suse.de>
Mon, 3 May 2021 07:17:55 +0000 (09:17 +0200)
committerRichard Biener <rguenther@suse.de>
Mon, 3 May 2021 13:11:03 +0000 (15:11 +0200)
commited3c43224cc4e378dbab066122bc63536ccb1276
tree2165a02f756b5ccf068014f670bfc7fe4044bcea
parent3f570621352970945db657455e0570208ea2d70e
Perform reverse program order walk for GIMPLE DSE

The following changes the post-dominator domwalk done by GIMPLE DSE
to a reverse program order walk.  This enables 2% more stmts do be
DSEd during bootstrap and in particular for testcases like the one
added where it is important to visit post dominators in a particular
order.

2021-05-03  Richard Biener  <rguenther@suse.de>

* tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
(dse_dom_walker): Remove.
(dse_dom_walker::dse_optimize_stmt): Rename...
(dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
(dse_dom_walker::before_dom_children): Inline ...
(pass_dse::execute): ... here.  Perform a reverse program
order walk.

* gcc.dg/tree-ssa/ssa-dse-41.c: New testcase.
gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-41.c [new file with mode: 0644]
gcc/tree-ssa-dse.c