gcc/contrib
Richard Sandiford b0e84cf75a Reorganise machmode.h headers
This patch splits the auto-generated inline functions out of
insn-modes.h and puts them in a new header file, insn-modes-inline.h.
It also makes coretypes.h include these files directly, rather than
indirectly via machmode.h.  This in turn allows insn-modes-inline.h
and machmode.h to come later in the include list, after wide-int.h.
This is useful for later patches.

insn-modes.h itself still needs to come first, since it provides
configuration information like MAX_BITSIZE_MODE_ANY_INT, which is
used to control the size of a wide_int.

The patch also makes the generator files include machmode.h
via coretypes.h.  Previously they did it by more indirect means.

Finally, the patch makes wide-int-print.h available via coretypes.h
too.  There didn't seem to be any reason to force only the print
routines to be included directly, and it would be painful to extend
that approach to the SVE patches.


[Based on the code ARM contributed in branches/ARM/sve-branch@242100]

2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

contrib/header-tools/
	* graph-header-logs (ignore): Update coretypes.h header list.

gcc/
	* Makefile.in (MACHMODE_H): Remove insn-modes.h
	(CORETYPES_H): New define.
	(MOSTLYCLEANFILES): Add insn-modes-inline.h.
	(insn-modes-inline.h, s-modes-inline-h): New rules.
	(generated_files): Add insn-modes-inline.h.
	(RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
	(build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
	(build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
	(build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
	(build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
	(build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
	(build/gencodes.o, build/genconditions.o): Likewise.
	(build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
	(build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
	(build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
	(build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
	(build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
	(build/gencfn-macros.o, build/gcov-iov.o): Likewise.
	* coretypes.h: Include everything up to real.h for generators.
	Include insn-modes.h first.  Include wide-int-print.h after
	wide-int.h.  Include insn-modes-inline.h and then machmode.h.
	* machmode.h: Don't include insn-modes.h here.
	* function-tests.c: Remove includes of signop.h, machmode.h,
	double-int.h and wide-int.h.
	* rtl.h: Likewise.
	* gcc-rich-location.c: Remove includes of machmode.h, double-int.h
	and wide-int.h.
	* optc-save-gen.awk: Likewise.
	* gencheck.c (BITS_PER_UNIT): Delete dummy definition.
	* godump.c: Remove include of wide-int-print.h.
	* pretty-print.h: Likewise.
	* wide-int-print.cc: Likewise.
	* wide-int.cc: Likewise.
	* hash-map-tests.c: Remove include of signop.h.
	* hash-set-tests.c: Likewise.
	* rtl-tests.c: Likewise.
	* mkconfig.sh: Remove include of machmode.h.
	* genmodes.c (emit_insn_modes_h): Split emission of inline functions
	into...
	(emit_insn_modes_inline_h): ...this new function.  Emit the code
	into an insn-modes-inline.h header file, adding appropriate
	include guards and end comments.
	(emit_insn_modes_c_header): Remove include of machmode.h.
	(emit_min_insn_modes_c_header): Include coretypes.h rather than
	machmode.h.
	(main): Handle -i flag and call emit_insn_modes_inline_h when
	it is passed.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r249881
2017-07-02 09:06:10 +00:00
..
header-tools Reorganise machmode.h headers 2017-07-02 09:06:10 +00:00
reghunt
regression
testsuite-management
analyze_brprob_spec.py Compare predictor values with these defined in predict.def. 2017-05-30 07:16:31 +00:00
analyze_brprob.py Compare predictor values with these defined in predict.def. 2017-05-30 07:16:31 +00:00
ChangeLog Doxygen: add default location for filters and output folder. 2017-06-28 07:52:46 +00:00
ChangeLog.jit
ChangeLog.tree-ssa
check_GNU_style_lib.py check_GNU_style_lib.py: Fix trailing whitespace check 2017-05-29 07:31:11 +00:00
check_GNU_style.py check_GNU_style.py: Read stdin if file argument is '-' 2017-05-29 07:31:02 +00:00
check_GNU_style.sh
check_makefile_deps.sh
check_warning_flags.sh
clang-format
compare_tests
compare_two_ftime_report_sets
compare-all-tests
compare-debug
compareSumTests3
config-list.mk config-list.mk (am33_2.0-linux): Remove from list of targets to build. 2017-05-03 09:23:35 -06:00
dg-cmp-results.sh Fix variant selection in dg-cmp-results.sh 2017-06-21 16:20:57 +00:00
dg-extract-results.py
dg-extract-results.sh
dglib.pm
download_prerequisites
filter_gcc_for_doxygen Doxygen: add default location for filters and output folder. 2017-06-28 07:52:46 +00:00
filter_knr2ansi.pl
filter_params.py Doxygen: transform ENUM_BITFIELD and comments starting with '/**'. 2017-05-31 14:08:36 +00:00
gcc_build
gcc_update
gcc.doxy Doxygen: add default location for filters and output folder. 2017-06-28 07:52:46 +00:00
gen_autofdo_event.py
gennews * gennews (files): Add files for GCC 7. 2017-05-02 14:37:31 +02:00
gimple.vim
gthr_supp_vxw_5x.c
index-prop
jit-coverage-report.py
make_sunver.pl
make-obstacks-texi.pl
mark_spam.py
mklog
paranoia.cc
patch_tester.sh
prepare_patch.sh
prerequisites.md5
prerequisites.sha512
repro_fail
test_installed
test_recheck
test_summary
texi2pod.pl
uninclude
update-copyright.py
vimrc
warn_summary