diff options
author | Doug Evans <dje@gnu.org> | 1995-02-13 22:26:49 +0000 |
---|---|---|
committer | Doug Evans <dje@gnu.org> | 1995-02-13 22:26:49 +0000 |
commit | 49b6c81e4802fddab0a7072d4c02e5cb79edb5a5 (patch) | |
tree | 7bcc92a6dca77b2a601f3e6c2a5c542dc29f4625 /gcc/flow.c | |
parent | 7d9614e0d684d7db15ccbd9948a85d0a141d2ea8 (diff) | |
download | gcc-49b6c81e4802fddab0a7072d4c02e5cb79edb5a5.zip gcc-49b6c81e4802fddab0a7072d4c02e5cb79edb5a5.tar.gz gcc-49b6c81e4802fddab0a7072d4c02e5cb79edb5a5.tar.bz2 |
(find_basic_blocks): Revise calculation of when to make another pass.
From-SVN: r8945
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -647,6 +647,9 @@ find_basic_blocks (f, nonlocal_label_list) looks for loop begin/end notes. */ if (basic_block_head[i] != basic_block_end[i]) { + /* It would be quicker to delete all of these with a single + unchaining, rather than one at a time, but we need to keep + the NOTE's. */ insn = NEXT_INSN (basic_block_head[i]); while (insn != basic_block_end[i]) { @@ -730,11 +733,13 @@ find_basic_blocks (f, nonlocal_label_list) another pass for the pathalogical case, we can greatly speed up their compilation without hurting normal code. This works because all the insns in the unreachable blocks have either been deleted or - turned into notes. */ + turned into notes. + Note that we're talking about reducing memory usage by 10's of + megabytes and reducing compilation time by several minutes. */ /* ??? The choice of when to make another pass is a bit arbitrary, and was derived from empirical data. */ if (pass == 1 - && (deleted > n_basic_blocks / 2 || deleted > 1000)) + && deleted > 200) { pass++; n_basic_blocks -= deleted; |