diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2014-09-25 20:57:44 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2014-09-25 18:57:44 +0000 |
commit | 2f28755fbfdd89b016163e72fa92edb14a19e5e6 (patch) | |
tree | 633107f19b3832c67e16400b92999b85d3950f0b /gcc/ipa-utils.h | |
parent | 0be35aa0a1c35976c8aa3da816afbfe05d4ba4b3 (diff) | |
download | gcc-2f28755fbfdd89b016163e72fa92edb14a19e5e6.zip gcc-2f28755fbfdd89b016163e72fa92edb14a19e5e6.tar.gz gcc-2f28755fbfdd89b016163e72fa92edb14a19e5e6.tar.bz2 |
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
Diffstat (limited to 'gcc/ipa-utils.h')
-rw-r--r-- | gcc/ipa-utils.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/ipa-utils.h b/gcc/ipa-utils.h index 7ff29f8..494397b 100644 --- a/gcc/ipa-utils.h +++ b/gcc/ipa-utils.h @@ -62,7 +62,7 @@ possible_polymorphic_call_targets (tree, HOST_WIDE_INT, ipa_polymorphic_call_context, bool *copletep = NULL, void **cache_token = NULL, - int *nonconstruction_targets = NULL); + bool speuclative = false); odr_type get_odr_type (tree, bool insert = false); bool possible_polymorphic_call_target_p (tree ref, gimple stmt, struct cgraph_node *n); void dump_possible_polymorphic_call_targets (FILE *, tree, HOST_WIDE_INT, @@ -92,7 +92,7 @@ inline vec <cgraph_node *> possible_polymorphic_call_targets (struct cgraph_edge *e, bool *completep = NULL, void **cache_token = NULL, - int *nonconstruction_targets = NULL) + bool speculative = false) { ipa_polymorphic_call_context context(e); @@ -100,7 +100,7 @@ possible_polymorphic_call_targets (struct cgraph_edge *e, e->indirect_info->otr_token, context, completep, cache_token, - nonconstruction_targets); + speculative); } /* Same as above but taking OBJ_TYPE_REF as an parameter. */ |