https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87168

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
It shows a few things, first, SSA names defined before the value-numbered
region are not considered "available".  So for

 _1 = ...;

region_begin:
 _2 = _1;
 _3 = _2;

we'd not optimize to

 _2 = _1;
 _3 = _1;

then it shows, that

5093            /* Look for sth available at the definition block of the
argument.
5094               This avoids inconsistencies between availability there which
5095               decides if the stmt can be removed and availability at the
5096               use site.  The SSA property ensures that things available
5097               at the definition are also available at uses.  */

computes bogus availability when the above isn't handled correctly (or we
make things available at places where there's dominating stuff available).

Reply via email to