diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2017-01-11 14:39:00 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2017-01-11 14:39:00 +0000 |
commit | a92ffb3e945608131f5edf3ec2d6d583e417083b (patch) | |
tree | 5bbd0872a85c391ee212c559fe8febfa9e2fbc81 /contrib | |
parent | ca280d38f95255a876fc56547d55ab3db50ea38f (diff) | |
download | gcc-a92ffb3e945608131f5edf3ec2d6d583e417083b.zip gcc-a92ffb3e945608131f5edf3ec2d6d583e417083b.tar.gz gcc-a92ffb3e945608131f5edf3ec2d6d583e417083b.tar.bz2 |
[arm] Replace command-line option .def files with single definition file
The files arm-cores.def, arm-fpus.def and arm-arches.def are parsed and
used in several places and the format is slightly awkward to maintain
as they must be parsable in C and by certain scripts. Furthermore,
changes to the content that affects every entry is particularly awkward for
dealing with merges.
This patch replaces all three files with a single file that specifies all
the command-line related definitions in a new format that allows for better
checking for consistency as well as (hopefully) easier to merge changes.
The awk script used to parse it is relatively complicated, but should be
pretty portable. It works by parsing in all the data and then operating
one of a number of possible sub-commands to generate the desired output.
The new method picked up one error. The CPU descriptions referred to an
architecture ARMv5tej which was not supported by -march. This has been
fixed by adding the relevant entry to the architecture list.
gcc:
* config.gcc: Use new awk script to check CPU, FPU and architecture
parameters for --with-... options.
* config/arm/parsecpu.awk: New file
* config/arm/arm-cpus.in: New file.
* config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
files.
* config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
files.
* config/arm/t-arm: Update dependency rules.
* common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
of processing .def files.
* config/arm/genopt.sh: Deleted.
* config/arm/gentune.sh: Deleted.
* config/arm/arm-cores.def: Deleted.
* config/arm/arm-arches.def: Deleted.
* config/arm/arm-fpus.def: Deleted.
* config/arm/arm-tune.md: Regenerated.
* config/arm/arm-tables.opt: Regenerated.
* config/arm/arm-cpu.h: New generated file.
* config/arm/arm-cpu-data.h: New generated file.
* config/arm/arm-cpu-cdata.h: New generated file.
Contrib:
* gcc_update: Adjust touch list.
From-SVN: r244316
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/ChangeLog | 4 | ||||
-rwxr-xr-x | contrib/gcc_update | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 04130f1..8706ee1 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,7 @@ +2017-01-11 Richard Earnshaw <rearnsha@arm.com> + + * gcc_update: Adjust touch list for ARM. + 2017-01-08 Gerald Pfeifer <gerald@pfeifer.com> * download_ecj: Remove. diff --git a/contrib/gcc_update b/contrib/gcc_update index 2df9da4..ab5b33d 100755 --- a/contrib/gcc_update +++ b/contrib/gcc_update @@ -80,8 +80,11 @@ gcc/cstamp-h.in: gcc/configure.ac gcc/config.in: gcc/cstamp-h.in gcc/fixinc/fixincl.x: gcc/fixinc/fixincl.tpl gcc/fixinc/inclhack.def gcc/config/aarch64/aarch64-tune.md: gcc/config/aarch64/aarch64-cores.def gcc/config/aarch64/gentune.sh -gcc/config/arm/arm-tune.md: gcc/config/arm/arm-cores.def gcc/config/arm/gentune.sh -gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-arches.def gcc/config/arm/arm-cores.def gcc/config/arm/arm-fpus.def gcc/config/arm/genopt.sh +gcc/config/arm/arm-tune.md: gcc/config/arm/arm-cpus.in gcc/config/arm/parsecpu.awk +gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-cpus.in gcc/config/arm/parsecpu.awk +gcc/config/arm/arm-cpu.h: gcc/config/arm/arm-cpus.in gcc/config/arm/parsecpu.awk +gcc/config/arm/arm-cpu-data.h: gcc/config/arm/arm-cpus.in gcc/config/arm/parsecpu.awk +gcc/config/arm/arm-cpu-cdata.h: gcc/config/arm/arm-cpus.in gcc/config/arm/parsecpu.awk gcc/config/avr/avr-tables.opt: gcc/config/avr/avr-mcus.def gcc/config/avr/genopt.sh gcc/config/avr/t-multilib: gcc/config/avr/avr-mcus.def gcc/config/avr/genmultilib.awk gcc/config/c6x/c6x-tables.opt: gcc/config/c6x/c6x-isas.def gcc/config/c6x/genopt.sh |