ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder for better storage.
authorJan Hubicka <hubicka@ucw.cz>
Thu, 25 Sep 2014 18:57:44 +0000 (20:57 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 25 Sep 2014 18:57:44 +0000 (18:57 +0000)
commit2f28755fbfdd89b016163e72fa92edb14a19e5e6
tree633107f19b3832c67e16400b92999b85d3950f0b
parent0be35aa0a1c35976c8aa3da816afbfe05d4ba4b3
ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder for better storage.

* ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
for better storage.
(polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
(possible_polymorphic_call_targets): Instead of computing both
speculative and non-speculative answers, do just one at a time.
Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
(dump_targets): Break out from ...
(dump_possible_polymorphic_call_targets): ... here; dump both speculative
and non-speculative lists.
(ipa_devirt): Update for new possible_polymorphic_call_targets API.
* ipa-utils.h (possible_polymorphic_call_targets): Update.

* testsuite/g++.dg/ipa/devirt-34.C: Update template.

From-SVN: r215614
gcc/ChangeLog
gcc/ipa-devirt.c
gcc/ipa-utils.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/devirt-34.C