mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-25 16:50:49 +08:00
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
This commit is contained in:
parent
76ebb8de00
commit
370adb7b5d
@ -1,3 +1,9 @@
|
||||
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>
|
||||
|
||||
* Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
|
||||
|
@ -386,6 +386,13 @@ rtl_delete_block (basic_block b)
|
||||
/* Selectively delete the entire chain. */
|
||||
BB_HEAD (b) = NULL;
|
||||
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. */
|
||||
|
12
gcc/flow.c
12
gcc/flow.c
@ -1564,8 +1564,16 @@ allocate_bb_life_data (void)
|
||||
|
||||
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
|
||||
{
|
||||
bb->il.rtl->global_live_at_start = ALLOC_REG_SET (®_obstack);
|
||||
bb->il.rtl->global_live_at_end = ALLOC_REG_SET (®_obstack);
|
||||
if (bb->il.rtl->global_live_at_start)
|
||||
{
|
||||
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 (®_obstack);
|
||||
bb->il.rtl->global_live_at_end = ALLOC_REG_SET (®_obstack);
|
||||
}
|
||||
}
|
||||
|
||||
regs_live_at_setjmp = ALLOC_REG_SET (®_obstack);
|
||||
|
Loading…
x
Reference in New Issue
Block a user