> On Mon, Jan 05, 2015 at 07:38:20PM +0100, Richard Biener wrote: > > >> During function versioning fixup_cfg pass is supposed to handle that, > > >> during IPA inlining there is explicit call to execute_fixup_cfg, but > > >during > > >> early inlining there is not. > > > > > >I am still confused why early inliner does any redirections? It should > > >not. > > >Edge redirection is part of the IPA optimization machinery. > > > > Possibly through stmt folding. > > Generally yes, in this case, I doubt it, it isn't a builtin function. > But it is guarded by a false condition (__builtin_constant_p test), so > supposedly the early inliner figures out that it doesn't need to bother > with the dead call and replaces it with __builtin_unreachable anyway.
Ah, I see, this is resonable explanation - this one changed with enabling the predicates early. The patch is OK. Thanks. Honza > > Jakub