This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [LTO][PATCH] Fix WPA breakage
2008/9/25 Doug Kwan (Ãö®¶¼w) <dougkwan@google.com>
>
> I know what causes the problem. The inter-procedural constant
> propagation pass generates summary information about indirect calls.
> Currently we do not write out this summary. It is regenerated in the
> normal LTO run. When we run WPA, regenerating that information is not
> possible because the function bodies are not present in memory. So we
> do have that piece of information. The crash you see is caused by the
> IPA inliner when it tries to copy the indirect-call summary of edges
> and nodes.
What's the easiest way to disable this? Simply commenting out the
following block:
/* FIXME lto. Hack. We should use the IPA passes. There are a number
of issues with this now. 1. There is no convenient way to do this.
2. Some passes may depend on properties that requires the function
bodies to compute. */
cgraph_function_flags_ready = true;
bitmap_obstack_initialize (NULL);
ipa_register_cgraph_hooks ();
/* Reset inlining informationi before running IPA inliner. */
for (node = cgraph_nodes; node; node = node->next)
reset_inline_failed (node);
/* FIXME lto. We should not call this function directly. */
pass_ipa_inline.pass.execute ();
verify_cgraph ();
bitmap_obstack_release (NULL);
triggers another error:
lto1: internal compiler error: in
cgraph_function_body_availability, at cgraph.c:1384
I'd like to disable this for now, so we can start linking all the
WHOPR bits together without things blowing up.
Ollie