On Sat, Mar 19, 2011 at 08:08:48AM -0400, Kenneth Zadeck wrote: > > On 03/19/2011 05:19 AM, Paolo Bonzini wrote: > >On Fri, Mar 18, 2011 at 19:18, Kenneth Zadeck<zad...@naturalbridge.com> > >wrote: > >>yes, but i think that the reason this is a pr is that it seems to be needed > >>for correctness. > >Note that df_get_bb_dirty is defaulting to "return false", not > >"abort". This is what tricked crossjumping and caused the bug. > > > where does the compiler fail if you change it to abort, (after doing > the check from jakub's patch)?
With neither of the patches of mine for this issue, df_get_bb_dirty would ICE with added gcc_assert (df && df_live); The point is that df_get_bb_dirty was silently returning false even for blocks which had lr not recumputed when live wasn't computed at all. So live isn't needed for crossjumping correctness, assuming df_get_bb_dirty is compatible with what df_get_live_out does (the first patch). Jakub