This is the mail archive of the gcc-cvs@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]

r249282 - in /trunk/gcc: ChangeLog config/arm/a...


Author: rearnsha
Date: Fri Jun 16 21:02:10 2017
New Revision: 249282

URL: https://gcc.gnu.org/viewcvs?rev=249282&root=gcc&view=rev
Log:
[arm] Allow +opt on arbitrary cpu and architecture


This is the main patch to provide the infrastructure for adding
feature extensions to CPU and architecture specifications.  It does not,
however, add all the extensions that we intend to support (just a small
number to permit some basic testing).  Now, instead of having specific
entries in the architecture table for variants such as armv8-a+crc, the
crc extension is specified as an optional component of the armv8-a
architecture entry.  Similar control can be added to CPU option names.
In both cases the list of permitted options is controlled by the main
architecture or CPU name to prevent arbitrary cross-products of options.

	* config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
	nofp.
	(armv8-a+crc): Delete.
	(armv8.1-a): Add options simd, crypto and nofp.
	(armv8.2-a): Add options fp16, simd, crypto and nofp.
	(armv8.2-a+fp16): Delete.
	(armv8-m.main): Add option dsp.
	(armv8-m.main+dsp): Delete.
	(cortex-a8): Add fpu.  Add nofp option.
	(cortex-a9): Add fpu.  Add nofp and nosimd options.
	* config/arm/parsecpu.awk (gen_data): Generate option tables and
	link to main cpu and architecture data structures.
	(gen_comm_data): Only put isa attributes from the main architecture
	in common tables.
	(option): New statement for architecture and CPU entries.
	* arm.c (struct cpu_option): New structure.
	(struct processors): Add entry for options.
	(arm_unrecognized_feature): New function.
	(arm_parse_arch_cpu_name): Ignore any characters after the first
	'+' character.
	(arm_parse_arch_cpu_feature): New function.
	(arm_configure_build_target): Separate out any CPU and architecture
	features and parse separately.  Don't error out if -mfpu=auto is
	used with only an architecture string.
	(arm_print_asm_arch_directives): New function.
	(arm_file_start): Call it.
	* config/arm/arm-cpu-cdata.h: Regenerated.
	* config/arm/arm-cpu-data.h: Likewise.
	* config/arm/arm-tables.opt: Likewise.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/arm/arm-cpu-cdata.h
    trunk/gcc/config/arm/arm-cpu-data.h
    trunk/gcc/config/arm/arm-cpus.in
    trunk/gcc/config/arm/arm-tables.opt
    trunk/gcc/config/arm/arm.c
    trunk/gcc/config/arm/parsecpu.awk


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