ipa-prop.h (ipa_pass_through_data): New field type_preserved.
commitb8f6e610c06d35b386899f72e8b767f952ce4589
authorMartin Jambor <mjambor@suse.cz>
Tue, 27 Aug 2013 21:41:15 +0000 (27 23:41 +0200)
committerMartin Jambor <jamborm@gcc.gnu.org>
Tue, 27 Aug 2013 21:41:15 +0000 (27 23:41 +0200)
treea2d5071d970254c4acebb2d4c7039bfa0e43d18a
parent74bf76ed78a14069969e94233f05e7840806aed8
ipa-prop.h (ipa_pass_through_data): New field type_preserved.

2013-08-27  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.h (ipa_pass_through_data): New field type_preserved.
(ipa_ancestor_jf_data): Likewise.
(ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
(ipa_get_jf_pass_through_type_preserved): New function.
(ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
(ipa_get_jf_ancestor_type_preserved): New function.
* ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved
flag.
(ipa_get_jf_ancestor_result): Likewise.
(propagate_vals_accross_pass_through): Use
ipa_get_jf_pass_through_result to do all the value mappings.
* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
type_preserved flag.
(ipa_set_jf_cst_copy): New function.
(ipa_set_jf_simple_pass_through): Set the type_preserved flag.
(ipa_set_jf_arith_pass_through): Likewise.
(ipa_set_ancestor_jf): Likewise.
(compute_complex_assign_jump_func): Set type_preserved instead of
punting.
(ipa_compute_jump_functions_for_edge): Likewise.
(combine_known_type_and_ancestor_jfs): Honor type_preserved.
(update_jump_functions_after_inlining): Update type_preserved.
Explicitely create jump functions when combining one with
pass_through.
(ipa_write_jump_function): Stream the type_preserved flags.
(ipa_read_jump_function): Likewise.

From-SVN: r202036
gcc/ChangeLog
gcc/ipa-cp.c
gcc/ipa-prop.c
gcc/ipa-prop.h