From: Jan Hubicka <hubicka@ucw.cz>
To: Feng Xue OS <fxue@os.amperecomputing.com>
Cc: Martin Jambor <mjambor@suse.cz>,
"gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>
Subject: Re: Ping: [PATCH V6] Extend IPA-CP to support arithmetically-computed value-passing on by-ref argument (PR ipa/91682)
Date: Tue, 12 Nov 2019 12:34:00 -0000 [thread overview]
Message-ID: <20191112121526.dbxmpjadlrf7vc46@kam.mff.cuni.cz> (raw)
In-Reply-To: <BYAPR01MB48690F7D9DA75F2BB0AF7CFCF77E0@BYAPR01MB4869.prod.exchangelabs.com>
> +2019-11-05 Feng Xue <fxue@os.amperecomputing.com>
> +
> + PR ipa/91682
> + * ipa-prop.h (jump_func_type): New value IPA_JF_LOAD_AGG.
> + (ipa_load_agg_data, ipa_agg_value, ipa_agg_value_set): New structs.
> + (ipa_agg_jf_item): Add new field jftype and type, redefine field value.
> + (ipa_agg_jump_function): Remove member function equal_to.
> + (ipa_agg_jump_function_p): Remove typedef.
> + (ipa_copy_agg_values, ipa_release_agg_values): New functions.
> + * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump
> + information for aggregate jump function.
> + (get_ssa_def_if_simple_copy): Add new parameter rhs_stmt to
> + record last definition statement.
> + (load_from_unmodified_param_or_agg): New function.
> + (ipa_known_agg_contents_list): Add new field type and value, remove
> + field constant.
> + (build_agg_jump_func_from_list): Rename parameter const_count to
> + value_count, build aggregate jump function from ipa_load_agg_data.
> + (analyze_agg_content_value): New function.
> + (extract_mem_content): Analyze memory store assignment to prepare
> + information for aggregate jump function generation.
> + (determine_known_aggregate_parts): Add new parameter fbi, remove
> + parameter aa_walk_budeget_p.
> + (update_jump_functions_after_inlining): Update aggregate jump function.
> + (ipa_find_agg_cst_for_param): Change type of parameter agg.
> + (try_make_edge_direct_simple_call): Add new parameter new_root.
> + (try_make_edge_direct_virtual_call): Add new parameter new_root and
> + new_root_info.
> + (update_indirect_edges_after_inlining): Pass new argument to
> + try_make_edge_direct_simple_call and try_make_edge_direct_virtual_call.
> + (ipa_write_jump_function): Write aggregate jump function to file.
> + (ipa_read_jump_function): Read aggregate jump function from file.
> + (ipa_agg_value::equal_to): Migrate from ipa_agg_jf_item::equal_to.
> + * ipa-cp.c (ipa_get_jf_arith_result): New function.
> + (ipa_agg_value_from_node): Likewise.
> + (ipa_agg_value_set_from_jfunc): Likewise.
> + (propagate_vals_across_arith_jfunc): Likewise.
> + (propagate_aggregate_lattice): Likewise.
> + (ipa_get_jf_pass_through_result): Call ipa_get_jf_arith_result.
> + (propagate_vals_across_pass_through): Call
> + propagate_vals_across_arith_jfunc.
> + (get_clone_agg_value): Move forward.
> + (propagate_aggs_across_jump_function): Handle aggregate jump function
> + propagation.
> + (agg_jmp_p_vec_for_t_vec): Remove.
> + (context_independent_aggregate_values): Change use of
> + vec<ipa_agg_jf_item> to vec<ipa_agg_value>.
> + (copy_plats_to_inter, intersect_with_plats): Likewise.
> + (agg_replacements_to_vector, intersect_with_agg_replacements): Likewise.
> + (intersect_aggregate_with_edge): Likewise.
> + (find_aggregate_values_for_callers_subset): Likewise.
> + (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
> + (estimate_local_effects): Change use of vec<ipa_agg_jump_function>
> + and vec<ipa_agg_jump_function_p> to vec<ipa_agg_value_set>.
> + (gather_context_independent_values): Likewise.
> + (perform_estimation_of_a_value, decide_whether_version_node): Likewise.
> + * ipa-fnsummary.c (evaluate_conditions_for_known_args): Change use of
> + vec<ipa_agg_jump_function_p> to vec<ipa_agg_value_set>.
> + (evaluate_properties_for_edge): Likewise.
> + (estimate_edge_devirt_benefit): Likewise.
> + (estimate_edge_size_and_time): Likewise.
> + (estimate_calls_size_and_time): Likewise.
> + (ipa_call_context::ipa_call_context): Likewise.
> + (estimate_ipcp_clone_size_and_time): Likewise.
> + * ipa-fnsummary.h (ipa_call_context): Change use of
> + vec<ipa_agg_jump_function_p> to vec<ipa_agg_value_set>.
> + * ipa-inline-analysis.c (do_estimate_edge_time): Change use of
> + vec<ipa_agg_jump_function_p> to vec<ipa_agg_value_set>.
> + (do_estimate_edge_size): Likewise.
> + (do_estimate_edge_hints): Likewise.
> +
OK, thanks - this looks like very nice ipa-prop improvement.
Honza
next prev parent reply other threads:[~2019-11-12 12:15 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-06 12:35 [PATCH] Extend IPA-CP to support arithmetically-computed value-passing on by-ref argument (PR ipa/91682)) Feng Xue OS
2019-09-06 16:39 ` [PATCH V2] " Feng Xue OS
2019-09-09 8:40 ` [PATCH V3] " Feng Xue OS
2019-09-19 14:30 ` [PATCH V4] Extend IPA-CP to support arithmetically-computed value-passing on by-ref argument (PR ipa/91682) Feng Xue OS
2019-09-30 8:53 ` Ping: " Feng Xue OS
2019-10-23 8:25 ` luoxhu
2019-10-23 8:29 ` Feng Xue OS
2019-11-04 9:39 ` Ping: [PATCH V5] " Feng Xue OS
2019-11-05 1:40 ` Martin Jambor
2019-11-05 9:35 ` Ping: [PATCH V6] " Feng Xue OS
2019-11-12 12:34 ` Jan Hubicka [this message]
2019-11-12 12:35 ` Jan Hubicka
2019-11-12 13:17 ` Martin Jambor
2019-11-12 13:29 ` Jan Hubicka
2019-11-13 13:58 ` Richard Biener
2019-11-13 14:41 ` Jan Hubicka
2019-11-13 10:18 ` Feng Xue OS
2019-11-13 14:47 ` Martin Jambor
2019-11-15 8:10 ` Jan Hubicka
2019-11-15 10:31 ` Feng Xue OS
2019-11-15 14:16 ` Jan Hubicka
2019-11-22 12:58 ` Tamar Christina
2019-11-22 14:48 ` Jan Hubicka
2019-11-23 14:40 ` Tamar Christina
2019-11-23 15:21 ` Jan Hubicka
[not found] ` <20191112124152.awcljza2432vnps3@kam.mff.cuni.cz>
2019-11-13 10:42 ` Feng Xue OS
2019-10-15 16:12 ` [PATCH V4] " Philipp Tomsich
2019-10-16 8:24 ` Feng Xue OS
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191112121526.dbxmpjadlrf7vc46@kam.mff.cuni.cz \
--to=hubicka@ucw.cz \
--cc=fxue@os.amperecomputing.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=mjambor@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).