- 13 Mar, 2018 1 commit
-
-
2018-03-13 Martin Liska <mliska@suse.cz> PR ipa/84658. * (sem_item_optimizer::sem_item_optimizer): Initialize new vector. (sem_item_optimizer::~sem_item_optimizer): Release it. (sem_item_optimizer::merge_classes): Register variable aliases. (sem_item_optimizer::fixup_pt_set): New function. (sem_item_optimizer::fixup_points_to_sets): Likewise. * ipa-icf.h: Declare new variables and functions. 2018-03-13 Martin Liska <mliska@suse.cz> PR ipa/84658. * g++.dg/ipa/pr84658.C: New test. From-SVN: r258480
Martin Liska committed
-
- 03 Jan, 2018 1 commit
-
-
From-SVN: r256169
Jakub Jelinek committed
-
- 10 Jan, 2017 1 commit
-
-
2017-01-10 Martin Liska <mliska@suse.cz> * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove usage of m_classes_vec. (sem_item_optimizer::~sem_item_optimizer): Likewise. (sem_item_optimizer::get_group_by_hash): Likewise. (sem_item_optimizer::subdivide_classes_by_equality): Likewise. (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise. (sem_item_optimizer::verify_classes): Likewise. (sem_item_optimizer::process_cong_reduction): Likewise. (sem_item_optimizer::dump_cong_classes): Likewise. (sem_item_optimizer::merge_classes): Likewise. * ipa-icf.h (congruence_class_hash): Rename from congruence_class_group_hash. Remove declaration of m_classes_vec. From-SVN: r244272
Martin Liska committed
-
- 01 Jan, 2017 1 commit
-
-
From-SVN: r243994
Jakub Jelinek committed
-
- 28 Nov, 2016 1 commit
-
-
PR lto/78211 * ipa-icf.h (sem_item_optimizer): Add m_classes_vec member. * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Initialize it. (sem_item_optimizer::~sem_item_optimizer): Traverse m_classes_vec vector instead of traversing m_classes hash table. Release m_classes_vec. (sem_item_optimizer::read_section, sem_item_optimizer::add_class): Formatting fixes. (sem_item_optimizer::get_group_by_hash): When inserting a new group, add it also to m_classes_vec vector. (sem_item_optimizer::remove_symtab_node, sem_item_optimizer::build_hash_based_classes, sem_item_optimizer::parse_nonsingleton_classes): Formatting fixes. (sem_item_optimizer::subdivide_classes_by_equality, sem_item_optimizer::subdivide_classes_by_sensitive_refs, sem_item_optimizer::verify_classes): Traverse m_classes_vec vector instead of traversing m_classes hash table. Formatting fixes. (sem_item_optimizer::traverse_congruence_split, sem_item_optimizer::do_congruence_step_for_index, sem_item_optimizer::do_congruence_step): Formatting fixes. (sem_item_optimizer::process_cong_reduction): Traverse m_classes_vec vector instead of traversing m_classes hash table. (sem_item_optimizer::dump_cong_classes): Likewise. Formatting fixes. (sem_item_optimizer::merge_classes): Traverse m_classes_vec vector instead of traversing m_classes hash table. * g++.dg/ipa/pr78211.C: New test. From-SVN: r242910
Jakub Jelinek committed
-
- 22 Nov, 2016 1 commit
-
-
PR ipa/78309 * ipa-icf.c (void sem_item::set_hash): Update m_hash_set. (sem_function::get_hash): Use the new field. (sem_function::parse): Remove an argument from ctor. (sem_variable::parse): Likewise. (sem_variable::get_hash): Use the new field. (sem_item_optimizer::read_section): Use new ctor and set hash. * ipa-icf.h: _hash is removed from sem_item::sem_item, sem_variable::sem_variable, sem_function::sem_function. From-SVN: r242687
Martin Liska committed
-
- 04 Jan, 2016 1 commit
-
-
From-SVN: r232055
Jakub Jelinek committed
-
- 12 Nov, 2015 1 commit
-
-
Fix PR ipa/68035 PR ipa/68035 * ipa-icf.c (void sem_item::set_hash): New function. (sem_function::get_hash): Use renamed m_hash member variable. (sem_item::update_hash_by_addr_refs): Utilize get_hash. (sem_item::update_hash_by_local_refs): Likewise. (sem_variable::get_hash): Use renamed m_hash member variable. (sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash. (sem_item_optimizer::build_hash_based_classes): Utilize set_hash. (sem_item_optimizer::build_graph): As the hash value of an item is lazy initialized, force the calculation. * ipa-icf.h (set_hash): Declare new function and rename hash member variable to m_hash. * gcc.dg/ipa/pr68035.c: New test. From-SVN: r230263
Martin Liska committed
-
- 28 Oct, 2015 1 commit
-
-
[PATCH 7/9] ENABLE_CHECKING refactoring: middle-end, LTO FE gcc/lto/ChangeLog: 2015-10-27 Mikhail Maltsev <maltsevm@gmail.com> * lto.c (unify_scc): Use flag_checking and remove ENABLE_CHECKING conditionals. (lto_fixup_state): Likewise. (do_whole_program_analysis): Use symtab_node::checking_verify_symtab_nodes and remove ENABLE_CHECKING conditionals. gcc/ChangeLog: 2015-10-27 Mikhail Maltsev <maltsevm@gmail.com> * attribs.c (check_attribute_tables): New function, broken out from... (init_attributes): Use it. * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P gcc_checking_assert and checking_* functions to eliminate ENABLE_CHECKING conditionals. * cfgexpand.c (expand_goto, expand_debug_expr): Likewise. (pass_expand::execute): Likewise. * cgraphclones.c (symbol_table::materialize_all_clones): Likewise. * cgraphunit.c (mark_functions_to_output): Likewise. (cgraph_node::expand_thunk): Likewise. (symbol_table::compile): Likewise. * ddg.c (add_cross_iteration_register_deps): Likewise. (create_ddg_all_sccs): Likewise. * df-core.c (df_finish_pass, df_analyze): Likewise. * diagnostic-core.h: Likewise. * diagnostic.c (diagnostic_report_diagnostic): Likewise. * dominance.c (calculate_dominance_info): Likewise. * dwarf2out.c (add_AT_die_ref): Likewise. (const_ok_for_output_1, mem_loc_descriptor): Likewise. (loc_list_from_tree, gen_lexical_block_die): Likewise. gen_type_die_with_usage, gen_type_die): Likewise. (dwarf2out_decl): Likewise. * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise. * except.c (duplicate_eh_regions): Likewise. * fwprop.c (register_active_defs, update_df_init): Likewise. (fwprop_init, fwprop_done): Likewise. (update_uses): Likewise. * ggc-page.c (ggc_grow): Likewise. * gimplify.c (gimplify_body): Likewise. (gimplify_hasher::equal): Likewise. * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise. * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Likewise. * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise. (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise. * hash-table.h (::find_empty_slot_for_expand): Likewise. * ifcvt.c (if_convert): Likewise. * ipa-cp.c (ipcp_propagate_stage): Likewise. * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise. (odr_type_p, odr_types_equivalent_p): Likewise. (add_type_duplicate, get_odr_type): Likewise. * ipa-icf.c (sem_item_optimizer::execute): Likewise. (sem_item_optimizer::subdivide_classes_by_equality): Likewise. (sem_item_optimizer::verify_classes): Likewise. (sem_item_optimizer::traverse_congruence_split): Likewise. (sem_item_optimizer::checking_verify_classes): New. * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new method. * cfgrtl.c (commit_edge_insertions): Likewise. (fixup_reorder_chain, cfg_layout_finalize): Likewise. (rtl_flow_call_edges_add): Likewise. * cgraph.c (symbol_table::create_edge): Likewise. (cgraph_edge::redirect_call_stmt_to_callee): Likewise. * cgraph.h (symtab_node): Likewise. (symtab_node::checking_verify_symtab_nodes): Define. (cgraph_node::checking_verify_cgraph_nodes): Define. * cfghooks.h (checking_verify_flow_info): Define. * cfgloop.h (checking_verify_loop_structure): Define. * dominance.h (checking_verify_dominators): Define. * et-forest.c: Fix comment. * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking, CHECKING_P gcc_checking_assert and checking_* functions to eliminate ENABLE_CHECKING conditionals. * ipa-inline-transform.c (save_inline_function_body): Likewise. * ipa-inline.c (inline_small_functions): Likewise. (early_inliner): Likewise. * ipa-inline.h (estimate_edge_growth): Likewise. * ipa-visibility.c (function_and_variable_visibility): Likewise. * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. (ipa_single_use): Likewise. * ira-int.h: Likewise. * ira.c (ira): Likewise. * loop-doloop.c (doloop_optimize_loops): Likewise. * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise. * loop-invariant.c (move_loop_invariants): Likewise. * lra-assigns.c (lra_assign): Likewise. * lra-constraints.c (lra_constraints): Likewise. * lra-eliminations.c (lra_eliminate): Likewise. * lra-int.h (struct lra_reg): Likewise. * lra-lives.c (check_pseudos_live_through_calls): Likewise. (lra_create_live_ranges_1): Likewise. * lra-remat.c (create_remat_bb_data): Likewise. * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise. (lra): Likewise. (check_rtl): Always define. Remove incorrect guard around extract_constrain_insn call. * lto-cgraph.c (input_cgraph_1: Use flag_checking, CHECKING_P gcc_checking_assert and checking_* functions to eliminate ENABLE_CHECKING conditionals. * lto-streamer-out.c (DFS::DFS): Likewise. (lto_output): Likewise. * lto-streamer.c (lto_streamer_init): Likewise. * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise. expand_omp_target, execute_expand_omp): Likewise. (lower_omp_target): Likewise. * passes.c (execute_function_todo): Likewise. (execute_todo, execute_one_pass): Likewise. (verify_curr_properties): Always define. * predict.c (tree_estimate_probability: Use flag_checking, CHECKING_P gcc_checking_assert and checking_* functions to eliminate ENABLE_CHECKING conditionals. (propagate_freq): Likewise. * pretty-print.c (pp_format): Likewise. * real.c (real_to_decimal_for_mode): Likewise. * recog.c (split_all_insns): Likewise. * regcprop.c (kill_value_one_regno): Likewise. (copy_value): Likewise. (validate_value_data): Define unconditionally. * reload.c: Fix comment. * timevar.c: Include options.h * tree-ssa.h (checking_verify_ssa): Define. * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define. * sched-deps.c (CHECK): Remove unused macro. (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P gcc_checking_assert and checking_* functions to eliminate ENABLE_CHECKING conditionals. * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise. * sel-sched.c (struct moveop_static_params): Likewise. (find_best_reg_for_expr, move_cond_jump): Likewise. (move_op_orig_expr_not_found): Likewise. (code_motion_process_successors, move_op): Likewise. * ssa-iterators.h (first_readonly_imm_use): Likewise. (next_readonly_imm_use): Likewise. * store-motion.c (compute_store_table): Likewise. * symbol-summary.h (function_summary::function_summary): Likewise. * target.h (cumulative_args_t): Likewise. (get_cumulative_args, pack_cumulative_args): Likewise. * timevar.c: (timer::print): Likewise. * trans-mem.c (ipa_tm_execute): Likewise. * tree-cfg.c (move_stmt_op): Likewise. (move_sese_region_to_fn): Likewise. (gimple_flow_call_edges_add): Likewise. * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures): Likewise. * tree-eh.c (remove_unreachable_handlers): Likewise. * tree-if-conv.c (pass_if_conversion::execute): Likewise. * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise. * tree-into-ssa.c (update_ssa): Likewise. * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise. * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise. * tree-parloops.c (pass_parallelize_loops::execute): Likewise. * tree-predcom.c (suitable_component_p): Likewise. * tree-profile.c (gimple_gen_const_delta_profiler): Likewise. * tree-ssa-alias.c (refs_may_alias_p_1): Likewise. * tree-ssa-live.c (verify_live_on_entry): Likewise. * tree-ssa-live.h (register_ssa_partition): Likewise. * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise. * tree-ssa-loop-manip.c (add_exit_phi): Likewise. (tree_transform_and_unroll_loop): Likewise. * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. * tree-ssa-operands.c (get_expr_operands): Likewise. * tree-ssa-propagate.c (replace_exp_1): Likewise. * tree-ssa-structalias.c (rewrite_constraints): Likewise. * tree-ssa-ter.c (free_temp_expr_table): Likewise. * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise. * tree-ssanames.c (release_ssa_name_fn): Likewise. * tree-stdarg.c (expand_ifn_va_arg): Likewise. * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise. (slpeel_checking_verify_cfg_after_peeling): Likewise. (vect_do_peeling_for_loop_bound): Likewise. (vect_do_peeling_for_alignment): Likewise. * tree-vrp.c (supports_overflow_infinity): Likewise. (set_value_range): Likewise. * tree.c (free_lang_data_in_cgraph): Likewise. * value-prof.c (gimple_remove_histogram_value): Likewise. (free_hist): Likewise. * var-tracking.c (canonicalize_values_star): Likewise. (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise. From-SVN: r229470
Mikhail Maltsev committed
-
- 20 Sep, 2015 1 commit
-
-
This renames the gimple_statement_base struct to gimple removes the typedef of gimple_statement_base * to gimple, and then adjusts all of the places that use the type. gcc/ChangeLog: 2015-09-19 Trevor Saunders <tbsaunde@tbsaunde.org> * coretypes.h (gimple): Change typedef to be a forward declaration. * gimple.h (gimple_statement_base): rename to gimple. * (all functions and types using gimple): Adjust. * *.[ch]: Likewise. gcc/cp/ChangeLog: 2015-09-19 Trevor Saunders <tbsaunde@tbsaunde.org> * cp-gimplify.c (gimplify_must_not_throw_expr): Adjust. From-SVN: r227941
Trevor Saunders committed
-
- 13 Jul, 2015 1 commit
-
-
From-SVN: r225726
Aldy Hernandez committed
-
- 25 Jun, 2015 3 commits
-
-
gcc/ * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef. (unbounded_int_hashmap_traits::key_type): Likewise. * hash-map.h (hash_map): Get the key type from the traits. * hash-traits.h (default_hash_traits): By default, inherit from the template parameter. * alias.c (alias_set_traits): Delete. (alias_set_entry_d::children): Use alias_set_hash as the first template parameter. (record_alias_subset): Update accordingly. * except.c (tree_hash_traits): Delete. (type_to_runtime_map): Use tree_hash as the first template parameter. (init_eh): Update accordingly. * genmatch.c (capture_id_map_hasher): Delete. (cid_map_t): Use nofree_string_hash as first template parameter. * ipa-icf.h (symbol_compare_hashmap_traits): Delete. * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Use symbol_compare_hash as the first template parameter in subdivide_hash_map. * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete. (mem_usage_pair::mem_map_t): Use mem_location_hash as the first template parameter. * passes.c (pass_registry_hasher): Delete. (name_to_pass_map): Use nofree_string_hash as the first template parameter. (register_pass_name): Update accordingly. * sanopt.c (sanopt_tree_map_traits): Delete. (sanopt_tree_triplet_map_traits): Delete. (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first template parameter. (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as the first template parameter. * sese.c (rename_map_hasher): Delete. (rename_map_type): Use tree_ssa_name_hash as the first template parameter. * symbol-summary.h (function_summary::summary_hashmap_traits): Delete. (function_summary::m_map): Use map_hash as the first template parameter. (function_summary::release): Update accordingly. * tree-if-conv.c (phi_args_hash_traits): Delete. (predicate_scalar_phi): Use tree_operand_hash as the first template parameter to phi_arg_map. * tree-inline.h (dependence_hasher): Delete. (copy_body_data::dependence_map): Use dependence_hash as the first template parameter. * tree-inline.c (remap_dependence_clique): Update accordingly. * tree-ssa-strlen.c (stridxlist_hash_traits): Delete. (decl_to_stridxlist_htab): Use tree_decl_hash as the first template parameter. (addr_stridxptr): Update accordingly. * value-prof.c (profile_id_traits): Delete. (cgraph_node_map): Use profile_id_hash as the first template parameter. (init_node_map): Update accordingly. * config/alpha/alpha.c (string_traits): Delete. (machine_function::links): Use nofree_string_hash as the first template parameter. (alpha_use_linkage, alpha_write_linkage): Update accordingly. * config/m32c/m32c.c (pragma_traits): Delete. (pragma_htab): Use nofree_string_hash as the first template parameter. (m32c_note_pragma_address): Update accordingly. * config/mep/mep.c (pragma_traits): Delete. (pragma_htab): Use nofree_string_hash as the first template parameter. (mep_note_pragma_flag): Update accordingly. * config/mips/mips.c (mips16_flip_traits): Delete. (mflip_mips16_htab): Use nofree_string_hash as the first template parameter. (mflip_mips16_use_mips16_p): Update accordingly. (local_alias_traits): Delete. (mips16_local_aliases): Use nofree_string_hash as the first template parameter. (mips16_local_alias): Update accordingly. From-SVN: r224977
Richard Sandiford committed -
gcc/ * ipa-icf.h (symbol_compare_hash): New class. (symbol_compare_hashmap_traits): Use it. * mem-stats.h (mem_alloc_description::mem_location_hash): New class. (mem_alloc_description::mem_alloc_hashmap_traits): Use it. (mem_alloc_description::reverse_mem_map_t): Remove redundant default_hashmap_traits. * sanopt.c (sanopt_tree_triplet_hash): New class. (sanopt_tree_triplet_map_traits): Use it. From-SVN: r224974
Richard Sandiford committed -
gcc/ * hash-table.h: Update comments. * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove. (nofree_ptr_hash): New class. * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather than typed_noop_remove. Remove redudant typedefs. * attribs.c (attribute_hasher): Likewise. * cfg.c (bb_copy_hasher): Likewise. * cselib.c (cselib_hasher): Likewise. * dse.c (invariant_group_base_hasher): Likewise. * dwarf2cfi.c (trace_info_hasher): Likewise. * dwarf2out.c (macinfo_entry_hasher): Likewise. (comdat_type_hasher, loc_list_hasher): Likewise. * gcse.c (pre_ldst_expr_hasher): Likewise. * genmatch.c (id_base): Likewise. * genrecog.c (test_pattern_hasher): Likewise. * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise. * haifa-sched.c (delay_i1_hasher): Likewise. * hard-reg-set.h (simplifiable_subregs_hasher): Likewise. * ipa-icf.h (congruence_class_group_hash): Likewise. * ipa-profile.c (histogram_hash): Likewise. * ira-color.c (allocno_hard_regs_hasher): Likewise. * lto-streamer.h (string_slot_hasher): Likewise. * lto-streamer.c (tree_entry_hasher): Likewise. * plugin.c (event_hasher): Likewise. * postreload-gcse.c (expr_hasher): Likewise. * store-motion.c (st_expr_hasher): Likewise. * tree-sra.c (uid_decl_hasher): Likewise. * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise. (ssa_name_var_hash): Likewise. * tree-ssa-live.c (tree_int_map_hasher): Likewise. * tree-ssa-loop-im.c (mem_ref_hasher): Likewise. * tree-ssa-pre.c (pre_expr_d): Likewise. * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise. * vtable-verify.h (registration_hasher): Likewise. * vtable-verify.c (vtbl_map_hasher): Likewise. * config/arm/arm.c (libcall_hasher): Likewise. * config/i386/winnt.c (wrapped_symbol_hasher): Likewise. * config/ia64/ia64.c (bundle_state_hasher): Likewise. * config/sol2.c (comdat_entry_hasher): Likewise. * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash. (print_fold_checksum, fold_checksum_tree): Likewise. (debug_fold_checksum, fold_build1_stat_loc): Likewise. (fold_build2_stat_loc, fold_build3_stat_loc): Likewise. (fold_build_call_array_loc): Likewise. * tree-ssa-ccp.c (gimple_htab): Likewise. * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash rather than pointer_type. gcc/c/ * c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash instead of pointer_hash. (detect_field_duplicates): Likewise. gcc/cp/ * class.c (fixed_type_or_null_ref_ht): Inherit from nofree_ptr_hash rather than pointer_hash. (fixed_type_or_null): Use nofree_ptr_hash instead of pointer_hash. * semantics.c (nrv_data): Likewise. * tree.c (verify_stmt_tree_r, verify_stmt_tree): Likewise. gcc/java/ * jcf-io.c (charstar_hash): Inherit from nofree_ptr_hash rather than typed_noop_remove. Remove redudant typedefs. gcc/lto/ * lto.c (tree_scc_hasher): Inherit from nofree_ptr_hash rather than typed_noop_remove. Remove redudant typedefs. gcc/objc/ * objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather than typed_noop_remove. Remove redudant typedefs. libcc1/ * plugin.cc (string_hasher): Inherit from nofree_ptr_hash rather than typed_noop_remove. Remove redudant typedefs. (plugin_context): Use nofree_ptr_hash rather than pointer_hash. (plugin_context::mark): Likewise. From-SVN: r224957
Richard Sandiford committed
-
- 22 Jun, 2015 1 commit
-
-
PR ipa/65908 * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove construction of arg_types. (sem_function::sem_function): Likewise. (sem_function::~sem_function): Remove destruction of arg_types. (sem_function::compatible_parm_types_p): New function. (sem_function::equals_wpa): Reorg matching of return values and parameter types. (sem_function::equals_private): Reorg mathcing of argument types. (sem_function::parse_tree_args): Remove. * ipa-icf.h (init_wpa): Do not call it. (parse_tree_args): Remove. (compatible_parm_types_p): Declare. (result_type): Remove. (arg_types): Remove. * testsuite/g++.dg/ipa/pr65908.C: New testcase. Co-Authored-By: Martin Liska <mliska@suse.cz> From-SVN: r224720
Jan Hubicka committed
-
- 24 Apr, 2015 1 commit
-
-
* ipa-icf.c (sem_function::equals_wpa): Compare thunk info. (sem_function::equals): IGNORED_NODES parameter is now unused; update call of equals_private. (sem_function::equals_private): Do not call equals_wpa; skip gimple body matching if there is no body. (sem_function::init): Add logic to hash tthunk info. (sem_function::parse): Also parse thunks. * ipa-icf.h (equals_private): Update declaration. From-SVN: r222392
Jan Hubicka committed
-
- 23 Apr, 2015 2 commits
-
-
* ipa-icf.c (sem_item::compare_attributes): New function. (sem_item::compare_referenced_symbol_properties): Compare variable attributes. (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN. (sem_function::param_used_p): New function. (sem_function::equals_wpa): Fix attribute comparsion; match parameter type codes; do not compare paremter flags when they are not used; compare edge flags; compare indirect calls. (sem_item::update_hash_by_addr_refs): Hash reference type. (sem_function::equals_private): Do not match DECL_ATTRIBUTES. (sem_variable::equals_wpa): Do not match DECL_ALIGN; match reference use type. (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p. * ipa-icf.h (compare_attributes, param_used_p): Declare. From-SVN: r222374
Jan Hubicka committed -
* ipa-icf.c (symbol_compare_collection::symbol_compare_collection): cleanup. (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW. (sem_item::compare_referenced_symbol_properties): New. (sem_item::hash_referenced_symbol_properties): New. (sem_item::compare_cgraph_references): Rename to ... (sem_item::compare_symbol_references): ... this one; use compare_referenced_symbol_properties. (sem_function::equals_wpa): Do not compare DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P, DECL_IS_OPERATOR_NEW; compare pointer sizes. (sem_item::update_hash_by_addr_refs): Call hash_referenced_symbol_properties. (sem_item::update_hash_by_local_refs): Cleanup. (sem_function::merge): Do not mix up symbol properties. (sem_variable::equals_wpa): Use compare_symbol_references. * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New. (sem_item::hash_referenced_symbol_properties): New. (sem_item::compare_symbol_references): New. (sem_item::compare_cgraph_references): Remove. From-SVN: r222372
Jan Hubicka committed
-
- 18 Apr, 2015 1 commit
-
-
This switches all hash_table users to use the layout that stores elements of type value_type in the hash table instead of the one storing value_type *. Since it becomes unused support for the value_type * layout is removed. gcc/ * hash-table.h: Remove version of hash_table that stored value_type *. * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c, config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c, gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c, hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h, ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c, loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c, reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c, tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c, tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h, valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust. libcc1/ * plugin.cc: Adjust for hash_table changes. gcc/java/ * jcf-io.c: Adjust for hash_table changes. gcc/lto/ * lto.c: Adjust for hash_table changes. gcc/objc/ * objc-act.c: Adjust for hash_table changes. From-SVN: r222213
Trevor Saunders committed
-
- 24 Mar, 2015 1 commit
-
-
* ipa-icf-gimple.h (return_with_result): Add missing colon to dump. * ipa-icf.c (sem_function::get_hash): Hash new declaration properties. (sem_item::add_type): New function. (sem_function::hash_stmt): Add TREE_TYPE of gimple_op. (sem_function::compare_polymorphic_p): Do not consider indirect calls. (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash. (sem_function::equals_wpa): Fix typo. * ipa-icf.h (sem_item::add_type): New function. (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol order. Co-Authored-By: Martin Liska <mliska@suse.cz> From-SVN: r221645
Jan Hubicka committed
-
- 22 Mar, 2015 1 commit
-
-
* ipa-icf.c (sem_item::update_hash_by_addr_refs): New function. (sem_item::update_hash_by_local_refs): Likewise. (sem_variable::get_hash): Empty line is fixed. (sem_item_optimizer::execute): Include adding of hash references. (sem_item_optimizer::update_hash_by_addr_refs): New function. (sem_item_optimizer::build_hash_based_classes): Use local hash. * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function. (sem_item::update_hash_by_local_refs): Likewise. From-SVN: r221576
Martin Liska committed
-
- 18 Mar, 2015 1 commit
-
-
re PR ipa/65432 (Invalid read of size 1: ipa_icf::sem_item_optimizer::merge_classes(unsigned int) (ipa-icf.c:2958)) Fix PR ipa/65432 PR ipa/65432 * cgraph.c (cgraph_node::get_create): Remove unnecessary xstrdup_for_dump wrapper. * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of sem_item::name. (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name with xstrdup_for_dump. (sem_variable::equals): Likewise. (sem_item_optimizer::read_section): Use symtab_node::name instead of sem_item::name. (sem_item_optimizer::parse_funcs_and_vars): Likewise. (sem_item_optimizer::merge_classes): Wrap symtab_node::name and symtab_node::asm_name with xstrdup_for_dump. (congruence_class::dump): Use symtab_node::name instead of sem_item::name. * ipa-icf.h (symtab_node::name): Remove. (symtab_node::asm_name): Likewise. From-SVN: r221491
Martin Liska committed
-
- 13 Mar, 2015 1 commit
-
-
* ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they are building; for methods check ODR type of class they belong to if they may lead to a polymorphic call. (sem_function::compare_polymorphic_p): Be bit smarter about testing when function may lead to a polymorphic call. (sem_function::compare_type_list): Remove. (sem_variable::equals): Update use of compatible_types_p. (sem_variable::parse_tree_refs): Remove. (sem_item_optimizer::filter_removed_items): Do not filter out CXX cdtor. * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic matching here. (func_checker::compatible_polymorphic_types_p): Break out from ... (unc_checker::compatible_types_p): ... here. * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p): Declare. (unc_checker::compatible_types_p): Update. * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections): Remove. From-SVN: r221406
Jan Hubicka committed
-
- 03 Mar, 2015 1 commit
-
-
Fix PR ipa/65087. PR ipa/65087 * ipa-icf.c (sem_item_optimizer::execute): Change function return value to boolean. (sem_item_optimizer::merge_classes): Likewise. (ipa_icf_driver): Return TODO_remove_functions in case there's a merge operation processed. * ipa-icf.h: Change function return value to boolean. Co-Authored-By: Martin Jambor <mjambor@suse.cz> From-SVN: r221133
Martin Liska committed
-
- 02 Mar, 2015 2 commits
-
-
2015-02-28 Martin Liska <mliska@suse.cz> Jan Hubicka <hubicka@ucw.cz> * ipa-icf.c (sem_variable::equals): Improve debug output; get variable constructor. (sem_variable::parse): Do not filter out too early; give up on volatile and register vars. (sem_item_optimizer::filter_removed_items): Filter out nonreadonly variables. * ipa-icf.h (sem_variable::init): Do not set ctor. (sem_variable::ctor): Remove. gcc/testsuite/ChangeLog: 2015-02-28 Martin Liska <mliska@suse.cz> Jan Hubicka <hubicka@ucw.cz> * gcc.dg/ipa/ipa-icf-35.c: New test. * gcc.dg/ipa/ipa-icf-36.c: New test. * gcc.dg/ipa/ipa-icf-37.c: New test. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> From-SVN: r221099
Martin Liska committed -
* ipa-icf.c: Include stor-layout.h (sem_function::compare_cgraph_references): Rename to ... (sem_item::compare_cgraph_references): ... this one. (sem_variable::equals_wpa): New function (sem_variable::equals): Do not check stuff already verified by equals_wpa. (sem_variable::equals): Reorg based on varasm.c:compare_constant. * ipa-icf.h (sem_item): Add compare_cgraph_references. (sem_function): Remove compare_cgraph_references. (sem_variable): Turns equals_wpa into non-inline. From-SVN: r221096
Jan Hubicka committed
-
- 01 Mar, 2015 2 commits
-
-
* ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT. (sem_item::add_expr): New function. (sem_function::hash_stmt): Handle operands of most statements. (sem_variable::get_hash): Hash the actual constructor. * ipa-icf.h (sem_item): Add add_expr. (sem_function): Update prototype of hash_stmt From-SVN: r221092
Jan Hubicka committed -
2015-02-28 Martin Liska <mliska@suse.cz> Jan Hubicka <hubicka@ucw.cz> PR ipa/65245 * ipa-icf-gimple.c (func_checker::compare_function_decl): Remove. (func_checker::compare_variable_decl): Skip symtab vars. (func_checker::compare_cst_or_decl): Update. * ipa-icf.c (sem_function::parse): Do not consider aliases. (sem_function::compare_cgraph_references): Add ADDRESS parameter; use correct symtab predicates. (sem_function::equals_wpa): Update uses of compare_cgraph_references. (sem_variable::parse): Update comment. (sem_item_optimizer::build_graph): Consider ultimate aliases for references. * gcc.dg/ipa/ipa-icf-34.c: New test. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> From-SVN: r221090
Martin Liska committed
-
- 27 Feb, 2015 1 commit
-
-
* ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing vector length condition. From-SVN: r221069
Martin Liska committed
-
- 26 Feb, 2015 1 commit
-
-
Fix PR ipa/64693 PR ipa/64693 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New. (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function. (sem_item_optimizer::process_cong_reduction): Include division by sensitive references. * ipa-icf.h (struct symbol_compare_hashmap_traits): New class. * ipa-ref.c (ipa_ref::address_matters_p): New function. * ipa-ref.h (ipa_ref::address_matters_p): Likewise. * g++.dg/ipa/pr64146.C: Update expected results. * gcc.dg/ipa/ipa-icf-26.c: Update test. * gcc.dg/ipa/ipa-icf-33.c: Remove redundant line. * gcc.dg/ipa/ipa-icf-34.c: New test. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> From-SVN: r221031
Martin Liska committed
-
- 19 Feb, 2015 1 commit
-
-
bb_dict_test () ment to operate on the callers vector, not a copy of it. gcc/ChangeLog: 2015-02-18 Trevor Saunders <tsaunders@mozilla.com> * ipa-icf.c (sem_function::equals_private): Adjust. (sem_function::bb_dict_test): Take a vec<int> * instead of auto_vec<int>. * ipa-icf.h (bb_dict_test): Likewise. From-SVN: r220806
Trevor Saunders committed
-
- 05 Jan, 2015 1 commit
-
-
From-SVN: r219188
Jakub Jelinek committed
-
- 27 Nov, 2014 1 commit
-
-
* ipa-icf.c (sem_function::equals_private): int* is replaced with auto_vec. (sem_function::bb_dict_test): Likewise. * ipa-icf.h: Likewise. Co-Authored-By: David Malcolm <dmalcolm@redhat.com> From-SVN: r218129
Martin Liska committed
-
- 11 Nov, 2014 1 commit
-
-
PR ipa/63622 PR ipa/63795 * g++.dg/ipa/ipa-icf-4.C: Add more precise dump scan. * g++.dg/ipa/ipa-icf-5.C: Add condition for target with symbol alias support. * ipa-icf.c (sem_function::merge): Add new target symbol alias support guard. (sem_variable::merge): Likewise. * ipa-icf.h (target_supports_symbol_aliases_p): New function. From-SVN: r217355
Martin Liska committed
-
- 16 Oct, 2014 1 commit
-
-
* Makefile.in: New object files included. * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged is printed. (verify_edge_corresponds_to_fndecl): More sensitive verification of nodes that are merged by IPA ICF. * cgraph.h (cgraph_node::num_references): New function. * cgraphunit.c (cgraph_node::expand_thunk): White space fixed. * common.opt: New options ipa-icf, ipa-icf-functions and ipa-icf-variables introduced. * doc/invoke.texi: Documentation of new options introduced. * ipa-icf-gimple.c: New file. * ipa-icf-gimple.h: New file. * ipa-icf.c: New file. * ipa-icf.h: New file. * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added. (input_overwrite_node): Likewise. * lto-section-in.c: New icf section added. * lto-streamer.h (enum lto_section_type): Likewise. * opts.c (common_handle_option): New option added. * passes.def: New pass included. * timevar.def: Time variable for IPA ICF added. * tree-pass.h: New IPA ICF pass entry point added. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> From-SVN: r216305
Martin Liska committed
-