Commit 370adb7b by Jan Hubicka Committed by Jan Hubicka

re PR middle-end/28071 (A file that can not be compiled in reasonable time/space)


	PR rtl-optimization/28071
	* cfgrtl.c (rtl_delete_block): Free regsets.
	* flow.c (allocate_bb_life_data): Re-use regsets if available.

From-SVN: r115810
parent 76ebb8de
2006-07-28 Jan Hubicka <jh@suse.cz>
PR rtl-optimization/28071
* cfgrtl.c (rtl_delete_block): Free regsets.
* flow.c (allocate_bb_life_data): Re-use regsets if available.
2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
* Makefile.in: Use $(HEADER_H) instead of header.h in dependencies * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
......
...@@ -386,6 +386,13 @@ rtl_delete_block (basic_block b) ...@@ -386,6 +386,13 @@ rtl_delete_block (basic_block b)
/* Selectively delete the entire chain. */ /* Selectively delete the entire chain. */
BB_HEAD (b) = NULL; BB_HEAD (b) = NULL;
delete_insn_chain (insn, end); delete_insn_chain (insn, end);
if (b->il.rtl->global_live_at_start)
{
FREE_REG_SET (b->il.rtl->global_live_at_start);
FREE_REG_SET (b->il.rtl->global_live_at_end);
b->il.rtl->global_live_at_start = NULL;
b->il.rtl->global_live_at_end = NULL;
}
} }
/* Records the basic block struct in BLOCK_FOR_INSN for every insn. */ /* Records the basic block struct in BLOCK_FOR_INSN for every insn. */
......
...@@ -1564,8 +1564,16 @@ allocate_bb_life_data (void) ...@@ -1564,8 +1564,16 @@ allocate_bb_life_data (void)
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb) FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
{ {
bb->il.rtl->global_live_at_start = ALLOC_REG_SET (&reg_obstack); if (bb->il.rtl->global_live_at_start)
bb->il.rtl->global_live_at_end = ALLOC_REG_SET (&reg_obstack); {
CLEAR_REG_SET (bb->il.rtl->global_live_at_start);
CLEAR_REG_SET (bb->il.rtl->global_live_at_end);
}
else
{
bb->il.rtl->global_live_at_start = ALLOC_REG_SET (&reg_obstack);
bb->il.rtl->global_live_at_end = ALLOC_REG_SET (&reg_obstack);
}
} }
regs_live_at_setjmp = ALLOC_REG_SET (&reg_obstack); regs_live_at_setjmp = ALLOC_REG_SET (&reg_obstack);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment