> On Wed, Jan 16, 2013 at 01:44:20PM +0100, Jan Hubicka wrote: > > > Perhaps could you first change cgraph_non_local_node_p_1 and try to check > > > some code > > > if codegen differs significantly? It should not at all. > > > ipa-cp is the sole user of this flag in IPA passes, so you should know > > > what it does. > > > > Thinking deeper of ipa-cp and local virtuals, I think this is all slipperly. > > Local means that all calls to the functions are explicit and known. > > Obviously > > if function is virutal and new calls may appear by devirtualization, the > > local > > flag is bogus. I guess the external functions are the only that may be > > local > > and virtual because somewhere there must be a vtable reference, but to play > > safe, I would suggest marking all virtuals non-local. > > > > Right, as discussed on IRC, the patch below therfore modifies > cgraph_only_called_directly_or_aliased_p to return false for virtual > functions (which translates into cleared local flag) and the cloning > machinery to clear that flag. > > Bootstrapped and tested on x86_64-linux without any problems. OK for > trunk? OK, thanks!
Honza