re PR bootstrap/63204 (gtype-desc.c:887:40: error: 'struct loop' has no member named 'former_header' breaks bootstrap)

2014-09-08  Richard Biener  <rguenther@suse.de>

	PR bootstrap/63204
	* cfgloop.c (mark_loop_for_removal): Track former header
	unconditionally.
	* cfgloop.h (struct loop): Add former_header member unconditionally.
	* loop-init.c (fix_loop_structure): Enable bogus loop removal
	diagnostic unconditionally.

From-SVN: r215012
This commit is contained in:
Richard Biener 2014-09-08 12:01:50 +00:00 committed by Richard Biener
parent 0877451899
commit e45fcf805f
4 changed files with 9 additions and 8 deletions

View File

@ -1,3 +1,12 @@
2014-09-08 Richard Biener <rguenther@suse.de>
PR bootstrap/63204
* cfgloop.c (mark_loop_for_removal): Track former header
unconditionally.
* cfgloop.h (struct loop): Add former_header member unconditionally.
* loop-init.c (fix_loop_structure): Enable bogus loop removal
diagnostic unconditionally.
2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
PR target/63190

View File

@ -1927,9 +1927,7 @@ bb_loop_depth (const_basic_block bb)
void
mark_loop_for_removal (loop_p loop)
{
#ifdef ENABLE_CHECKING
loop->former_header = loop->header;
#endif
loop->header = NULL;
loop->latch = NULL;
loops_state_set (LOOPS_NEED_FIXUP);

View File

@ -194,13 +194,11 @@ struct GTY ((chain_next ("%h.next"))) loop {
/* Number of iteration analysis data for RTL. */
struct niter_desc *simple_loop_desc;
#ifdef ENABLE_CHECKING
/* For sanity checking during loop fixup we record here the former
loop header for loops marked for removal. Note that this prevents
the basic-block from being collected but its index can still be
reused. */
basic_block former_header;
#endif
};
/* Flags for state of loop structure. */

View File

@ -245,12 +245,10 @@ fix_loop_structure (bitmap changed_bbs)
}
/* Remove the loop. */
#ifdef ENABLE_CHECKING
if (loop->header)
loop->former_header = loop->header;
else
gcc_assert (loop->former_header != NULL);
#endif
loop->header = NULL;
flow_loop_tree_node_remove (loop);
}
@ -278,7 +276,6 @@ fix_loop_structure (bitmap changed_bbs)
FOR_EACH_VEC_ELT (*get_loops (cfun), i, loop)
if (loop && loop->header == NULL)
{
#ifdef ENABLE_CHECKING
if (dump_file
&& ((unsigned) loop->former_header->index
< basic_block_info_for_fn (cfun)->length ()))
@ -306,7 +303,6 @@ fix_loop_structure (bitmap changed_bbs)
former_header->loop_father->header->index);
}
}
#endif
(*get_loops (cfun))[i] = NULL;
flow_loop_free (loop);
}