On 2020-10-23 21:45, Jan Hubicka wrote:
Hi,
this patch moves thunk_info out of cgraph_node into a symbol summary.
I also moved it to separate hearder file since cgraph.h became really
too
fat. I plan to contiue with similar breakup in order to cleanup
interfaces
and reduce WPA memory footprint
gcc/ChangeLog:
2015-07-09 Martin Liska
* dbgcnt.def: Add new debug counter.
* ipa-icf-gimple.c (func_checker::compare_ssa_name): Add flag
for strict mode.
(func_checker::compare_memory_operand): Likewise.
(func_checker::compare_cst_or_decl): Handle if we
gcc/ChangeLog:
2015-07-09 Martin Liska
* tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Remove.
(gimple_equal_p): Remove.
(gsi_advance_bw_nondebug_nonlocal): Remove.
(find_duplicate): Remove legacy value numbering.
(find_clusters_1): Likewise.
---
---
gcc/testsuite/g++.dg/ubsan/vptr-1.C | 2 +-
gcc/testsuite/g++.dg/ubsan/vptr-2.C | 2 +-
gcc/testsuite/g++.dg/ubsan/vptr-3.C | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/testsuite/g++.dg/ubsan/vptr-1.C
b/gcc/testsuite/g++.dg/ubsan/vptr-1.C
index f4260c1..2183575 1
tics about merged basic blocks before/after the patch
set.
Patch set can bootstrap on x86_64-linux-pc and survives regression tests.
Thanks,
Martin
mliska (3):
tree-ssa-tail-merge: add IPA ICF infrastructure.
Fully remove legacy tree-ssa-tail-merge value numbering
infrastructure.
Fix ubsa
gcc/ChangeLog:
2015-07-03 Martin Liska
* ipa-inline-analysis.c
(inline_edge_summaries): New data structure.
(redirect_to_unreachable): Use renamed
function get_inline_edge_summary.
(edge_set_predicate): Likewise.
(evaluate_properties_for_edge): L
gcc/ChangeLog:
2015-07-03 Martin Liska
* ipa-pure-const.c (struct funct_state_d): New.
(funct_state_d::default_p): Likewise.
(has_function_state): Remove.
(get_function_state): Likewise.
(set_function_state): Likewise.
(add_new_function): Rename
gcc/ChangeLog:
2015-07-03 Martin Liska
* ipa-cp.c (struct edge_clone_summary): New structure.
(class edge_clone_summary_t): Likewise.
(edge_clone_summary_t::initialize): New method.
(edge_clone_summary_t::duplicate): Likewise.
(get_next_cgraph_edge_clone
gcc/ChangeLog:
2015-07-03 Martin Liska
* cgraph.c (symbol_table::create_edge): Introduce summary_uid
for cgraph_edge.
* cgraph.h (struct GTY): Likewise.
* ipa-inline-analysis.c (estimate_function_body_sizes): Use
new data structure.
* ipa-profile
gcc/ChangeLog:
2015-07-03 Martin Liska
* ipa-reference.c (ipa_ref_opt_summary_t): New class.
(get_reference_optimization_summary): Use it.
(set_reference_optimization_summary): Likewise.
(ipa_init): Remove hook holders usage.
(ipa_reference_c_finalize):
gcc/ChangeLog:
2015-07-03 Martin Liska
* hash-set.h (remove): New function.
(iterator): New iteration class for hash_set.
---
gcc/hash-set.h | 39 +++
1 file changed, 39 insertions(+)
diff --git a/gcc/hash-set.h b/gcc/hash-set.h
index 2fb6c
and boostrap on both
x86_64-linux-gnu and ppc64le-linux-gnu machines.
Ready for trunk?
Thanks,
Martin
mliska (6):
hash_set: add iterator and remove method.
Introduce new edge_summary class and replace ipa_edge_args_sum.
IPA inline: port inline_edge_summary to a new infrastructure.
Port
gcc/ChangeLog:
2015-06-02 Martin Liska
* alloc-pool.h (struct pool_usage): Correct space padding.
* ggc-page.c (ggc_print_statistics): Align columns in a report.
* mem-stats.h (struct mem_usage): Add argument to print_dash_line.
* tree.c (dump_tree_statistics):
Hi.
Following 2 patches improve memory statistics infrastructure. First one
ports pool allocator to the new infrastructure. And the second one makes
column alignment properly.
Both can bootstrap on x86_64-linux-pc and survive regression tests.
Ready for trunk?
Thank you,
Martin
Port pool-alloca
gcc/ChangeLog:
2015-04-30 Martin Liska
* asan.c (asan_mem_ref_get_alloc_pool):Use new type-based pool
allocator.
(asan_mem_ref_new) Likewise.
(free_mem_ref_resources) Likewise.
---
gcc/asan.c | 44
1 file changed, 20 insert
gcc/ChangeLog:
2015-04-30 Martin Liska
* stmt.c (add_case_node): Use new type-based pool allocator.
(expand_case): Likewise.
(expand_sjlj_dispatch_table): Likewise.
---
gcc/stmt.c | 16 +---
1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/gcc
gcc/ChangeLog:
2015-04-30 Martin Liska
* ira-build.c (initiate_cost_vectors): Use new type-based pool
allocator.
(ira_allocate_cost_vector): Likewise.
(ira_free_cost_vector): Likewise.
(finish_cost_vectors): Likewise.
---
gcc/ira-build.c | 15 +++
gcc/ChangeLog:
2015-04-30 Martin Liska
* dse.c (get_group_info):Use new type-based pool allocator.
(dse_step0) Likewise.
(free_store_info) Likewise.
(delete_dead_store_insn) Likewise.
(free_read_records) Likewise.
(record_store) Likewise.
gcc/ChangeLog:
2015-04-30 Martin Liska
* var-tracking.c (variable_htab_free):Use new type-based pool allocator.
(attrs_list_clear) Likewise.
(attrs_list_insert) Likewise.
(attrs_list_copy) Likewise.
(shared_hash_unshare) Likewise.
(shared_hash_de
gcc/ChangeLog:
2015-04-30 Martin Liska
* tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
(free_bb): Likewise.
(pass_cse_reciprocals::execute): Likewise.
---
gcc/tree-ssa-math-opts.c | 13 ++---
1 file changed, 6 insertions(+), 7 deletions(-)
gcc/ChangeLog:
2015-04-30 Martin Liska
* df-problems.c (df_chain_create):Use new type-based pool allocator.
(df_chain_unlink_1) Likewise.
(df_chain_unlink) Likewise.
(df_chain_remove_problem) Likewise.
(df_chain_alloc) Likewise.
(df_chain_free) L
gcc/ChangeLog:
2015-04-30 Martin Liska
* tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
(free_strinfo): Likewise.
(pass_strlen::execute): Likewise.
---
gcc/tree-ssa-strlen.c | 10 --
1 file changed, 4 insertions(+), 6 deletions(-)
diff --g
gcc/ChangeLog:
2015-04-30 Martin Liska
* ira-color.c (init_update_cost_records): Use new type-based pool
allocator.
(get_update_cost_record): Likewise.
(free_update_cost_record_list): Likewise.
(finish_update_cost_records): Likewise.
(initiate_cost_upda
gcc/ChangeLog:
2015-04-30 Martin Liska
* sched-deps.c (create_dep_node): Use new type-based pool allocator.
(delete_dep_node): Likewise.
(create_deps_list): Likewise.
(free_deps_list): Likewise.
(sched_deps_init): Likewise.
(sched_deps_finish): L
gcc/ChangeLog:
2015-04-30 Martin Liska
* tree-ssa-sccvn.c (vn_reference_insert): Use new type-based pool
allocator.
(vn_reference_insert_pieces): Likewise.
(vn_phi_insert): Likewise.
(visit_reference_op_call): Likewise.
(copy_phi): Likewise.
(co
gcc/ChangeLog:
2015-04-30 Martin Liska
* ipa-inline-analysis.c (edge_set_predicate): Use new type-based pool
allocator.
(set_hint_predicate): Likewise.
(inline_summary_alloc): Likewise.
(reset_inline_edge_summary): Likewise.
(reset_inline_summary): Like
gcc/ChangeLog:
2015-04-30 Martin Liska
* tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based pool
allocator.
(add_repeat_to_ops_vec): Likewise.
(get_ops): Likewise.
(maybe_optimize_range_tests): Likewise.
(init_reassoc): Likewise.
(fini_reas
gcc/ChangeLog:
2015-04-30 Martin Liska
* config/sh/sh.c (add_constant):Use new type-based pool allocator.
(sh_reorg) Likewise.
---
gcc/config/sh/sh.c | 30 ++
1 file changed, 22 insertions(+), 8 deletions(-)
diff --git a/gcc/config/sh/sh.c b/gcc/co
gcc/ChangeLog:
2015-04-30 Martin Liska
* df-scan.c (struct df_scan_problem_data):Use new type-based pool
allocator.
(df_scan_free_internal) Likewise.
(df_scan_alloc) Likewise.
(df_grow_reg_info) Likewise.
(df_free_ref) Likewise.
(df_insn_create_
gcc/ChangeLog:
2015-04-30 Martin Liska
* tree-ssa-structalias.c (new_var_info): Use new type-based pool
allocator.
(new_constraint): Likewise.
(init_alias_vars): Likewise.
(delete_points_to_sets): Likewise.
---
gcc/tree-ssa-structalias.c | 17 +++--
gcc/ChangeLog:
2015-04-30 Martin Liska
* ira-build.c (finish_allocnos): Use new type-based pool allocator.
(finish_prefs): Likewise.
(finish_copies): Likewise.
---
gcc/ira-build.c | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/gcc/ira-bu
gcc/ChangeLog:
2015-04-30 Martin Liska
* alloc-pool.c (create_alloc_pool): Remove.
(empty_alloc_pool): Likewise.
(free_alloc_pool): Likewise.
(free_alloc_pool_if_empty): Likewise.
(pool_alloc): Likewise.
(pool_free): Likewise.
* alloc-poo
gcc/ChangeLog:
2015-04-30 Martin Liska
* ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
(ipa_edge_duplication_hook): Likewise.
(ipa_free_all_structures_after_ipa_cp): Likewise.
(ipa_free_all_structures_after_iinln): Likewise.
---
gcc/ipa-p
gcc/ChangeLog:
2015-04-30 Martin Liska
* tree-sra.c (sra_initialize): Use new type-based pool allocator.
(sra_deinitialize) Likewise.
(create_access_1) Likewise.
(build_accesses_from_assign) Likewise.
(create_artificial_child_access) Likewise.
---
gcc/t
gcc/ChangeLog:
2015-04-30 Martin Liska
* tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based pool
allocator.
(bitmap_set_new): Likewise.
(get_or_alloc_expr_for_constant): Likewise.
(get_or_alloc_expr_for): Likewise.
(phi_translate_1): Likewi
gcc/ChangeLog:
2015-04-30 Martin Liska
* regcprop.c (free_debug_insn_changes): Use new type-based pool
allocator.
(replace_oldest_value_reg): Likewise.
(pass_cprop_hardreg::execute): Likewise.
---
gcc/regcprop.c | 31 +--
1 file changed, 21
gcc/ChangeLog:
2015-04-30 Martin Liska
* ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
(allocate_and_init_ipcp_value): Likewise.
(ipcp_lattice::add_value): Likewise.
(merge_agg_lats_step): Likewise.
(ipcp_driver): Likewise.
gcc/ChangeLog:
2015-04-30 Martin Liska
* ira-build.c (initiate_allocnos): Use new type-based pool allocator.
(ira_create_object): Likewise.
(ira_create_allocno): Likewise.
(ira_create_live_range): Likewise.
(copy_live_range): Likewise.
(ira_finis
gcc/ChangeLog:
2015-04-30 Martin Liska
* ipa-profile.c (account_time_size): Use new type-based pool allocator.
(ipa_profile_generate_summary): Likewise.
(ipa_profile_read_summary): Likewise.
(ipa_profile): Likewise.
---
gcc/ipa-profile.c | 11 ---
1 fil
gcc/ChangeLog:
2015-04-30 Martin Liska
* cfg.c (initialize_original_copy_tables):Use new type-based pool
allocator.
(free_original_copy_tables) Likewise.
(copy_original_table_clear) Likewise.
(copy_original_table_set) Likewise.
---
gcc/cfg.c | 17 +++--
gcc/ChangeLog:
2015-04-30 Martin Liska
* ira-color.c (init_update_cost_records):Use new type-based pool
allocator.
(get_update_cost_record) Likewise.
(free_update_cost_record_list) Likewise.
(finish_update_cost_records) Likewise.
(initiate_cost_update)
gcc/ChangeLog:
2015-04-30 Martin Liska
* cselib.c (new_elt_list):Use new type-based pool allocator.
(new_elt_loc_list) Likewise.
(unchain_one_elt_list) Likewise.
(unchain_one_elt_loc_list) Likewise.
(unchain_one_value) Likewise.
(new_cselib_val)
gcc/c-family/ChangeLog:
2015-04-30 Martin Liska
* c-format.c (check_format_arg):Use new type-based pool allocator.
(check_format_info_main) Likewise.
---
gcc/c-family/c-format.c | 14 ++
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/gcc/c-family/c-f
gcc/ChangeLog:
2015-04-30 Martin Liska
* ira-color.c (init_update_cost_records):Use new type-based pool
allocator.
(get_update_cost_record) Likewise.
(free_update_cost_record_list) Likewise.
(finish_update_cost_records) Likewise.
(initiate_cost_update)
gcc/ChangeLog:
2015-04-30 Martin Liska
* sel-sched-ir.c (alloc_sched_pools): Use new type-based pool allocator.
(free_sched_pools): Likewise.
* sel-sched-ir.h (_list_alloc): Likewise.
(_list_remove): Likewise.
---
gcc/sel-sched-ir.c | 7 ++-
gcc/sel-sched-i
gcc/ChangeLog:
2015-04-30 Martin Liska
* et-forest.c (et_new_occ): Use new type-based pool allocator.
(et_new_tree): Likewise.
(et_free_tree): Likewise.
(et_free_tree_force): Likewise.
(et_free_pools): Likewise.
(et_split): Likewise.
---
gcc/dom
gcc/ChangeLog:
2015-04-30 Martin Liska
* lra.c (init_insn_regs): Use new type-based pool allocator.
(new_insn_reg) Likewise.
(free_insn_reg) Likewise.
(free_insn_regs) Likewise.
(finish_insn_regs) Likewise.
(init_insn_recog_data) Likewise.
Hello.
Following patch set attempts to replace old-style pool allocator
to a type-based one. Moreover, as we utilize classes and structs that are used
just by a pool allocator, these types have overwritten ctors and dtors.
Thus, using the allocator is much easier and we shouldn't cast types
back
gcc/ChangeLog:
2015-04-30 Martin Liska
* lra-lives.c (free_live_range): Use new type-based pool allocator.
(free_live_range_list) Likewise.
(create_live_range) Likewise.
(copy_live_range) Likewise.
(lra_merge_live_ranges) Likewise.
(remove_some_p
Hi.
Following patch changes GCC so that it exits after -fdbg-cnt-list and counters
are sorted in dbgcnt.def file.
Ready for trunk?
Thanks,
Martin
gcc/ChangeLog:
2015-05-15 Martin Liska
* dbgcnt.def: Sort counters.
* opts.c (common_handle_option): Do not compile if
-f
Hi.
Following patch add support of dbg-cnt for IPA ICF pass.
Ready for trunk?
Thanks,
Martin
gcc/ChangeLog:
2015-05-15 Martin Liska
* dbgcnt.def: Add new counter.
* ipa-icf.c (sem_item_optimizer::merge_classes): Use the
counter.
---
gcc/dbgcnt.def | 1 +
gcc/ipa-icf
Hello.
Following patch introduces support for direct call instructions
for HSAIL.
Thanks,
Martin
gcc/c-family/ChangeLog:
2014-12-05 Martin Liska
* c-common.c: New 'hsafunc' attribute is added.
gcc/ChangeLog:
2014-12-05 Martin Liska
* hsa-brig.c (struct function_linkage
Hello.
Attached patch removes all memory leaks which come from HSA-related
source files.
Thanks,
Martin
gcc/ChangeLog:
2014-12-05 Martin Liska
* hsa-brig.c (brig_string_slot_hasher::remove): Memory free is added.
* hsa-gen.c (hsa_deinit_data_for_cfun): Destructors are called
Hello.
In this small patch I add missing comments.
Thanks,
Martin
gcc/ChangeLog:
2014-12-12 Martin Liska
* hsa-brig.c: Function comments are added.
* hsa-gen.c: Likewise.
---
gcc/hsa-brig.c | 5 +
gcc/hsa-gen.c | 19 ++-
2 files changed, 23 ins
gcc/ChangeLog:
2014-11-13 Martin Liska
* predict.c (propagate_freq): More elegant sreal API is used.
(estimate_bb_frequencies): New static constants defined by sreal
replace precomputed ones.
* sreal.c (sreal::normalize): New function.
(sreal::to_int): L
gcc/ChangeLog:
2014-11-13 Martin Liska
* fibonacci_heap.h: New file.
* ipa-inline.c (update_edge_key): New heap API is used.
(update_caller_keys): Likewise.
(update_callee_keys): Likewise.
(lookup_recursive_calls): Likewise.
(recursive_inlining):
gcc/ChangeLog:
2014-11-13 Martin Liska
* bb-reorder.c (find_traces_1_round): Old fibheap_t type removed.
* bt-load.c: Include of fibheap.h is removed.
* cgraphunit.c: Likewise.
* config/i386/i386.c: Likewise.
* ipa-inline.c: Likewise.
* var-track
2014-11-13 Martin Liska
* tracer.c (tail_duplicate): New fibonacci_heap class is used.
---
gcc/tracer.c | 24 +++-
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/gcc/tracer.c b/gcc/tracer.c
index b3a412c..cecefdc 100644
--- a/gcc/tracer.c
+++ b/gcc/
Hello.
Following patch set introduces new template class for fibonacci heap
that is mainly utilized by IPA inliner. Apart from that, I also enhanced
existing sreal implementation so that it can also handle negative numbers.
I was primary motivated by Honza, because current heap implementation
in
gcc/ChangeLog:
2014-11-13 Martin Liska
* bt-load.c (add_btr_def): New fibonacci_heap is used.
(migrate_btr_defs): Likewise.
---
gcc/bt-load.c | 31 +--
1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/gcc/bt-load.c b/gcc/bt-load.c
ind
gcc/ChangeLog:
2014-11-13 Martin Liska
* ipa-inline.c (edge_badness): long is replaced by sreal
as fibonacci_heap template type.
(update_edge_key): Likewise.
(inline_small_functions): Likewise.
* sreal.h (inline sreal operator<<): New function added.
gcc/ChangeLog:
2014-11-13 Martin Liska
* var-tracking.c (vt_find_locations): New fibonacci_node is used.
---
gcc/var-tracking.c | 34 +++---
1 file changed, 19 insertions(+), 15 deletions(-)
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 302968
gcc/ChangeLog:
2014-11-13 Martin Liska
* bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
(find_traces): Likewise.
(find_traces_1_round): Likewise.
---
gcc/bb-reorder.c | 54 +++---
1 file changed, 27 insertion
gcc/ChangeLog:
2014-11-12 Martin Liska
* auto-profile.c: Include cgraph_summary.h.
* cgraph.c: Likewise.
* cgraphbuild.c: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-devirt.c: Likewise.
gcc/ChangeLog:
2014-11-12 Martin Liska
* cgraphunit.c (symbol_table::process_new_functions):
inline_summary_vec is replaced with inline_summary_summary.
* ipa-cp.c (ipcp_cloning_candidate_p): Usage of get_inline_summary.
(devirtualization_time_bonus): Likewise.
Following patchset introduces cgraph_summary template class that
should replace custom implementation of cgraph related summaries.
Idea behind the patch is to provide a generic interface one can use
to register custom summary related to a cgraph_node. As you know,
symbol_table provides hooks for c
gcc/ChangeLog:
2014-11-12 Martin Liska
* Makefile.in: New object file is added.
* cgraph.h (symbol_table::allocate_cgraph_symbol): Summary UID
is filled up.
* cgraph_summary.c: New file.
* cgraph_summary.h: New file.
* gengtype.c (open_base_files
Hello,
I am sorry for wrong reply address in previously sent thread. After working
for quite a long time, I would like to introduce new IPA pass. Goal of the pass
is to merge semantically equivalent functions and read-only variables.
If we prove that a function A is an equivalent to a functio
Hi,
this is a new collection of tests for IPA ICF pass.
Martin
Changelog:
2014-06-13 Martin Liska
Honza Hubicka
* gcc/testsuite/g++.dg/ipa/ipa-se-1.C: New test.
* gcc/testsuite/g++.dg/ipa/ipa-se-2.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-3.C: Li
Hi,
many tests rely on a precise number of scanned functions in a dump file. If
IPA ICF decides to merge some function and(or) read-only variables, counts do
not match.
Martin
Changelog:
2014-06-13 Martin Liska
Honza Hubicka
* c-c++-common/rotate-1.c: Text
*
Hi,
this small patch prepares remaining needed infrastructure for the new pass.
Changelog:
2014-06-13 Martin Liska
Honza Hubicka
* ipa-utils.h (polymorphic_type_binfo_p): Function marked external
instead of static.
* ipa-devirt.c (polymorphic_type_bin
Hi,
this is a new collection of tests for IPA ICF pass.
Changelog:
2014-06-13 Martin Liska
Honza Hubicka
* gcc/testsuite/g++.dg/ipa/ipa-se-1.C: New test.
* gcc/testsuite/g++.dg/ipa/ipa-se-2.C: Likewise.
* gcc/testsuite/g++.dg/ipa/ipa-se-3.C: Likewise.
Hello,
after working for quite a long time, I would like to introduce new IPA pass.
Goal of the pass is to merge semantically equivalent functions and read-only
variables.
If we prove that a function A is an equivalent to a function B, depending on
circumstances, an alias, thunk or a functio
Hi,
this small patch prepares remaining infrastructure needed for the new pass.
Changelog:
2014-06-13 Martin Liska
Honza Hubicka
* ipa-utils.h (polymorphic_type_binfo_p): Function marked external
instead of static.
* ipa-devirt.c (polymorphic_type_bin
Hi,
many tests rely on a precise number of scanned functions in a dump file. If
IPA ICF decides to merge some function and(or) read-only variables, counts do
not match.
Changelog:
2014-06-13 Martin Liska
Honza Hubicka
* c-c++-common/rotate-1.c: Text
* c-c++-c
75 matches
Mail list logo