re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461 * ira-build.c (ira_loop_nodes_count): New variable. (create_loop_tree_nodes): Initialize it. (finish_loop_tree_nodes): Use it instead of looking at current_loops. From-SVN: r196397
This commit is contained in:
parent
b6b9227d52
commit
caff7edf99
2 changed files with 13 additions and 7 deletions
|
@ -1,5 +1,10 @@
|
|||
2013-03-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR middle-end/56461
|
||||
* ira-build.c (ira_loop_nodes_count): New variable.
|
||||
(create_loop_tree_nodes): Initialize it.
|
||||
(finish_loop_tree_nodes): Use it instead of looking at current_loops.
|
||||
|
||||
PR middle-end/56461
|
||||
* tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
|
||||
method on dr_chain and result_chain.
|
||||
|
|
|
@ -57,6 +57,9 @@ ira_loop_tree_node_t ira_bb_nodes;
|
|||
array. */
|
||||
ira_loop_tree_node_t ira_loop_nodes;
|
||||
|
||||
/* And size of the ira_loop_nodes array. */
|
||||
unsigned int ira_loop_nodes_count;
|
||||
|
||||
/* Map regno -> allocnos with given regno (see comments for
|
||||
allocno member `next_regno_allocno'). */
|
||||
ira_allocno_t *ira_regno_allocno_map;
|
||||
|
@ -142,14 +145,16 @@ create_loop_tree_nodes (void)
|
|||
}
|
||||
if (current_loops == NULL)
|
||||
{
|
||||
ira_loop_nodes_count = 1;
|
||||
ira_loop_nodes = ((struct ira_loop_tree_node *)
|
||||
ira_allocate (sizeof (struct ira_loop_tree_node)));
|
||||
init_loop_tree_node (ira_loop_nodes, 0);
|
||||
return;
|
||||
}
|
||||
ira_loop_nodes_count = number_of_loops ();
|
||||
ira_loop_nodes = ((struct ira_loop_tree_node *)
|
||||
ira_allocate (sizeof (struct ira_loop_tree_node)
|
||||
* number_of_loops ()));
|
||||
* ira_loop_nodes_count));
|
||||
FOR_EACH_VEC_SAFE_ELT (get_loops (), i, loop)
|
||||
{
|
||||
if (loop_outer (loop) != NULL)
|
||||
|
@ -217,13 +222,9 @@ static void
|
|||
finish_loop_tree_nodes (void)
|
||||
{
|
||||
unsigned int i;
|
||||
loop_p loop;
|
||||
|
||||
if (current_loops == NULL)
|
||||
finish_loop_tree_node (&ira_loop_nodes[0]);
|
||||
else
|
||||
FOR_EACH_VEC_SAFE_ELT (get_loops (), i, loop)
|
||||
finish_loop_tree_node (&ira_loop_nodes[i]);
|
||||
for (i = 0; i < ira_loop_nodes_count; i++)
|
||||
finish_loop_tree_node (&ira_loop_nodes[i]);
|
||||
ira_free (ira_loop_nodes);
|
||||
for (i = 0; i < (unsigned int) last_basic_block_before_change; i++)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue