http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465
--- Comment #5 from rguenther at suse dot de <rguenther at suse dot de> 2012-05-24 07:57:58 UTC --- On Thu, 24 May 2012, jakub at gcc dot gnu.org wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465 > > --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-05-24 > 07:42:26 UTC --- > Dropping all might pessimize some code (of course, this is VR_UNDEFINED, so > the > question is if we need to care that much about broken code), like: > int > foo (int x, int y) > { > int z; > if (x <= 3) > return 7; > if (y) > z = x; > return z == x; > } > > where the equivalence could be very well kept. Or > int > foo (int y) > { > int z; > int x = bar (); > if (x <= 3) > return 7; > if (y) > z = x; > return z == x; > } > > In both cases the x_3 in the equivalence bitmap dominates the PHI stmt (in one > case it is the default parm def, in the second case not). vrp_meet would > probably need to be called with gimple stmt in that case on which the meet > happens. > > Anyway, if you think it is overkill, we can just drop the equivalences > altogether. I indeed think this is overkill, definitely for the 4.7 branch. Richard.