This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix hang in inline_small_functions (PR ipa/84425)
- From: Jeff Law <law at redhat dot com>
- To: Jakub Jelinek <jakub at redhat dot com>, Jan Hubicka <jh at suse dot cz>, Richard Biener <rguenther at suse dot de>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 16 Feb 2018 16:03:16 -0700
- Subject: Re: [PATCH] Fix hang in inline_small_functions (PR ipa/84425)
- Authentication-results: sourceware.org; auth=none
- References: <20180216224944.GG5867@tucnak>
On 02/16/2018 03:49 PM, Jakub Jelinek wrote:
> Hi!
>
> When debugging a wrong-code in miniruby on aarch64, I've noticed a hang
> in inline_small_functions when adding __attribute__((optimize(0)))
> to one of the functions.
>
> I don't know what exactly the code is doing, but it feels like a typo for
> me, at least I'd expect the intent is for n2 to walk the whole chain,
> rather than just the first 2 elements of it and then hope something changes
> the ((struct ipa_dfs_info *) node->aux)->next_cycle to something different,
> when the loop body is
> if (opt_for_fn (n2->decl, optimize))
> {
> struct ipa_fn_summary *info2 = ipa_fn_summaries->get (n2);
> if (info2->scc_no)
> break;
> info2->scc_no = id;
> }
> and so for some n2's isn't doing anything and at least the method name get
> doesn't suggest it would update something.
> While the regression on this testcase is recent, I think the bug is latent
> since 2012 when this code has been introduced.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 2018-02-16 Jakub Jelinek <jakub@redhat.com>
>
> PR ipa/84425
> * ipa-inline.c (inline_small_functions): Fix a typo.
>
> * gcc.c-torture/compile/pr84425.c: New test.
Looks like a typo to me too.
OK.
jeff