ipa-utils.h (polymorphic_call_context): Add metdhos dump, debug and clear_outer_type.
authorJan Hubicka <hubicka@ucw.cz>
Wed, 24 Sep 2014 20:30:21 +0000 (22:30 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 24 Sep 2014 20:30:21 +0000 (20:30 +0000)
commita198145843f0b16e59069cb2da55c47a0a9bc2b9
treefb085630166aa196f47f51404bc1b7f3f2c51098
parentc6195f588b1b8980b07d53394edaaa2cd6807588
ipa-utils.h (polymorphic_call_context): Add metdhos dump, debug and clear_outer_type.

* ipa-utils.h (polymorphic_call_context): Add
metdhos dump, debug and clear_outer_type.
(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
(ipa_polymorphic_call_context::clear_outer_type): New method.
* ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
* ipa-devirt.c (types_odr_comparable): New function.
(types_must_be_same_for_odr): New function.
(odr_subtypes_equivalent_p): Simplify.
(possible_placement_new): Break out from ...
(ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
be more cuatious about returning false in cases the context may be
valid in derived type or via placement new.
(contains_type_p): Clear maybe_derived_type
(ipa_polymorphic_call_context::dump): New method.
(ipa_polymorphic_call_context::debug): New method.
(ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
(ipa_polymorphic_call_context::set_by_invariant): Simplify.
(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
(possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
to suceed on all valid cases; remove confused sanity check.
(dump_possible_polymorphic_call_targets): Simplify.

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