> 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. Honza