* ipa-polymorphic-call.c
commitdf0d8136f133fe11790812caee0712f37c0ae5d9
authorJan Hubicka <hubicka@ucw.cz>
Sun, 16 Nov 2014 21:01:45 +0000 (16 22:01 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 16 Nov 2014 21:01:45 +0000 (16 21:01 +0000)
treeb591fcf9084565e571a8a71a0b47d8f967b437ee
parent70486010428fdaeabd875022fee05122e9866424
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::speculation_consistent_p): Constify.
(ipa_polymorphic_call_context::meet_speculation_with): New function.
(ipa_polymorphic_call_context::combine_with): Handle types in construction
better.
(ipa_polymorphic_call_context::equal_to): Do not bother about useless
speculation.
(ipa_polymorphic_call_context::meet_with): New function.
* cgraph.h (class ipa_polymorphic_call_context): Add
meet_width, meet_speculation_with; constify speculation_consistent_p.
* ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
context.
(propagate_context_accross_jump_function): Likewise; be more cureful.
about set_contains_variable.
(ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
(find_more_scalar_values_for_callers_subset): Fix.
(find_more_contexts_for_caller_subset): Perform meet operation.

From-SVN: r217634
gcc/ChangeLog
gcc/cgraph.h
gcc/ipa-cp.c
gcc/ipa-polymorphic-call.c