]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove inline clones when...
authorJan Hubicka <hubicka@ucw.cz>
Wed, 19 Feb 2014 07:33:45 +0000 (08:33 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 19 Feb 2014 07:33:45 +0000 (07:33 +0000)
* cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
inline clones when edge disappears.

From-SVN: r207875

gcc/ChangeLog
gcc/cgraph.c

index 6e3c8546c79fce878fd4865706e922b846d40c9f..315691a06b89f6433e460bc2004b96d0f9065c39 100644 (file)
@@ -1,3 +1,8 @@
+2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
+       inline clones when edge disappears.
+
 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        PR target/60203
index ae1f43c43596d474b35fe70d9a6f5028041b9391..a15b6bc7cfcbdfa525a3b314e51ca05ae9952321 100644 (file)
@@ -1529,7 +1529,10 @@ cgraph_update_edges_for_call_stmt_node (struct cgraph_node *node,
             attached to edge is invalid.  */
          count = e->count;
          frequency = e->frequency;
-         cgraph_remove_edge (e);
+         if (e->indirect_unknown_callee || e->inline_failed)
+           cgraph_remove_edge (e);
+         else
+           cgraph_remove_node_and_inline_clones (e->callee, NULL);
        }
       else if (new_call)
        {