* ipa-polymorphic-call.c
authorJan Hubicka <hubicka@ucw.cz>
Thu, 2 Oct 2014 04:45:44 +0000 (04:45 +0000)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 2 Oct 2014 04:45:44 +0000 (04:45 +0000)
commit67a1b94ce37b06256c3e5f1c482dc362bfb96aca
tree91aae0c45a18d47eee745c1fff31111ffe05564d
parentfef32cf89f7fe0c8864443dca942c6e34a204976
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_class):
Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
use speculation_consistent_p to do so; Add CONSDER_BASES
and CONSIDER_PLACEMENT_NEW parameters.
(contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
short circuit obvious cases.
(ipa_polymorphic_call_context::dump): Improve formatting.
(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
combine_speculation_with to record speculations; Do not ICE when
object is located in pointer type decl; do not ICE for methods
of UNION_TYPE; do not record nonpolymorphic types.
(ipa_polymorphic_call_context::speculation_consistent_p): New method.
(ipa_polymorphic_call_context::combine_speculation_with): New method.
(ipa_polymorphic_call_context::combine_with): New method.
(ipa_polymorphic_call_context::make_speculative): Move here; use
combine speculation.
* cgraph.h (ipa_polymorphic_call_context): Update
restrict_to_inner_class prototype; add offset_by, make_speculative,
combine_with, useless_p, combine_speculation_with and
speculation_consistent_p methods.
(ipa_polymorphic_call_context::offset_by): New method.
(ipa_polymorphic_call_context::useless_p): New method.

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