]> git.ipfire.org Git - thirdparty/gcc.git/commit
cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
authorJan Hubicka <hubicka@ucw.cz>
Tue, 29 Jul 2014 09:39:06 +0000 (11:39 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 29 Jul 2014 09:39:06 +0000 (09:39 +0000)
commit3339f0bcb06a145e127e5274e223827a6aeb3cb0
tree17a1672ffb371dd2e673d37baa24eda5b181647f
parentf8a39967a57f8880b7050d53cbf888218626c493
cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.

* cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
* cgraph.h (cgraph_indirect_call_info): Add speculative data.
* gimple-fold.c (fold_gimple_assign): Fix check for virtual
call.
* ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
(contains_type_p): Forward declare.
(polymorphic_call_target_hasher::hash): Hash speculative info.
(polymorphic_call_target_hasher::equal): Compare speculative info.
(get_class_context): Handle speuclation.
(contains_type_p): Update.
(get_polymorphic_call_info_for_decl): Update.
(walk_ssa_copies): Break out from ...
(get_polymorphic_call_info): ... here; set speculative context
before giving up.
* ipa-prop.c (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info):
Stream speculative context.
* ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
(SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
SPECULATIVE_MAYBE_DERIVED_TYPE).
(possible_polymorphic_call_targets overriders): Update.
(dump_possible_polymorphic_call_targets overriders): Update.
(dump_possible_polymorphic_call_target_p overriders): Update.

From-SVN: r213152
gcc/ChangeLog
gcc/cgraph.c
gcc/cgraph.h
gcc/ipa-devirt.c
gcc/ipa-prop.c
gcc/ipa-utils.h