re PR tree-optimization/24226 (ICE: Segmentation fault in operand_equal_p (complete loop unrolling))

PR tree-optimization/24226
	* tree-cfg.c (remove_bb): Clean up unreachable loops.
	* tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
	* tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
	Export.

From-SVN: r105151
This commit is contained in:
Zdenek Dvorak 2005-10-10 00:50:01 +02:00 committed by Zdenek Dvorak
parent ed883fe3d8
commit c9639aaea9
4 changed files with 19 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2005-10-09 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimization/24226
* tree-cfg.c (remove_bb): Clean up unreachable loops.
* tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
* tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
Export.
2005-10-09 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/gmon-sol2.c (internal_mcount): Mark as used.

View File

@ -2020,6 +2020,12 @@ remove_bb (basic_block bb)
{
loop->latch = NULL;
loop->header = NULL;
/* Also clean up the information associated with the loop. Updating
it would waste time. More importantly, it may refer to ssa
names that were defined in other removed basic block -- these
ssa names are now removed and invalid. */
free_numbers_of_iterations_estimates_loop (loop);
}
}

View File

@ -735,6 +735,7 @@ bool scev_probably_wraps_p (tree, tree, tree, tree, struct loop *, bool *,
bool *);
tree convert_step (struct loop *, tree, tree, tree, tree);
void free_numbers_of_iterations_estimates (struct loops *);
void free_numbers_of_iterations_estimates_loop (struct loop *);
void rewrite_into_loop_closed_ssa (bitmap, unsigned);
void verify_loop_closed_ssa (void);
void loop_commit_inserts (void);

View File

@ -2007,11 +2007,13 @@ convert_step (struct loop *loop, tree new_type, tree base, tree step,
/* Frees the information on upper bounds on numbers of iterations of LOOP. */
static void
void
free_numbers_of_iterations_estimates_loop (struct loop *loop)
{
struct nb_iter_bound *bound, *next;
loop->nb_iterations = NULL;
loop->estimated_nb_iterations = NULL;
for (bound = loop->bounds; bound; bound = next)
{
next = bound->next;