mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-30 21:06:03 +08:00
cfg.c (clear_aux_for_blocks): Split out of ...
* cfg.c (clear_aux_for_blocks): Split out of ... (free_aux_for_blocks): here. (clear_aux_for_edges): Split from ... (free_aux_for_edges): here. * basic-block.h: Declare them. * lcm.c (compute_antinout_edge): Use them. (compute_laterin, compute_available, compute_nearerout): Likewise. (optimize_mode_switching): Likewise. From-SVN: r46534
This commit is contained in:
parent
4992fc7ff5
commit
108c1afce2
@ -1,3 +1,14 @@
|
||||
2001-10-26 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* cfg.c (clear_aux_for_blocks): Split out of ...
|
||||
(free_aux_for_blocks): here.
|
||||
(clear_aux_for_edges): Split from ...
|
||||
(free_aux_for_edges): here.
|
||||
* basic-block.h: Declare them.
|
||||
* lcm.c (compute_antinout_edge): Use them.
|
||||
(compute_laterin, compute_available, compute_nearerout): Likewise.
|
||||
(optimize_mode_switching): Likewise.
|
||||
|
||||
2001-10-26 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* Makefile.in (unstage*): Remove as, ld, collect-ld before
|
||||
|
@ -649,9 +649,11 @@ extern void flow_edge_list_print PARAMS ((const char *, const edge *,
|
||||
int, FILE *));
|
||||
extern void alloc_aux_for_block PARAMS ((basic_block, int));
|
||||
extern void alloc_aux_for_blocks PARAMS ((int));
|
||||
extern void clear_aux_for_blocks PARAMS ((void));
|
||||
extern void free_aux_for_blocks PARAMS ((void));
|
||||
extern void alloc_aux_for_edge PARAMS ((edge, int));
|
||||
extern void alloc_aux_for_edges PARAMS ((int));
|
||||
extern void clear_aux_for_edges PARAMS ((void));
|
||||
extern void free_aux_for_edges PARAMS ((void));
|
||||
|
||||
/* This function is always defined so it can be called from the
|
||||
|
44
gcc/cfg.c
44
gcc/cfg.c
@ -618,22 +618,31 @@ alloc_aux_for_blocks (size)
|
||||
}
|
||||
}
|
||||
|
||||
/* Clear AUX pointers of all blocks. */
|
||||
|
||||
void
|
||||
clear_aux_for_blocks ()
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < n_basic_blocks; i++)
|
||||
BASIC_BLOCK (i)->aux = NULL;
|
||||
ENTRY_BLOCK_PTR->aux = NULL;
|
||||
EXIT_BLOCK_PTR->aux = NULL;
|
||||
}
|
||||
|
||||
/* Free data allocated in block_aux_obstack and clear AUX pointers
|
||||
of all blocks. */
|
||||
|
||||
void
|
||||
free_aux_for_blocks ()
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!first_block_aux_obj)
|
||||
abort ();
|
||||
obstack_free (&block_aux_obstack, first_block_aux_obj);
|
||||
for (i = 0; i < n_basic_blocks; i++)
|
||||
BASIC_BLOCK (i)->aux = NULL;
|
||||
ENTRY_BLOCK_PTR->aux = NULL;
|
||||
EXIT_BLOCK_PTR->aux = NULL;
|
||||
first_block_aux_obj = NULL;
|
||||
|
||||
clear_aux_for_blocks ();
|
||||
}
|
||||
|
||||
/* Allocate an memory edge of SIZE as BB->aux. The obstack must
|
||||
@ -687,17 +696,13 @@ alloc_aux_for_edges (size)
|
||||
}
|
||||
}
|
||||
|
||||
/* Free data allocated in edge_aux_obstack and clear AUX pointers
|
||||
of all edges. */
|
||||
/* Clear AUX pointers of all edges. */
|
||||
|
||||
void
|
||||
free_aux_for_edges ()
|
||||
clear_aux_for_edges ()
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!first_edge_aux_obj)
|
||||
abort ();
|
||||
obstack_free (&edge_aux_obstack, first_edge_aux_obj);
|
||||
for (i = -1; i < n_basic_blocks; i++)
|
||||
{
|
||||
basic_block bb;
|
||||
@ -710,5 +715,18 @@ free_aux_for_edges ()
|
||||
for (e = bb->succ; e; e = e->succ_next)
|
||||
e->aux = NULL;
|
||||
}
|
||||
first_edge_aux_obj = NULL;
|
||||
}
|
||||
|
||||
/* Free data allocated in edge_aux_obstack and clear AUX pointers
|
||||
of all edges. */
|
||||
|
||||
void
|
||||
free_aux_for_edges ()
|
||||
{
|
||||
if (!first_edge_aux_obj)
|
||||
abort ();
|
||||
obstack_free (&edge_aux_obstack, first_edge_aux_obj);
|
||||
first_edge_aux_obj = NULL;
|
||||
|
||||
clear_aux_for_edges ();
|
||||
}
|
||||
|
@ -177,6 +177,8 @@ compute_antinout_edge (antloc, transp, antin, antout)
|
||||
}
|
||||
}
|
||||
|
||||
clear_aux_for_edges ();
|
||||
clear_aux_for_blocks ();
|
||||
free (worklist);
|
||||
}
|
||||
|
||||
@ -354,6 +356,7 @@ compute_laterin (edge_list, earliest, antloc, later, laterin)
|
||||
laterin[n_basic_blocks],
|
||||
later[(size_t) e->aux]);
|
||||
|
||||
clear_aux_for_edges ();
|
||||
free (worklist);
|
||||
}
|
||||
|
||||
@ -565,6 +568,8 @@ compute_available (avloc, kill, avout, avin)
|
||||
}
|
||||
}
|
||||
|
||||
clear_aux_for_edges ();
|
||||
clear_aux_for_blocks ();
|
||||
free (worklist);
|
||||
}
|
||||
|
||||
@ -695,6 +700,7 @@ compute_nearerout (edge_list, farthest, st_avloc, nearer, nearerout)
|
||||
nearerout[n_basic_blocks],
|
||||
nearer[(size_t) e->aux]);
|
||||
|
||||
clear_aux_for_edges ();
|
||||
free (tos);
|
||||
}
|
||||
|
||||
@ -1273,6 +1279,7 @@ optimize_mode_switching (file)
|
||||
}
|
||||
}
|
||||
|
||||
clear_aux_for_edges ();
|
||||
free_edge_list (edge_list);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user