Commit 428248f7 by Mark Mitchell Committed by Mark Mitchell

loop.c (loop_optimize): Always find_loop_tree_blocks and unroll_block_trees when…

loop.c (loop_optimize): Always find_loop_tree_blocks and unroll_block_trees when generating debuggable code.

	* loop.c (loop_optimize): Always find_loop_tree_blocks and
	unroll_block_trees when generating debuggable code.

From-SVN: r30647
parent 582db8e4
1999-11-23 Mark Mitchell <mark@codesourcery.com> 1999-11-23 Mark Mitchell <mark@codesourcery.com>
* loop.c (loop_optimize): Always find_loop_tree_blocks and
unroll_block_trees when generating debuggable code.
* tree.h (unsave_expr_1): New function. * tree.h (unsave_expr_1): New function.
(lang_unsave): New variable. (lang_unsave): New variable.
(get_callee_fndecl): New function. (get_callee_fndecl): New function.
......
...@@ -550,8 +550,12 @@ loop_optimize (f, dumpfile, unroll_p, bct_p) ...@@ -550,8 +550,12 @@ loop_optimize (f, dumpfile, unroll_p, bct_p)
if (uid_luid[i] == 0) if (uid_luid[i] == 0)
uid_luid[i] = uid_luid[i - 1]; uid_luid[i] = uid_luid[i - 1];
/* Create a mapping from loops to BLOCK tree nodes. */ /* If debugging and unrolling loops, we must replicate the tree
if (unroll_p && write_symbols != NO_DEBUG) 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 (); find_loop_tree_blocks ();
/* Determine if the function has indirect jump. On some systems /* Determine if the function has indirect jump. On some systems
...@@ -565,10 +569,8 @@ loop_optimize (f, dumpfile, unroll_p, bct_p) ...@@ -565,10 +569,8 @@ loop_optimize (f, dumpfile, unroll_p, bct_p)
scan_loop (loop_number_loop_starts[i], loop_number_loop_ends[i], scan_loop (loop_number_loop_starts[i], loop_number_loop_ends[i],
loop_number_loop_cont[i], unroll_p, bct_p); loop_number_loop_cont[i], unroll_p, bct_p);
/* If debugging and unrolling loops, we must replicate the tree nodes /* Replicate the BLOCKs. */
corresponding to the blocks inside the loop, so that the original one if (write_symbols != NO_DEBUG)
to one mapping will remain. */
if (unroll_p && write_symbols != NO_DEBUG)
unroll_block_trees (); unroll_block_trees ();
end_alias_analysis (); end_alias_analysis ();
......
...@@ -6,8 +6,6 @@ ...@@ -6,8 +6,6 @@
// This causes assember relocation errors // This causes assember relocation errors
// excess errors test - XFAIL *-*-*
struct X struct X
{ {
virtual ~X () {} virtual ~X () {}
......
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