* ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
authorJan Hubicka <jh@suse.cz>
Sun, 8 Sep 2013 20:32:46 +0000 (22:32 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 8 Sep 2013 20:32:46 +0000 (20:32 +0000)
From-SVN: r202370

gcc/ChangeLog
gcc/ipa.c

index 7d3867c2c6434cdd939e1d8fd118c0e0ac3310c0..4953bba54d013d248314a48fab3329bf896b3852 100644 (file)
@@ -1,3 +1,7 @@
+2013-09-08  Jan Hubicka  <jh@suse.cz>
+
+       * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
+
 2013-09-08  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
index 4b82d1d4bc59858accaadad5048bbd7386269345..f52a77e5b7dda82f48b4d4a9a79fb2721c06f464 100644 (file)
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -206,7 +206,7 @@ walk_polymorphic_call_targets (pointer_set_t *reachable_call_targets,
     {
       if (targets.length() <= 1)
        {
-         cgraph_node *target;
+         cgraph_node *target, *node = edge->caller;
          if (targets.length () == 1)
            target = targets[0];
          else
@@ -222,8 +222,8 @@ walk_polymorphic_call_targets (pointer_set_t *reachable_call_targets,
          edge = cgraph_make_edge_direct (edge, target);
          if (cgraph_state != CGRAPH_STATE_IPA_SSA)
            cgraph_redirect_edge_call_stmt_to_callee (edge);
-         else
-           inline_update_overall_summary (edge->caller);
+         else if (inline_summary_vec)
+           inline_update_overall_summary (node);
        }
     }
 }