This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Watch for missing summaries even more
- From: Martin Jambor <mjambor at suse dot cz>
- To: Jan Hubicka <hubicka at ucw dot cz>, gcc-patches at gcc dot gnu dot org
- Cc:
- Date: Wed, 30 Oct 2019 13:06:31 +0100
- Subject: Re: Watch for missing summaries even more
- References: <20191030092236.og3pjotzqrzsaifs@kam.mff.cuni.cz>
Hi,
On Wed, Oct 30 2019, Jan Hubicka wrote:
> Hi,
> this patch fixes another place we may have missing argument summary.
> Here the situation is that the call site being inlined has no jump
> functions while function which is being inlines has another call with
> jump function. This can validly happen when we inline into functions
> with indirect inlining and ipa-cp disabled but I am not 100% why it
> happens i.e. during Firefox builds. Martin, do you have any ideas?
No, not without seeing what is going on. I think we compute jump
functions also when we are inlining and IPA-CP is disabled, by the way.
It looks like ipa_compute_jump_functions_for_edge was never called on
that edge, so if the problem appeared in a non-LTO context the following
might help? And I assume we want it either way, so OK for trunk after a
bootstrap&testing?
Martin
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 0dd73561419..10fe1bc929f 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -2040,7 +2040,7 @@ ipa_compute_jump_functions_for_bb (struct ipa_func_body_info *fbi, basic_block b
if (callee)
{
- callee->ultimate_alias_target ();
+ callee = callee->ultimate_alias_target ();
/* We do not need to bother analyzing calls to unknown functions
unless they may become known during lto/whopr. */
if (!callee->definition && !flag_lto)