[ARM] Turning off 64bits ops in Neon and gfortran/modulo-scheduling problem

Christophe Lyon christophe.lyon@linaro.org
Wed Jan 16 13:46:00 GMT 2013


Ping^2 ?


On 8 January 2013 17:24, Christophe Lyon <christophe.lyon@linaro.org> wrote:
> Ping?
> http://gcc.gnu.org/ml/gcc-patches/2012-12/msg01197.html
>
> Thanks,
>
> Christophe
>
> On 19 December 2012 16:59, Christophe Lyon <christophe.lyon@linaro.org> wrote:
>> On 17 December 2012 16:12, Richard Earnshaw <rearnsha@arm.com> wrote:
>>> On 29/11/12 17:16, Christophe Lyon wrote:
>>>> On trunk I have noticed a regression in gfortran when using modulo
>>>> scheduling: sms-1.f90 now fails, but I suspect it's not because of
>>>> this patch since forcing compilation for armv5t makes the same test
>>>> fail with and without my patch.
>>>>
>>>
>>> Hmm, that's worrying.  Could you please makesure this is recorded in
>>> bugzilla.  If this is a regression, please mark it as such.
>>>
>> I was about to do so, but after bisecting it turns out that the
>> problem was introduced by
>> http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=192969 and is very
>> likely to be another instance of PR55562, which has just been fixed
>> by http://gcc.gnu.org/ml/gcc-patches/2012-12/msg01137.html.
>>
>>
>>>
>>> Now that this optimization is disabled by default, the onlya8 code is
>>> completely redundant and should be purged, along with the insn alternatives
>>> that used it.
>>>
>>> R.
>>>
>> Here is a new version of my patch, with the cleanup you requested.
>>
>> 2012-12-18  Christophe Lyon  <christophe.lyon@linaro.org>
>>
>>         gcc/
>>         * config/arm/arm-protos.h (tune_params): Add
>>         prefer_neon_for_64bits field.
>>         * config/arm/arm.c (prefer_neon_for_64bits): New variable.
>>         (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
>>         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
>>         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
>>         (arm_cortex_a5_tune, arm_cortex_a15_tune): Ditto.
>>         (arm_cortex_a9_tune, arm_fa726te_tune): Ditto.
>>         (arm_option_override): Handle -mneon-for-64bits new option.
>>         * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
>>         (prefer_neon_for_64bits): Declare new variable.
>>         * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
>>         avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and
>>         nota8.
>>         (arch_enabled): Handle new arch types. Remove support for onlya8
>>         and nota8.
>>         (one_cmpldi2): Use new arch names.
>>         * config/arm/arm.opt (mneon-for-64bits): Add option.
>>         * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
>>         (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
>>         neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
>>         of onlya8.
>>         * doc/invoke.texi (-mneon-for-64bits): Document.
>>
>>         gcc/testsuite/
>>         * gcc.target/arm/neon-for-64bits-1.c: New tests.
>>         * gcc.target/arm/neon-for-64bits-2.c: Likewise.



More information about the Gcc-patches mailing list