This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][GCC][AArch64] Fix pattern guard relaxations that are allowing more constants than they should.
- From: James Greenhalgh <james dot greenhalgh at arm dot com>
- To: Tamar Christina <tamar dot christina at arm dot com>
- Cc: <gcc-patches at gcc dot gnu dot org>, <nd at arm dot com>, <Richard dot Earnshaw at arm dot com>, <Marcus dot Shawcroft at arm dot com>
- Date: Fri, 11 Aug 2017 14:07:35 +0100
- Subject: Re: [PATCH][GCC][AArch64] Fix pattern guard relaxations that are allowing more constants than they should.
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=bestguesspass action=none header.from=arm.com;
- Nodisclaimer: True
- References: <20170811110137.GA13171@arm.com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
On Fri, Aug 11, 2017 at 12:01:40PM +0100, Tamar Christina wrote:
> Hi All,
>
>
> Hi previous float immediate patches changed
>
> aarch64_reg_or_fp_zero into aarch64_reg_or_fp_float
> for each of the movdf/sf/hf causing the RTL to contain
> stores to memory it would never be able to find a matching
> pattern for. Reload would then decide to store them to a
> register instead.
>
> This didn't cause any incorrect code or failing tests but did change
> scheduling does producing more inefficient code.
>
> The predicate is not reverted.
>
> Regression tested on aarch64-none-linux-gnu and no regressions.
>
> OK for trunk?
OK.
Thanks,
James
>
> Thanks,
> Tamar
>
>
> gcc/
> 2017-08-11 Tamar Christina <tamar.christina@arm.com>
> * config/aarch64/aarch64.md (mov<mode>): Change.
> (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
> aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
> * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
>
> --