aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-fold.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-07-05 19:22:44 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2014-07-05 17:22:44 +0000
commit058d0a9059789682ccef8f56aa04182d71d17e78 (patch)
treea316c1d813e71ce225a70f30c867801face3d5aa /gcc/gimple-fold.c
parentaed773a2c8a20550b32cd223ecc44d87b6676974 (diff)
downloadgcc-058d0a9059789682ccef8f56aa04182d71d17e78.zip
gcc-058d0a9059789682ccef8f56aa04182d71d17e78.tar.gz
gcc-058d0a9059789682ccef8f56aa04182d71d17e78.tar.bz2
cgraph.c (cgraph_create_indirect_edge): Update call of get_polymorphic_call_info.
* cgraph.c (cgraph_create_indirect_edge): Update call of get_polymorphic_call_info. * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL. (possible_polymorphic_call_targets): Add parameter call. (decl_maybe_in_construction_p): New predicate. (get_polymorphic_call_info): Add parameter call; use decl_maybe_in_construction_p. * gimple-fold.c (fold_gimple_assign): Update use of possible_polymorphic_call_targets. (gimple_fold_call): Likewise. * ipa-prop.c: Inlcude calls.h (ipa_binfo_from_known_type_jfunc): Check that known type is record. (param_type_may_change_p): New predicate. (detect_type_change_from_memory_writes): Break out from ... (detect_type_change): ... this one; use param_type_may_change_p. (detect_type_change_ssa): Use param_type_may_change_p. (compute_known_type_jump_func): Use decl_maybe_in_construction_p. * g++.dg/ipa/devirt-26.C: Update testcase. * g++.dg/ipa/imm-devirt-1.C: Update testcase. * g++.dg/ipa/imm-devirt-2.C: Update testcase. From-SVN: r212304
Diffstat (limited to 'gcc/gimple-fold.c')
-rw-r--r--gcc/gimple-fold.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index 3dcb5760..1a90319 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -376,7 +376,7 @@ fold_gimple_assign (gimple_stmt_iterator *si)
{
bool final;
vec <cgraph_node *>targets
- = possible_polymorphic_call_targets (val, &final);
+ = possible_polymorphic_call_targets (val, stmt, &final);
if (final && targets.length () <= 1 && dbg_cnt (devirt))
{
tree fndecl;
@@ -1125,7 +1125,7 @@ gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace)
{
bool final;
vec <cgraph_node *>targets
- = possible_polymorphic_call_targets (callee, &final);
+ = possible_polymorphic_call_targets (callee, stmt, &final);
if (final && targets.length () <= 1 && dbg_cnt (devirt))
{
tree lhs = gimple_call_lhs (stmt);