Richard Sandiford 6d4d616a78 [AArch64] Split built-in function codes into major and minor codes
It was easier to add the SVE ACLE support without enumerating every
function at build time.  This in turn meant that it was easier if the
SVE builtins occupied a distinct numberspace from the existing AArch64
ones, which *are* enumerated at build time.  This patch therefore
divides the built-in functions codes into "major" and "minor" codes.
At present the major code is just "general", but the SVE patch will add
"SVE" as well.

Also, it was convenient to put the SVE ACLE support in its own file,
so the patch makes aarch64.c provide the frontline target hooks directly,
forwarding to the other files for the real work.

The reason for organising the files this way is that aarch64.c needs
to define the target hook macros whatever happens, and having aarch64.c
macros forward to aarch64-builtins.c functions and aarch64-bulitins.c
functions forward to the SVE file seemed a bit indirect.  Doing things
the way the patch does them puts aarch64-builtins.c and the SVE code on
more of an equal footing.

The aarch64_(general_)gimple_fold_builtin change is mostly just
reindentation.

2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* config/aarch64/aarch64-protos.h (aarch64_builtin_class): New enum.
	(AARCH64_BUILTIN_SHIFT, AARCH64_BUILTIN_CLASS): New constants.
	(aarch64_gimple_fold_builtin, aarch64_mangle_builtin_type)
	(aarch64_fold_builtin, aarch64_init_builtins, aarch64_expand_builtin):
	(aarch64_builtin_decl, aarch64_builtin_rsqrt): Delete.
	(aarch64_general_mangle_builtin_type, aarch64_general_init_builtins):
	(aarch64_general_fold_builtin, aarch64_general_gimple_fold_builtin):
	(aarch64_general_expand_builtin, aarch64_general_builtin_decl):
	(aarch64_general_builtin_rsqrt): Declare.
	* config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
	New function.
	(aarch64_mangle_builtin_type): Rename to...
	(aarch64_general_mangle_builtin_type): ...this.
	(aarch64_init_fcmla_laneq_builtins, aarch64_init_simd_builtins)
	(aarch64_init_crc32_builtins, aarch64_init_builtin_rsqrt)
	(aarch64_init_pauth_hint_builtins, aarch64_init_tme_builtins): Use
	aarch64_general_add_builtin instead of add_builtin_function.
	(aarch64_init_builtins): Rename to...
	(aarch64_general_init_builtins): ...this.  Use
	aarch64_general_add_builtin instead of add_builtin_function.
	(aarch64_builtin_decl): Rename to...
	(aarch64_general_builtin_decl): ...this and remove the unused
	arguments.
	(aarch64_expand_builtin): Rename to...
	(aarch64_general_expand_builtin): ...this and remove the unused
	arguments.
	(aarch64_builtin_rsqrt): Rename to...
	(aarch64_general_builtin_rsqrt): ...this.
	(aarch64_fold_builtin): Rename to...
	(aarch64_general_fold_builtin): ...this.  Take the function subcode
	and return type as arguments.  Remove the "ignored" argument.
	(aarch64_gimple_fold_builtin): Rename to...
	(aarch64_general_gimple_fold_builtin): ...this.  Take the function
	subcode and gcall as arguments, and return the new function call.
	* config/aarch64/aarch64.c (aarch64_init_builtins)
	(aarch64_fold_builtin, aarch64_gimple_fold_builtin)
	(aarch64_expand_builtin, aarch64_builtin_decl): New functions.
	(aarch64_builtin_reciprocal): Call aarch64_general_builtin_rsqrt
	instead of aarch64_builtin_rsqrt.
	(aarch64_mangle_type): Call aarch64_general_mangle_builtin_type
	instead of aarch64_mangle_builtin_type.

From-SVN: r276177
2019-09-27 08:47:21 +00:00
2019-09-18 13:32:25 +00:00
2019-09-26 21:43:51 +00:00
2019-09-25 16:04:58 -07:00
2019-09-13 20:14:02 +02:00
2019-09-26 10:54:50 +00:00
2019-09-09 11:14:32 +02:00
2019-09-09 12:13:23 +02:00
2019-09-09 12:13:23 +02:00

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with COPYING for copying permission.  The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs/ for how to report bugs usefully.

Copyright years on GCC source files may be listed using range
notation, e.g., 1987-2012, indicating that every year in the range,
inclusive, is a copyrightable year that could otherwise be listed
individually.
Description
No description provided
Readme 2.1 GiB
Languages
C++ 31.9%
C 31.3%
Ada 12%
D 6.5%
Go 6.4%
Other 11.5%