diff options
author | Thomas Schwinge <tschwinge@baylibre.com> | 2024-03-10 22:57:58 +0100 |
---|---|---|
committer | Thomas Schwinge <tschwinge@baylibre.com> | 2024-03-10 22:57:58 +0100 |
commit | fe4ff2101af0bb23462fac5e0adaf4cef54f09af (patch) | |
tree | dff4efc7002974d5d7aa6b057d72b4a6c91a14c6 | |
parent | f1e5b36df008d0624b3a221b8d84179298c3421c (diff) | |
parent | 0a85544e1aaeca41133ecfc438cda913dbc0f122 (diff) | |
download | gcc-fe4ff2101af0bb23462fac5e0adaf4cef54f09af.zip gcc-fe4ff2101af0bb23462fac5e0adaf4cef54f09af.tar.gz gcc-fe4ff2101af0bb23462fac5e0adaf4cef54f09af.tar.bz2 |
Merge commit '0a85544e1aaeca41133ecfc438cda913dbc0f122' into HEAD
-rw-r--r-- | gcc/Makefile.in | 67 | ||||
-rwxr-xr-x | gcc/configure | 29 | ||||
-rw-r--r-- | gcc/configure.ac | 15 |
3 files changed, 89 insertions, 22 deletions
diff --git a/gcc/Makefile.in b/gcc/Makefile.in index e654635..8780151 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -214,6 +214,14 @@ rtl-ssa-warn = $(STRICT_WARN) GCC_WARN_CFLAGS = $(LOOSE_WARN) $(C_LOOSE_WARN) $($(@D)-warn) $(if $(filter-out $(STRICT_WARN),$($(@D)-warn)),,$(C_STRICT_WARN)) $(NOCOMMON_FLAG) $($@-warn) GCC_WARN_CXXFLAGS = $(LOOSE_WARN) $($(@D)-warn) $(NOCOMMON_FLAG) $($@-warn) +# The number of splits to be made for the match.pd files. +NUM_MATCH_SPLITS = @DEFAULT_MATCHPD_PARTITIONS@ +MATCH_SPLITS_SEQ = $(shell seq 1 $(NUM_MATCH_SPLITS)) +GIMPLE_MATCH_PD_SEQ_SRC = $(patsubst %, gimple-match-%.cc, $(MATCH_SPLITS_SEQ)) +GIMPLE_MATCH_PD_SEQ_O = $(patsubst %, gimple-match-%.o, $(MATCH_SPLITS_SEQ)) +GENERIC_MATCH_PD_SEQ_SRC = $(patsubst %, generic-match-%.cc, $(MATCH_SPLITS_SEQ)) +GENERIC_MATCH_PD_SEQ_O = $(patsubst %, generic-match-%.o, $(MATCH_SPLITS_SEQ)) + # These files are to have specific diagnostics suppressed, or are not to # be subject to -Werror: # flex output may yield harmless "no previous prototype" warnings @@ -222,9 +230,8 @@ gengtype-lex.o-warn = -Wno-error libgcov-util.o-warn = -Wno-error libgcov-driver-tool.o-warn = -Wno-error libgcov-merge-tool.o-warn = -Wno-error -gimple-match.o-warn = -Wno-unused +gimple-match-head.o-warn = -Wno-unused gimple-match-exports.o-warn = -Wno-unused -generic-match.o-warn = -Wno-unused dfp.o-warn = -Wno-strict-aliasing # All warnings have to be shut off in stage1 if the compiler used then @@ -1320,9 +1327,9 @@ ANALYZER_OBJS = \ # will build them sooner, because they are large and otherwise tend to be # the last objects to finish building. OBJS = \ - gimple-match.o \ + $(GIMPLE_MATCH_PD_SEQ_O) \ gimple-match-exports.o \ - generic-match.o \ + $(GENERIC_MATCH_PD_SEQ_O) \ insn-attrtab.o \ insn-automata.o \ insn-dfatab.o \ @@ -1815,7 +1822,8 @@ MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \ insn-output.cc insn-recog.cc insn-emit.cc insn-extract.cc insn-peep.cc \ insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \ insn-latencytab.cc insn-opinit.cc insn-opinit.h insn-preds.cc insn-constants.h \ - tm-preds.h tm-constrs.h checksum-options gimple-match.cc generic-match.cc \ + tm-preds.h tm-constrs.h checksum-options $(GIMPLE_MATCH_PD_SEQ_SRC) \ + $(GENERIC_MATCH_PD_SEQ_SRC) gimple-match-auto.h generic-match-auto.h \ tree-check.h min-insn-modes.cc insn-modes.cc insn-modes.h insn-modes-inline.h \ genrtl.h gt-*.h gtype-*.h gtype-desc.cc gtyp-input.list \ case-cfn-macros.h cfn-operators.pd \ @@ -2442,7 +2450,8 @@ $(common_out_object_file): $(common_out_file) .PRECIOUS: insn-config.h insn-flags.h insn-codes.h insn-constants.h \ insn-emit.cc insn-recog.cc insn-extract.cc insn-output.cc insn-peep.cc \ insn-attr.h insn-attr-common.h insn-attrtab.cc insn-dfatab.cc \ - insn-latencytab.cc insn-preds.cc gimple-match.cc generic-match.cc \ + insn-latencytab.cc insn-preds.cc $(GIMPLE_MATCH_PD_SEQ_SRC) \ + $(GENERIC_MATCH_PD_SEQ_SRC) gimple-match-auto.h generic-match-auto.h \ insn-target-def.h # Dependencies for the md file. The first time through, we just assume @@ -2695,19 +2704,36 @@ s-tm-texi: build/genhooks$(build_exeext) $(srcdir)/doc/tm.texi.in false; \ fi -gimple-match.cc: s-match gimple-match-head.cc gimple-match-exports.cc ; @true -generic-match.cc: s-match generic-match-head.cc ; @true - -s-match: build/genmatch$(build_exeext) $(srcdir)/match.pd cfn-operators.pd - $(RUN_GEN) build/genmatch$(build_exeext) --gimple $(srcdir)/match.pd \ - > tmp-gimple-match.cc - $(RUN_GEN) build/genmatch$(build_exeext) --generic $(srcdir)/match.pd \ - > tmp-generic-match.cc - $(SHELL) $(srcdir)/../move-if-change tmp-gimple-match.cc \ - gimple-match.cc - $(SHELL) $(srcdir)/../move-if-change tmp-generic-match.cc \ - generic-match.cc - $(STAMP) s-match +$(GIMPLE_MATCH_PD_SEQ_SRC): s-gimple-match gimple-match-head.cc \ + gimple-match-exports.cc; @true +gimple-match-auto.h: s-gimple-match gimple-match-head.cc \ + gimple-match-exports.cc; @true +$(GENERIC_MATCH_PD_SEQ_SRC): s-generic-match generic-match-head.cc; @true +generic-match-auto.h: s-generic-match generic-match-head.cc; @true + +s-gimple-match: build/genmatch$(build_exeext) \ + $(srcdir)/match.pd cfn-operators.pd + $(RUN_GEN) build/genmatch$(build_exeext) --gimple \ + --header=tmp-gimple-match-auto.h --include=gimple-match-auto.h \ + $(srcdir)/match.pd $(patsubst %, tmp-%, $(GIMPLE_MATCH_PD_SEQ_SRC)) + $(foreach id, $(MATCH_SPLITS_SEQ), \ + $(SHELL) $(srcdir)/../move-if-change tmp-gimple-match-$(id).cc \ + gimple-match-$(id).cc;) + $(SHELL) $(srcdir)/../move-if-change tmp-gimple-match-auto.h \ + gimple-match-auto.h + $(STAMP) s-gimple-match + +s-generic-match: build/genmatch$(build_exeext) \ + $(srcdir)/match.pd cfn-operators.pd + $(RUN_GEN) build/genmatch$(build_exeext) --generic \ + --header=tmp-generic-match-auto.h --include=generic-match-auto.h \ + $(srcdir)/match.pd $(patsubst %, tmp-%, $(GENERIC_MATCH_PD_SEQ_SRC)) + $(foreach id, $(MATCH_SPLITS_SEQ), \ + $(SHELL) $(srcdir)/../move-if-change tmp-generic-match-$(id).cc \ + generic-match-$(id).cc;) + $(SHELL) $(srcdir)/../move-if-change tmp-generic-match-auto.h \ + generic-match-auto.h + $(STAMP) s-generic-match GTFILES = $(CPPLIB_H) $(srcdir)/input.h $(srcdir)/coretypes.h \ $(host_xm_file_list) \ @@ -2842,7 +2868,8 @@ generated_files = config.h tm.h $(TM_P_H) $(TM_D_H) $(TM_H) multilib.h \ $(ALL_GTFILES_H) gtype-desc.cc gtype-desc.h version.h \ options.h target-hooks-def.h insn-opinit.h \ common/common-target-hooks-def.h pass-instances.def \ - gimple-match.cc generic-match.cc \ + $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) \ + gimple-match-auto.h generic-match-auto.h \ c-family/c-target-hooks-def.h d/d-target-hooks-def.h \ $(TM_RUST_H) rust/rust-target-hooks-def.h \ case-cfn-macros.h \ diff --git a/gcc/configure b/gcc/configure index 4138f59..013f7d7 100755 --- a/gcc/configure +++ b/gcc/configure @@ -841,6 +841,7 @@ enable_gcov enable_shared enable_fixed_point enable_decimal_float +DEFAULT_MATCHPD_PARTITIONS with_float with_cpu enable_multiarch @@ -968,6 +969,7 @@ enable_valgrind_annotations enable_multilib enable_multiarch with_stack_clash_protection_guard_size +with_matchpd_partitions enable___cxa_atexit enable_decimal_float enable_fixed_point @@ -1829,6 +1831,9 @@ Optional Packages: --with-stack-clash-protection-guard-size=size Set the default stack clash protection guard size for specific targets as a power of two in bytes. + --with-matchpd-partitions=num + Set the number of partitions to make for gimple and + generic when splitting match.pd. [default=10] --with-dwarf2 force the default debug format to be DWARF 2 (or later) --with-specs=SPECS add SPECS to driver command-line processing @@ -7892,6 +7897,26 @@ cat >>confdefs.h <<_ACEOF _ACEOF +# Specify the number of splits of match.pd to generate. + +# Check whether --with-matchpd-partitions was given. +if test "${with_matchpd_partitions+set}" = set; then : + withval=$with_matchpd_partitions; DEFAULT_MATCHPD_PARTITIONS="$with_matchpd_partitions" +else + DEFAULT_MATCHPD_PARTITIONS=10 +fi + +if (test $DEFAULT_MATCHPD_PARTITIONS -lt 1); then + as_fn_error $? "Invalid value $DEFAULT_MATCHPD_PARTITIONS for --with-matchpd-partitions. Cannot be negative." "$LINENO" 5 +fi + + +cat >>confdefs.h <<_ACEOF +#define DEFAULT_MATCHPD_PARTITIONS $DEFAULT_MATCHPD_PARTITIONS +_ACEOF + + + # Enable __cxa_atexit for C++. # Check whether --enable-__cxa_atexit was given. if test "${enable___cxa_atexit+set}" = set; then : @@ -19839,7 +19864,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 19842 "configure" +#line 19867 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -19945,7 +19970,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 19948 "configure" +#line 19973 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/gcc/configure.ac b/gcc/configure.ac index 5a34b46..de34296 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -921,6 +921,21 @@ fi AC_DEFINE_UNQUOTED(DEFAULT_STK_CLASH_GUARD_SIZE, $DEFAULT_STK_CLASH_GUARD_SIZE, [Define to larger than zero set the default stack clash protector size.]) +# Specify the number of splits of match.pd to generate. +AC_ARG_WITH(matchpd-partitions, +[AS_HELP_STRING([--with-matchpd-partitions=num], +[Set the number of partitions to make for gimple and generic when splitting match.pd. [default=10]])], +[DEFAULT_MATCHPD_PARTITIONS="$with_matchpd_partitions"], [DEFAULT_MATCHPD_PARTITIONS=10]) +if (test $DEFAULT_MATCHPD_PARTITIONS -lt 1); then + AC_MSG_ERROR(m4_normalize([ + Invalid value $DEFAULT_MATCHPD_PARTITIONS for --with-matchpd-partitions. \ + Cannot be negative.])) +fi + +AC_DEFINE_UNQUOTED(DEFAULT_MATCHPD_PARTITIONS, $DEFAULT_MATCHPD_PARTITIONS, + [Define to larger than one set the number of match.pd partitions to make.]) +AC_SUBST(DEFAULT_MATCHPD_PARTITIONS) + # Enable __cxa_atexit for C++. AC_ARG_ENABLE(__cxa_atexit, [AS_HELP_STRING([--enable-__cxa_atexit], [enable __cxa_atexit for C++])], |