https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61110
Drea Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=122996
--- Comment #6 from Drea Pinski <pinskia at gcc dot gnu.org> ---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122996#c7 has the decent
suggestion for part of the simplification here.
Basically if we have:
if (...)
t = expression;
PHI<t, CST>
check to see the value of t on the other edge and see if it is the same as the
CST.
But that won't fix the overall thing here.
Though we can do the same thing with respect.
Say we have:
if (...)
t = a + b;
Phi<t, a>
We can see if the value of b in the edge where a is located is 0.
And then we don't need to record the stuff from ... as ranger already has that.
That should very much simplify things.
But that does not handle the non-constant case still. I have to look
up/understand VRP code for that ...