This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [AArch64] Give some new costs for Cortex-A57 floating-point operations
- From: James Greenhalgh <james dot greenhalgh at arm dot com>
- To: <gcc-patches at gcc dot gnu dot org>
- Cc: <nd at arm dot com>, <richard dot earnshaw at arm dot com>, <marcus dot shawcroft at arm dot com>
- Date: Mon, 20 Jun 2016 12:04:54 +0100
- Subject: Re: [AArch64] Give some new costs for Cortex-A57 floating-point operations
- Authentication-results: sourceware.org; auth=none
- Nodisclaimer: True
- References: <1464942950-29272-1-git-send-email-james dot greenhalgh at arm dot com> <20160610082946 dot GA37515 at arm dot com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
On Fri, Jun 10, 2016 at 09:29:46AM +0100, James Greenhalgh wrote:
> On Fri, Jun 03, 2016 at 09:35:50AM +0100, James Greenhalgh wrote:
> >
> > Hi,
> >
> > This patch rebases the floating-point cost table for Cortex-A57 to be
> > relative to the cost of a floating-point move. This in response to this
> > feedback from Richard Sandiford [2] on Ramana's patch to calls.c [1] from
> > 2014:
> >
> > I think this is really a bug in the backend. The backend is assigning a
> > cost of COSTS_N_INSNS (3) to a floating-point constant not because the
> > constant itself is expensive -- it's actually as cheap as a register
> > in this context -- but because the backend considers floating-point
> > moves to be 3 times more expensive than cheap integer moves.
> >
> > The argument is that a move in mode X should be treated with cost
> > COSTS_N_INSNS (1), and other instructions should have a cost relative to
> > that move. For example, in this patch we say that instructions building a
> > floating-point constant are the same cost as a floating-point register to
> > register move. Fixing this fixes the issue Ramana was seeing, in a way
> > consistent with what other back-ends do.
> >
> > This patch gives a small improvement to Spec2000FP on a Cortex-A57
> > platform.
> >
> > Bootstrapped on aarch64-none-linux-gnu with no issues.
> >
> > OK?
>
> *ping*
*ping^*
https://gcc.gnu.org/ml/gcc-patches/2016-06/msg00251.html
Thanks,
James
> > 2016-06-03 James Greenhalgh <james.greenhalgh@arm.com>
> >
> > * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
> > costs relative to the cost of a register move.
> >
>