Commit d1aed86b by Alexandre Oliva

Revert patches that should have been installed in the vta branch only.

From-SVN: r128933
parent 6cd9e97f
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:
mode: change-log
change-log-default-name: "ChangeLog.vta"
End:
...@@ -468,10 +468,39 @@ mark_scope_block_unused (tree scope) ...@@ -468,10 +468,39 @@ 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; tree *t, *next;
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))
{ {
...@@ -504,10 +533,12 @@ remove_unused_scope_block_p (tree scope) ...@@ -504,10 +533,12 @@ 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)
|| (BLOCK_ABSTRACT_ORIGIN (scope) || ((debug_info_level == DINFO_LEVEL_NORMAL
!= BLOCK_ABSTRACT_ORIGIN (BLOCK_SUPERCONTEXT (scope))))) || debug_info_level == DINFO_LEVEL_VERBOSE)
&& ((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