This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [AArch64][PR65139] use clobber with match_scratch for aarch64_lshr_sisd_or_int_<mode>3
- From: Richard Earnshaw <Richard dot Earnshaw at foss dot arm dot com>
- To: Kugan <kugan dot vivekanandarajah at linaro dot org>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: Marcus Shawcroft <Marcus dot Shawcroft at arm dot com>, James Greenhalgh <James dot Greenhalgh at arm dot com>, Maxim Kuvyrkov <maxim dot kuvyrkov at linaro dot org>
- Date: Wed, 15 Apr 2015 13:18:36 +0100
- Subject: Re: [AArch64][PR65139] use clobber with match_scratch for aarch64_lshr_sisd_or_int_<mode>3
- Authentication-results: sourceware.org; auth=none
- References: <552D897C dot 2040207 at linaro dot org>
On 14/04/15 22:41, Kugan wrote:
This patch uses clobber with match_scratch instead of earlyclobber for
aarch64_lshr_sisd_or_int_<mode>3 so that RA can have more freedom in
selecting suitable register, as discussed in
http://thread.gmane.org/gmane.comp.gcc.patches/336162 and reported in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65139.
This is based on Maxim's patch. I have bootstrapped and regression
tested on aarch64-linux-gnu with no new regressions. Is this OK for trunk?
Thanks,
Kugan
gcc/ChangeLog:
2015-04-15 Kugan Vivekanandarajah <kuganv@linaro.org>
Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
PR target/65139
* config/aarch64/aarch64.md (<optab><mode>3): Expand lshr with
gen_aarch64_lshr_sisd_or_int_<mode>3.
(*aarch64_lshr_sisd_or_int_<mode>3): Rename to
aarch64_lshr_sisd_or_int_<mode>3 and use clobber with
match_scratch instead of early clobber.
+ if (strcmp ("<optab>", "lshr") == 0)
+ {
This can't be the best way to match the operation type. Yes, I know
that the comparison is a compile time invariant, but there must be an
attribute of optab (or one can be created for it) that would make the
test trivial and not rely on the compiler optimizing the strcmp away.
R.