This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [arm][patch] fix arm_neon_ok check on !arm_arch7


On 23/09/14 16:22, Stubbs, Andrew wrote:
Maybe the original patch is better? Or maybe it should reconfigure the FPU instead of erroring out? But reconfigure it to what?

 Andrew,

  are you still working on this?
a bunch of tests on my local environment failed because of the reason James mentioned. for example gcc.target/arm/xor-and.c etc.

    ...
    gcc.target/arm/xor-and.c:1:0: error: target CPU does not support NEON
    ...

Regards.
Jiong


Andrew
________________________________________
From: James Greenhalgh [james.greenhalgh@arm.com]
Sent: 23 September 2014 09:27
To: Stubbs, Andrew
Cc: Richard Earnshaw; gcc-patches@gcc.gnu.org
Subject: Re: [arm][patch] fix arm_neon_ok check on !arm_arch7

On Mon, Sep 15, 2014 at 11:56:03AM +0100, Andrew Stubbs wrote:
On 15/09/14 10:46, Richard Earnshaw wrote:
Hmm, I wonder if arm_override_options should reject neon + (arch < 7).
Is this more to your taste?
Is this really such a good idea? It causes carnage throughout the
testsuite if you have configured with support for Neon and the testcase
is written with dg-options for a pre-armv7-a -march value.

For example in:
   testsuite/gcc.target/arm/di-longlong64-sync-withhelpers.c

Which forces -march=armv5.

Perhaps you just have to fix the effective-target-ok tests - but then
we lose swathes of test coverage.

Thanks,
James

Andrew

P.S. arm_override_options was renamed in 2010.
2014-09-15  Andrew Stubbs  <ams@codesourcery.com>

       * gcc/config/arm/arm.c (arm_option_override): Reject -mfpu=neon
       when architecture is older than ARMv7.

Index: gcc/config/arm/arm.c
===================================================================
--- gcc/config/arm/arm.c      (revision 215228)
+++ gcc/config/arm/arm.c      (working copy)
@@ -2845,6 +2845,9 @@

    arm_fpu_desc = &all_fpus[arm_fpu_index];

+  if (TARGET_NEON && !arm_arch7)
+    error ("target CPU does not support NEON");
+
    switch (arm_fpu_desc->model)
      {
      case ARM_FP_MODEL_VFP:





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]