Il 20/08/2013 15:59, Tom Tromey ha scritto:
> I used this perl script to find unused _H macros in the Makefile. I
> deleted the definitions it reported and re-ran the script, until there
> was no more output.
>
> The script also makes note of _H variables which are used but never
> defined. That is how I found the TREE_GIMPLE_H use, fixed earlier in
> the series.
>
> Once Ada and the various config files are migrated to automatic
> dependencies, we can run this script again and remove more things.
>
> If you find yourself needing to add a new _H variable -- don't!
> Instead, take the few seconds to verify that automatic dependencies
> work in this case, and remove the manual dependencies for whatever
> object you are dealing with.
>
> ================================================================
>
> while (<>) {
> chomp;
> if (m/^(([A-Z0-9_]+)_H)\s*:?=\s/) {
> $saw_def{$1} = $ARGV . ":" . $.;
> }
>
> while (m/\$[({](([A-Z0-9_]+)_H)[)}](.*)/) {
> $saw_use{$1} = 1;
> $_ = $3;
> }
> } continue {
> close ARGV if eof;
> }
>
> foreach $key (sort keys %saw_use) {
> if (! defined $saw_def{$key}) {
> print "use without a def of ", $key, "\n";
> }
> }
>
> foreach $key (sort keys %saw_def) {
> if (! defined $saw_use{$key}) {
> print $saw_def{$key}, ": no use of ", $key, "\n";
> }
> }
> ================================================================
>
> * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
> (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
> (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
> (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
> (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
> (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
> (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
> (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
> (GRAPHITE_HTAB_H): Remove.
> ---
> gcc/Makefile.in | 46 ----------------------------------------------
> 1 file changed, 46 deletions(-)
>
> diff --git a/gcc/Makefile.in b/gcc/Makefile.in
> index c8b7b65..b645dc6 100644
> --- a/gcc/Makefile.in
> +++ b/gcc/Makefile.in
> @@ -446,7 +446,6 @@ HASHTAB_H = $(srcdir)/../include/hashtab.h
> OBSTACK_H = $(srcdir)/../include/obstack.h
> SPLAY_TREE_H= $(srcdir)/../include/splay-tree.h
> FIBHEAP_H = $(srcdir)/../include/fibheap.h
> -PARTITION_H = $(srcdir)/../include/partition.h
> MD5_H = $(srcdir)/../include/md5.h
> DWARF2_H = $(srcdir)/../include/dwarf2.h $(srcdir)/../include/dwarf2.def
> XREGEX_H = $(srcdir)/../include/xregex.h
> @@ -454,7 +453,6 @@ FNMATCH_H = $(srcdir)/../include/fnmatch.h
>
> # Linker plugin API headers
> LINKER_PLUGIN_API_H = $(srcdir)/../include/plugin-api.h
> -LTO_SYMTAB_H = $(srcdir)/../include/lto-symtab.h
>
> # Default native SYSTEM_HEADER_DIR, to be overridden by targets.
> NATIVE_SYSTEM_HEADER_DIR = @NATIVE_SYSTEM_HEADER_DIR@
> @@ -863,14 +861,11 @@ LANGHOOKS_DEF_H = langhooks-def.h $(HOOKS_H)
> TARGET_DEF_H = target-def.h target-hooks-def.h $(HOOKS_H) targhooks.h
> C_TARGET_DEF_H = c-family/c-target-def.h c-family/c-target-hooks-def.h \
> $(TREE_H) $(C_COMMON_H) $(HOOKS_H) common/common-targhooks.h
> -COMMON_TARGET_DEF_H = common/common-target-def.h \
> - common/common-target-hooks-def.h $(HOOKS_H)
> RTL_BASE_H = coretypes.h rtl.h rtl.def $(MACHMODE_H) reg-notes.def \
> insn-notes.def $(INPUT_H) $(REAL_H) statistics.h $(VEC_H) \
> $(FIXED_VALUE_H) alias.h $(HASHTAB_H)
> FIXED_VALUE_H = fixed-value.h $(MACHMODE_H) double-int.h
> RTL_H = $(RTL_BASE_H) $(FLAGS_H) genrtl.h
> -RTL_ERROR_H = rtl-error.h $(RTL_H) $(DIAGNOSTIC_CORE_H)
> READ_MD_H = $(OBSTACK_H) $(HASHTAB_H) read-md.h
> PARAMS_H = params.h params.def
> BUILTINS_DEF = builtins.def sync-builtins.def omp-builtins.def \
> @@ -888,12 +883,8 @@ BASIC_BLOCK_H = basic-block.h $(PREDICT_H) $(VEC_H)
> $(FUNCTION_H) \
> GIMPLE_H = gimple.h gimple.def gsstruct.def pointer-set.h $(VEC_H) \
> $(GGC_H) $(BASIC_BLOCK_H) $(TREE_H) tree-ssa-operands.h \
> tree-ssa-alias.h $(INTERNAL_FN_H) $(HASH_TABLE_H)
> -TRANS_MEM_H = trans-mem.h
> GCOV_IO_H = gcov-io.h gcov-iov.h auto-host.h
> -COVERAGE_H = coverage.h $(GCOV_IO_H)
> -DEMANGLE_H = $(srcdir)/../include/demangle.h
> RECOG_H = recog.h
> -ALIAS_H = alias.h
> EMIT_RTL_H = emit-rtl.h
> FLAGS_H = flags.h flag-types.h $(OPTIONS_H)
> OPTIONS_H = options.h flag-types.h $(OPTIONS_H_EXTRA)
> @@ -902,11 +893,6 @@ FUNCTION_H = function.h $(HASHTAB_H) $(TM_H)
> hard-reg-set.h \
> EXPR_H = expr.h insn-config.h $(FUNCTION_H) $(RTL_H) $(FLAGS_H) $(TREE_H)
> $(MACHMODE_H) $(EMIT_RTL_H)
> OPTABS_H = optabs.h insn-codes.h insn-opinit.h
> REGS_H = regs.h $(MACHMODE_H) hard-reg-set.h
> -SCHED_INT_H = sched-int.h $(INSN_ATTR_H) $(BASIC_BLOCK_H) $(RTL_H) $(DF_H) \
> - $(REGSET_H)
> -SEL_SCHED_IR_H = sel-sched-ir.h $(INSN_ATTR_H) $(BASIC_BLOCK_H) $(RTL_H) \
> - $(GGC_H) $(BITMAP_H) $(SCHED_INT_H) $(CFGLOOP_H) $(REGSET_H)
> -SEL_SCHED_DUMP_H = sel-sched-dump.h $(SEL_SCHED_IR_H)
> CFGLOOP_H = cfgloop.h $(BASIC_BLOCK_H) double-int.h \
> $(BITMAP_H) sbitmap.h
> IPA_UTILS_H = ipa-utils.h $(TREE_H) $(CGRAPH_H)
> @@ -915,13 +901,9 @@ CGRAPH_H = cgraph.h $(VEC_H) $(TREE_H) $(BASIC_BLOCK_H)
> $(FUNCTION_H) \
> cif-code.def ipa-ref.h ipa-ref-inline.h $(LINKER_PLUGIN_API_H) is-a.h
> DF_H = df.h $(BITMAP_H) $(REGSET_H) sbitmap.h $(BASIC_BLOCK_H) \
> alloc-pool.h $(TIMEVAR_H)
> -VALTRACK_H = valtrack.h $(BITMAP_H) $(DF_H) $(RTL_H) $(BASIC_BLOCK_H) \
> - $(HASH_TABLE_H)
> RESOURCE_H = resource.h hard-reg-set.h $(DF_H)
> -DDG_H = ddg.h sbitmap.h $(DF_H)
> GCC_H = gcc.h version.h $(DIAGNOSTIC_CORE_H)
> GGC_H = ggc.h gtype-desc.h statistics.h
> -GGC_INTERNAL_H = ggc-internal.h $(GGC_H)
> TIMEVAR_H = timevar.h timevar.def
> INSN_ATTR_H = insn-attr.h insn-attr-common.h $(INSN_ADDR_H)
> INSN_ADDR_H = $(srcdir)/insn-addr.h
> @@ -936,11 +918,6 @@ CPPLIB_H = $(srcdir)/../libcpp/include/line-map.h \
> $(srcdir)/../libcpp/include/cpplib.h
> INPUT_H = $(srcdir)/../libcpp/include/line-map.h input.h
> OPTS_H = $(INPUT_H) $(VEC_H) opts.h $(OBSTACK_H)
> -DECNUM_H = $(DECNUM)/decContext.h $(DECNUM)/decDPD.h $(DECNUM)/decNumber.h \
> - $(DECNUMFMT)/decimal32.h $(DECNUMFMT)/decimal64.h \
> - $(DECNUMFMT)/decimal128.h $(DECNUMFMT)/decimal128Local.h
> -BACKTRACE_H = $(BACKTRACE)/backtrace.h
> -MKDEPS_H = $(srcdir)/../libcpp/include/mkdeps.h
> SYMTAB_H = $(srcdir)/../libcpp/include/symtab.h $(OBSTACK_H)
> CPP_ID_DATA_H = $(CPPLIB_H) $(srcdir)/../libcpp/include/cpp-id-data.h
> CPP_INTERNAL_H = $(srcdir)/../libcpp/internal.h $(CPP_ID_DATA_H)
> @@ -950,47 +927,24 @@ TREE_FLOW_H = tree-flow.h tree-flow-inline.h
> tree-ssa-operands.h \
> $(BITMAP_H) sbitmap.h $(BASIC_BLOCK_H) $(GIMPLE_H) \
> $(HASHTAB_H) $(CGRAPH_H) $(IPA_REFERENCE_H) \
> tree-ssa-alias.h
> -TREE_HASHER_H = tree-hasher.h $(HASH_TABLE_H) $(TREE_FLOW_H)
> -TREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H)
> -SSAEXPAND_H = ssaexpand.h $(TREE_SSA_LIVE_H)
> PRETTY_PRINT_H = pretty-print.h $(INPUT_H) $(OBSTACK_H)
> TREE_PRETTY_PRINT_H = tree-pretty-print.h $(PRETTY_PRINT_H)
> GIMPLE_PRETTY_PRINT_H = gimple-pretty-print.h $(TREE_PRETTY_PRINT_H)
> DIAGNOSTIC_CORE_H = diagnostic-core.h $(INPUT_H) bversion.h diagnostic.def
> DIAGNOSTIC_H = diagnostic.h $(DIAGNOSTIC_CORE_H) $(PRETTY_PRINT_H)
> -DWARF2OUT_H = dwarf2out.h $(DWARF2_H)
> C_PRETTY_PRINT_H = c-family/c-pretty-print.h $(PRETTY_PRINT_H) \
> $(C_COMMON_H) $(TREE_H)
> -SCEV_H = tree-scalar-evolution.h $(GGC_H) tree-chrec.h $(PARAMS_H)
> -OMEGA_H = omega.h $(PARAMS_H)
> -TREE_DATA_REF_H = tree-data-ref.h $(OMEGA_H) graphds.h $(SCEV_H)
> TREE_INLINE_H = tree-inline.h
> REAL_H = real.h $(MACHMODE_H)
> -IRA_INT_H = ira.h ira-int.h $(CFGLOOP_H) alloc-pool.h
> -LRA_INT_H = lra.h $(BITMAP_H) $(RECOG_H) $(INSN_ATTR_H) insn-codes.h \
> - insn-config.h $(REGS_H) lra-int.h
> -DBGCNT_H = dbgcnt.h dbgcnt.def
> LTO_STREAMER_H = lto-streamer.h $(LINKER_PLUGIN_API_H) $(TARGET_H) \
> $(CGRAPH_H) $(VEC_H) $(HASH_TABLE_H) $(TREE_H) $(GIMPLE_H) \
> $(GCOV_IO_H) $(DIAGNOSTIC_H) alloc-pool.h pointer-set.h
> -DATA_STREAMER_H = data-streamer.h $(VEC_H) $(LTO_STREAMER_H)
> -GIMPLE_STREAMER_H = gimple-streamer.h $(LTO_STREAMER_H) $(BASIC_BLOCK_H) \
> - $(FUNCTION_H)
> -TREE_STREAMER_H = tree-streamer.h $(TREE_H) $(LTO_STREAMER_H) \
> - $(STREAMER_HOOKS_H)
> -STREAMER_HOOKS_H = streamer-hooks.h $(TREE_H)
> -TREE_VECTORIZER_H = tree-vectorizer.h $(TREE_DATA_REF_H) $(TARGET_H) \
> - $(HASH_TABLE_H)
> IPA_PROP_H = ipa-prop.h $(TREE_H) $(VEC_H) $(CGRAPH_H) $(GIMPLE_H)
> alloc-pool.h
> -IPA_INLINE_H = ipa-inline.h $(IPA_PROP_H)
> -GSTAB_H = gstab.h stab.def
> BITMAP_H = bitmap.h $(HASHTAB_H) statistics.h
> GCC_PLUGIN_H = gcc-plugin.h highlev-plugin-common.h plugin.def \
> $(CONFIG_H) $(SYSTEM_H) $(HASHTAB_H)
> PLUGIN_H = plugin.h $(GCC_PLUGIN_H)
> PLUGIN_VERSION_H = plugin-version.h configargs.h
> -LIBFUNCS_H = libfuncs.h $(HASHTAB_H)
> -GRAPHITE_HTAB_H = graphite-htab.h graphite-clast-to-gimple.h $(HASH_TABLE_H)
> CONTEXT_H = context.h
> PASS_MANAGER_H = pass_manager.h pass-instances.def
>
>
I haven't checked the patch against the tree, but the variables don't
indeed look like something config/ARCH/ARCH.c would include.
Paolo