diff options
author | Mark Mitchell <mark@codesourcery.com> | 2000-03-19 05:26:48 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2000-03-19 05:26:48 +0000 |
commit | 116eebd67408bc31ca138311c8ac7f4d2389c22f (patch) | |
tree | 7e5085f497fa4f8351b62a15342abb5192c649b0 /gcc/loop.c | |
parent | cd8ed629642bebaa19a2fe544f0c3efcafe835f2 (diff) | |
download | gcc-116eebd67408bc31ca138311c8ac7f4d2389c22f.tar.gz |
emit-rtl.c (remove_unncessary_notes): Check that all NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an...
* emit-rtl.c (remove_unncessary_notes): Check that all
NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
associated NOTE_BLOCK.
* function.h (identify_blocks): Update comments.
(reorder_blocks): Declare.
* function.c (identify_blocks): Don't take paramters.
(reorder_blocks): Don't take parameters.
* loop.h (find_loop_tree_blocks): Remove.
(unroll_block_trees): Likewise.
* loop.c (loop_optimize): Don't call find_loop_tree_blocks. Use
reorder_blocks instead of unroll_block_trees.h
* sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
* stmt.c (find_loop_tree_blocks): Remove.
(unroll_block_trees): Likewise.
* toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
in whole-function mode.
* tree.h (reorder_blocks): Remove declaration.
From-SVN: r32632
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/gcc/loop.c b/gcc/loop.c index f7a12ded4cc..74ff0a6a7fd 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -518,14 +518,6 @@ loop_optimize (f, dumpfile, unroll_p, bct_p) if (uid_luid[i] == 0) uid_luid[i] = uid_luid[i - 1]; - /* If debugging and unrolling loops, we must replicate the tree - nodes corresponding to the BLOCKs inside the loop, so that the - original one to one mapping will remain. We sometimes unroll - loops even when unroll_p is false, so we must always do this when - debugging. */ - if (write_symbols != NO_DEBUG) - find_loop_tree_blocks (); - /* Determine if the function has indirect jump. On some systems this prevents low overhead loop instructions from being used. */ indirect_jump_in_function = indirect_jump_in_function_p (f); @@ -540,9 +532,12 @@ loop_optimize (f, dumpfile, unroll_p, bct_p) scan_loop (loop, unroll_p, bct_p); } - /* Replicate the BLOCKs. */ + /* If there were lexical blocks inside the loop, they have been + replicated. We will now have more than one NOTE_INSN_BLOCK_BEG + and NOTE_INSN_BLOCK_END for each such block. We must duplicate + the BLOCKs as well. */ if (write_symbols != NO_DEBUG) - unroll_block_trees (); + reorder_blocks (); end_alias_analysis (); |