]> gcc.gnu.org Git - gcc.git/commitdiff
tree-sra.c (modify_function): Record caller nodes after rebuild.
authorTeresa Johnson <tejohnson@google.com>
Tue, 3 Jun 2014 14:12:51 +0000 (14:12 +0000)
committerTeresa Johnson <tejohnson@gcc.gnu.org>
Tue, 3 Jun 2014 14:12:51 +0000 (14:12 +0000)
2014-06-03  Teresa Johnson  <tejohnson@google.com>

* tree-sra.c (modify_function): Record caller nodes after rebuild.

From-SVN: r211180

gcc/ChangeLog
gcc/tree-sra.c

index 5bc582bb7e3d5392beeacf7e4e4b03feb3d7ac1a..63986c2cedaab698b15e2821814cb384aca25785 100644 (file)
@@ -1,3 +1,7 @@
+2014-06-03  Teresa Johnson  <tejohnson@google.com>
+
+       * tree-sra.c (modify_function): Record caller nodes after rebuild.
+
 2014-06-02  Jason Merrill  <jason@redhat.com>
 
        PR c++/61020
index db91c8b81753219c6f0274b7dc3c846746a8e4a5..0afa197059c29b1ffee553e7987d91f4c7ea4672 100644 (file)
@@ -4926,12 +4926,15 @@ modify_function (struct cgraph_node *node, ipa_parm_adjustment_vec adjustments)
 {
   struct cgraph_node *new_node;
   bool cfg_changed;
-  vec<cgraph_edge_p> redirect_callers = collect_callers_of_node (node);
 
   rebuild_cgraph_edges ();
   free_dominance_info (CDI_DOMINATORS);
   pop_cfun ();
 
+  /* This must be done after rebuilding cgraph edges for node above.
+     Otherwise any recursive calls to node that are recorded in
+     redirect_callers will be corrupted.  */
+  vec<cgraph_edge_p> redirect_callers = collect_callers_of_node (node);
   new_node = cgraph_function_versioning (node, redirect_callers,
                                         NULL,
                                         NULL, false, NULL, NULL, "isra");
This page took 0.073036 seconds and 5 git commands to generate.