remove dead debug-bind resets
authorRichard Biener <rguenther@suse.de>
Tue, 14 Jan 2020 14:31:18 +0000 (15:31 +0100)
committerRichard Biener <rguenther@suse.de>
Tue, 12 May 2020 13:52:03 +0000 (15:52 +0200)
commit998fbe9f1f7e5ef53ca79fbd28f8a3875a477baa
treedec6551393728fe08005573d5eda237eebc311ef
parent119a7db1e05c9741803b3ff93266b00fd535732a
remove dead debug-bind resets

This removes debug-bind resets aka

 # DEBUG b = NULL

when the reset variable is otherwise unused.  I've gathered statistics
for a single TU, fold-const.ii which at -O2 -g shows

28 ssa "dead debug bind reset" 1
34 einline "dead debug bind reset" 340
54 release_ssa "dead debug bind reset" 176
54 release_ssa "live debug bind reset of dead var" 4
86 inline "dead debug bind reset" 5131
86 inline "live debug bind reset of dead var" 61
241 optimized "dead debug bind reset" 970
241 optimized "live debug bind reset of dead var" 287

where "live debug bind reset of dead var" means the variable is unused
but there were debug binds with a value for them and
"dead debug bind reset" means the variable is unused and there were
only debug bind resets (each reset of the same variable is counted
for both counters).  This shows A considerable amount of dead stmts
removed esp. after IPA inlining.

2020-05-12  Richard Biener  <rguenther@suse.de>

* tree-ssa-live.c (remove_unused_locals): Remove dead debug
bind resets.
gcc/ChangeLog
gcc/tree-ssa-live.c