[Bug tree-optimization/79028] Un-optimal/ incorrect forward propagation
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jan 9 08:57:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79028
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-01-09
CC| |rguenth at gcc dot gnu.org
Component|c |tree-optimization
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed. This is folding via match-and-simplify
ticks_16 = _4 / 1000;
instance_14(D)->dio_next_delay = ticks_16;
_5 = ticks_16 / 2;
_6 = ticks_16 / 2;
to
ticks_16 = _4 / 1000;
instance_14(D)->dio_next_delay = ticks_16;
_5 = _4 / 2000;
_6 = _4 / 2000;
which would be ok if ticks_16 would become dead but it isn't.
forwprop misses global liveness analysis to do a better than nothing cost model
so it blindly assumes there'll be followup optimization opportunities.
It's hard to fix cases like this without pessimizing other cases (without
actually implementing such global cost modeling).
More information about the Gcc-bugs
mailing list