Commit 6cd9e97f by Alexandre Oliva Committed by Alexandre Oliva

tree-ssa-live.c (remove_unused_scope_block_p): Don't change generated code depending on -g.

* tree-ssa-live.c (remove_unused_scope_block_p): Don't change
generated code depending on -g.  Reverts part of 2007-07-26's
patch.

From-SVN: r128932
parent d75a2a99
2007-10-01 Alexandre Oliva <aoliva@redhat.com>
* tree-ssa-live.c (remove_unused_scope_block_p): Don't change
generated code depending on -g. Reverts part of 2007-07-26's
patch.
Local Variables: Local Variables:
mode: change-log mode: change-log
change-log-default-name: "ChangeLog.vta" change-log-default-name: "ChangeLog.vta"
......
...@@ -468,39 +468,10 @@ mark_scope_block_unused (tree scope) ...@@ -468,39 +468,10 @@ mark_scope_block_unused (tree scope)
static bool static bool
remove_unused_scope_block_p (tree scope) remove_unused_scope_block_p (tree scope)
{ {
tree *t, *next; tree *t;
bool unused = !TREE_USED (scope); bool unused = !TREE_USED (scope);
var_ann_t ann;
int nsubblocks = 0; int nsubblocks = 0;
for (t = &BLOCK_VARS (scope); *t; t = next)
{
next = &TREE_CHAIN (*t);
/* Debug info of nested function refers to the block of the
function. */
if (TREE_CODE (*t) == FUNCTION_DECL)
unused = false;
/* When we are outputting debug info, we usually want to output
info about optimized-out variables in the scope blocks.
Exception are the scope blocks not containing any instructions
at all so user can't get into the scopes at first place. */
else if ((ann = var_ann (*t)) != NULL
&& ann->used)
unused = false;
/* When we are not doing full debug info, we however can keep around
only the used variables for cfgexpand's memory packing saving quite
a lot of memory. */
else if (debug_info_level != DINFO_LEVEL_NORMAL
&& debug_info_level != DINFO_LEVEL_VERBOSE)
{
*t = TREE_CHAIN (*t);
next = t;
}
}
for (t = &BLOCK_SUBBLOCKS (scope); *t ;) for (t = &BLOCK_SUBBLOCKS (scope); *t ;)
if (remove_unused_scope_block_p (*t)) if (remove_unused_scope_block_p (*t))
{ {
...@@ -533,12 +504,10 @@ remove_unused_scope_block_p (tree scope) ...@@ -533,12 +504,10 @@ remove_unused_scope_block_p (tree scope)
/* When there is only one subblock, see if it is just wrapper we can /* When there is only one subblock, see if it is just wrapper we can
ignore. Wrappers are not declaring any variables and not changing ignore. Wrappers are not declaring any variables and not changing
abstract origin. */ abstract origin. */
else if (nsubblocks == 1 else if (nsubblocks <= 1
&& (BLOCK_VARS (scope) && (BLOCK_VARS (scope)
|| ((debug_info_level == DINFO_LEVEL_NORMAL || (BLOCK_ABSTRACT_ORIGIN (scope)
|| debug_info_level == DINFO_LEVEL_VERBOSE) != BLOCK_ABSTRACT_ORIGIN (BLOCK_SUPERCONTEXT (scope)))))
&& ((BLOCK_ABSTRACT_ORIGIN (scope)
!= BLOCK_ABSTRACT_ORIGIN (BLOCK_SUPERCONTEXT (scope)))))))
unused = false; unused = false;
return unused; return unused;
} }
......
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