diff options
author | Jan Hubicka <jh@suse.cz> | 2006-07-29 15:14:22 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2006-07-29 13:14:22 +0000 |
commit | 370adb7b5dcde35845e0d7b43cf05628a6193c7a (patch) | |
tree | 331dc480555ba8c366d3435b80e94c76d4cc12f0 /gcc/cfgrtl.c | |
parent | 76ebb8de0046b5bbdb13c086618be11becd964d1 (diff) | |
download | gcc-370adb7b5dcde35845e0d7b43cf05628a6193c7a.zip gcc-370adb7b5dcde35845e0d7b43cf05628a6193c7a.tar.gz gcc-370adb7b5dcde35845e0d7b43cf05628a6193c7a.tar.bz2 |
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
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r-- | gcc/cfgrtl.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 723e323..b07bb94 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -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. */ |