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]

[PATCH 00/21] [ARM] Automatic selection of FPU


As discussed at this year's Cauldron, it has concerned me for a while
now that when a user of the ARM compiler specifies a CPU they also
need to specify which floating-point unit it has (even though the
choice is almost invariably one).

This patch implements the ability to make the selection automatic when
a CPU is specified (as opposed to an architecture), by specifying
-mfpu=auto.

Long term, I'd like to make this also work in conjunction with
architecture strings and then move towards deprecating -mfpu entirely,
but that's considerably more work and more suited to GCC 8 than GCC 7.

I've discussed the patch set with a couple of the other ARM
maintainers and they are happy for these patches to go in now.

  [arm] Separte tuning flags from architectural flags in CPU tables.
  [arm] Add new isa bits method
  [arm] Introduce arm_active_target.
  [arm] Use arm_active_target for architecture and tune operations.
  [arm] Reduce usage of arm_selected_cpu.
  [arm] Add new isa quirk bit for Cortex-M3 ldrd issue.
  [arm] Use arm_active_target when configuring builtins
  [arm] Remove insn_flags.
  [arm] Rework arm-common to use new feature bits.
  [arm] Remove remaining references to arm feature sets.
  [arm] Delete unused arm_fp_model.
  [arm] Eliminate vfp_reg_type
  [arm] Remove FPU rev field
  [arm] Add isa features to FPU descriptions
  [arm] Initialize fpu capability bits in arm_active_target.
  [arm] Eliminate TARGET_FPU_NAME.
  [arm] Use arm_active_target for most FP feature tests.
  [arm] Use cl_target_options for configuring the active target.
  [arm] Use ISA feature sets for determining inlinability.
  [arm] Remove FEATURES field from FPU descriptions.
  [arm] Permit 'auto' in -mfpu.

 gcc/common/config/arm/arm-common.c |  27 +-
 gcc/config/arm/arm-arches.def      |  90 +++---
 gcc/config/arm/arm-builtins.c      |  35 +--
 gcc/config/arm/arm-c.c             |   3 +
 gcc/config/arm/arm-cores.def       | 239 +++++++--------
 gcc/config/arm/arm-flags.h         | 195 +-----------
 gcc/config/arm/arm-fpus.def        |  48 +--
 gcc/config/arm/arm-isa.h           | 156 ++++++++++
 gcc/config/arm/arm-opts.h          |  13 +-
 gcc/config/arm/arm-protos.h        |  39 ++-
 gcc/config/arm/arm-tables.opt      |  75 +++--
 gcc/config/arm/arm-tune.md         |   8 +-
 gcc/config/arm/arm.c               | 588
+++++++++++++++++++++++++------------
 gcc/config/arm/arm.h               |  72 +----
 gcc/config/arm/arm.opt             |   8 +-
 gcc/config/arm/genopt.sh           |  15 +-
 16 files changed, 909 insertions(+), 702 deletions(-)
 create mode 100644 gcc/config/arm/arm-isa.h


Attachment: Attached Message Part
Description: Text document


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