This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix ivopts estimates for internal functions
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Richard Sandiford <richard dot sandiford at arm dot com>,gcc-patches at gcc dot gnu dot org
- Date: Thu, 26 May 2016 17:36:58 +0200
- Subject: Re: Fix ivopts estimates for internal functions
- Authentication-results: sourceware.org; auth=none
- References: <871t4oeveh dot fsf at e105548-lin dot cambridge dot arm dot com>
On May 26, 2016 4:39:02 PM GMT+02:00, Richard Sandiford <richard.sandiford@arm.com> wrote:
>tree-ssa-loop-ivopts.c:loop_body_includes_call was treating internal
>calls such as IFN_SQRT as clobbering all caller-saved registers, which
>I don't think is appropriate for any current internal function.
>
>Tested on aarch64-linux-gnu and x86_64-linux-gnu. OK to install?
OK.
Richard.
>Thanks,
>Richard
>
>
>gcc/
> * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
> that internal functions will clobber all caller-saved registers.
>
>diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
>index 9ce6b64..23c9886 100644
>--- a/gcc/tree-ssa-loop-ivopts.c
>+++ b/gcc/tree-ssa-loop-ivopts.c
>@@ -7643,6 +7643,7 @@ loop_body_includes_call (basic_block *body,
>unsigned num_nodes)
> {
> gimple *stmt = gsi_stmt (gsi);
> if (is_gimple_call (stmt)
>+ && !gimple_call_internal_p (stmt)
> && !is_inexpensive_builtin (gimple_call_fndecl (stmt)))
> return true;
> }