On Tue, Oct 09 2018, Martin Liška wrote: > Hi. > > Utilizing rtags' --find-dead-functions I'm suggesting a removal of part > of the functions reported with the script. I built all cross compilers > defined in contrib/config-list.mk and I fixed VMS targets that I broke > in previous removal. > > If the folks are happy with the removal, I can probably continue with that > at some point in stage3 or so. > > Ready for trunk? > Thanks, > Martin > From f69d866da42a46783ab57181692583d2ecf30c49 Mon Sep 17 00:00:00 2001 > From: marxin <mli...@suse.cz> > Date: Fri, 5 Oct 2018 16:59:07 +0200 > Subject: [PATCH] Remove dead functions and fix VMS target by moving back some > functions. > > gcc/ChangeLog: > > 2018-10-09 Martin Liska <mli...@suse.cz> > > * attribs.c (register_attribute): Remove unused functions. > * cfganal.c (control_dependences::clear_control_dependence_bitmap): > Likewise. > (bitmap_union_of_succs): Likewise. > * cfganal.h (bitmap_union_of_succs): Likewise. > * cfgloop.c (loop_exits_to_bb_p): Likewise. > * cfgloop.h (loop_exits_to_bb_p): Likewise. > * cgraph.h (compute_call_stmt_bb_frequency): Likewise. > * cgraphbuild.c (compute_call_stmt_bb_frequency): Likewise. > * cselib.c (cselib_dummy_expand_value_rtx_cb): Likewise. > * cselib.h (cselib_dummy_expand_value_rtx_cb): Likewise. > * df-core.c (df_reg_defined): Likewise. > (df_reg_used): Likewise. > * df-scan.c (df_hard_reg_used_count): Likewise. > * df.h (df_reg_defined): Likewise. > (df_reg_used): Likewise. > (df_hard_reg_used_count): Likewise. > * dojump.c (init_pending_stack_adjust): Likewise. > * dojump.h (init_pending_stack_adjust): Likewise. > * dwarf2out.c (add_AT_vms_delta): Move function back after > removal. > (dwarf2out_set_demangle_name_func): REmove unused functions. > * dwarf2out.h (dwarf2out_set_demangle_name_func): Likewise. > * emit-rtl.c (emit_jump_insn_before_noloc): Likewise. > (emit_call_insn_before_noloc): Likewise. > (emit_barrier_before): Likewise. > (emit_call_insn_after_noloc): Likewise. > (emit_call_insn_after_setloc): Likewise. > (emit_jump_insn_before_setloc): Likewise. > (emit_call_insn_before_setloc): Likewise. > (emit_call_insn_before): Likewise. > * except.c (remove_eh_handler): Likewise. > (get_eh_region_from_rtx): Likewise. > * except.h (remove_eh_handler): Likewise. > (get_eh_region_from_rtx): Likewise. > * fold-const.c (div_if_zero_remainder): Likewise. > (fold_unary_to_constant): Likewise. > * fold-const.h (fold_unary_to_constant): Likewise. > (div_if_zero_remainder): Likewise. > * function.c (get_hard_reg_initial_reg): Likewise. > (get_last_funcdef_no): Likewise. > * function.h (get_hard_reg_initial_reg): Likewise. > (get_last_funcdef_no): Likewise. > * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Likewise. > (ggc_cleared_alloc_ptr_array_two_args): Likewise. > (ggc_splay_alloc): Likewise. > (ggc_splay_dont_free): Likewise. > * gimple-expr.c (is_gimple_address): Likewise. > * gimple-expr.h (is_gimple_address): Likewise. > * gimple-iterator.c (gsi_for_phi): Likewise. > * gimple-iterator.h (gsi_for_phi): Likewise. > * gimple-ssa-sprintf.c (struct format_result): Likewise. > (format_result::operator+=): Likewise. > (struct directive): Likewise. > * gimple-ssa-warn-alloca.c (struct alloca_type_and_limit): Likewise. > * gimple.c (gimple_unsigned_type): Likewise. > (gimple_call_builtin_p): Likewise. > * gimple.h (gimple_unsigned_type): Likewise. > (gimple_call_builtin_p): Likewise. > * gimplify.c (gimple_current_bind_expr): Likewise. > * gimplify.h (gimple_current_bind_expr): Likewise. > * haifa-sched.c (haifa_classify_insn): Likewise. > * hsa-common.c (hsa_add_kernel_dependency): Likewise. > (hsa_brig_function_name): Likewise. > * hsa-common.h (hsa_add_kernel_dependency): Likewise. > (hsa_brig_function_name): Likewise. > * ipa-cp.c (ipcp_vr_lattice::meet_with): Likewise.
Interesting, I believe that a class representing a lattice should have a meet function with its own type. In this case it would mean moving the call to ipa_vr_operation_and_type_effects from the caller into the method to clearly describe the semantics. But perhaps it does not matter if we do not have the overload in the meantime. > * ipa-devirt.c (vtable_pointer_value_to_binfo): Likewise. > * ipa-icf-gimple.c (func_checker::compare_tree_ssa_label): Likewise. > * ipa-icf-gimple.h: Likewise. > * ipa-icf.c (sem_item::sem_item): Likewise. > (sem_function::sem_function): Likewise. > (sem_function::icf_handled_component_p): Likewise. > (sem_variable::sem_variable): Likewise. > * ipa-icf.h: Likewise. > * ipa-param-manipulation.c (index_in_adjustments_multiple_times_p): > Likewise. > (ipa_combine_adjustments): Likewise. This a known case. I mean, also have a patch removing, actually replacing it, but the goal has always been that we eventually combine adjustments. Martin