http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52558
--- Comment #14 from Aldy Hernandez <aldyh at gcc dot gnu.org> 2012-04-10
17:07:22 UTC ---
Richard G., or perhaps another aliasing expert. I am working on a patch for
this problem. Could you pontificate as to why no optimization pass has been
able to figure out that g_2_lsm.6_12 == g_2 below?
# VUSE <.MEM_9(D)>
g_2_lsm.6_12 = g_2; <-- g_2_lsm set to g_2
if (pretmp.4_1 != 0)
goto <bb 3>;
else
goto <bb 5>;
<bb 3>:
# VUSE <.MEM_9(D)>
D.1883_17 = g_2;
if (g_2_lsm.6_12 != D.1883_17) <-- g_2_lsm compared with g_2
goto <bb 4>;
Why can't anyone figure out that g_2_lsm is g_2? Am I building the conditions
and stores incorrectly, is there a missing annotation, or is something else
amok here?
Thanks.