OSDN Git Service

PR lto/23754
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 18 Jun 2011 10:48:08 +0000 (10:48 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 18 Jun 2011 10:48:08 +0000 (10:48 +0000)
* lto.c (lto_1_to_1_map): Don't create empty partitions.
(lto_balanced_map): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175174 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/lto/ChangeLog
gcc/lto/lto.c

index 9956d79..ee054b0 100644 (file)
@@ -1,5 +1,11 @@
 2011-06-11  Jan Hubicka  <jh@suse.cz>
 
+       PR lto/23754
+       * lto.c (lto_1_to_1_map): Don't create empty partitions.
+       (lto_balanced_map): Likewise.
+
+2011-06-11  Jan Hubicka  <jh@suse.cz>
+
        * lto.c (add_cgraph_node_to_partition_1): Break out from ...
        (add_cgraph_node_to_partition) ... here; walk aliases.
        (lto_1_to_1_map): Remove same body alias code.
index f13ee0e..4323c4f 100644 (file)
@@ -1516,7 +1516,8 @@ lto_1_to_1_map (void)
 
   for (node = cgraph_nodes; node; node = node->next)
     {
-      if (!partition_cgraph_node_p (node))
+      if (!partition_cgraph_node_p (node)
+         || node->aux)
        continue;
 
       file_data = node->local.lto_file_data;
@@ -1545,13 +1546,13 @@ lto_1_to_1_map (void)
          npartitions++;
        }
 
-      if (!node->aux)
-        add_cgraph_node_to_partition (partition, node);
+      add_cgraph_node_to_partition (partition, node);
     }
 
   for (vnode = varpool_nodes; vnode; vnode = vnode->next)
     {
-      if (!partition_varpool_node_p (vnode))
+      if (!partition_varpool_node_p (vnode)
+         || vnode->aux)
        continue;
       file_data = vnode->lto_file_data;
       slot = pointer_map_contains (pmap, file_data);
@@ -1565,8 +1566,7 @@ lto_1_to_1_map (void)
          npartitions++;
        }
 
-      if (!vnode->aux)
-        add_varpool_node_to_partition (partition, vnode);
+      add_varpool_node_to_partition (partition, vnode);
     }
   for (node = cgraph_nodes; node; node = node->next)
     node->aux = NULL;
@@ -1675,8 +1675,9 @@ lto_balanced_map (void)
 
   for (i = 0; i < n_nodes; i++)
     {
-      if (!order[i]->aux)
-        add_cgraph_node_to_partition (partition, order[i]);
+      if (order[i]->aux)
+       continue;
+      add_cgraph_node_to_partition (partition, order[i]);
       total_size -= inline_summary (order[i])->size;
 
       /* Once we added a new node to the partition, we also want to add
@@ -1856,6 +1857,8 @@ lto_balanced_map (void)
            }
          i = best_i;
          /* When we are finished, avoid creating empty partition.  */
+         while (i < n_nodes - 1 && order[i + 1]->aux)
+           i++;
          if (i == n_nodes - 1)
            break;
          partition = new_partition ("");