aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-utils.h
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-09-25 20:57:44 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2014-09-25 18:57:44 +0000
commit2f28755fbfdd89b016163e72fa92edb14a19e5e6 (patch)
tree633107f19b3832c67e16400b92999b85d3950f0b /gcc/ipa-utils.h
parent0be35aa0a1c35976c8aa3da816afbfe05d4ba4b3 (diff)
downloadgcc-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.h6
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. */