summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-live.c
diff options
context:
space:
mode:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2007-10-02 01:12:19 +0000
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2007-10-02 01:12:19 +0000
commit9ee128846ac073555b0fe1195807d77f605155ac (patch)
treef080e5bc0c41e620117d71d9389c1471cac2ab33 /gcc/tree-ssa-live.c
parenta83c17ce39a912f8076f4a4af63b19a734285407 (diff)
downloadgcc-9ee128846ac073555b0fe1195807d77f605155ac.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128932 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-live.c')
-rw-r--r--gcc/tree-ssa-live.c39
1 files changed, 4 insertions, 35 deletions
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index a78dd9c19eb..4cf6620a759 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -468,39 +468,10 @@ mark_scope_block_unused (tree scope)
static bool
remove_unused_scope_block_p (tree scope)
{
- tree *t, *next;
+ tree *t;
bool unused = !TREE_USED (scope);
- var_ann_t ann;
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 ;)
if (remove_unused_scope_block_p (*t))
{
@@ -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
ignore. Wrappers are not declaring any variables and not changing
abstract origin. */
- else if (nsubblocks == 1
+ else if (nsubblocks <= 1
&& (BLOCK_VARS (scope)
- || ((debug_info_level == DINFO_LEVEL_NORMAL
- || debug_info_level == DINFO_LEVEL_VERBOSE)
- && ((BLOCK_ABSTRACT_ORIGIN (scope)
- != BLOCK_ABSTRACT_ORIGIN (BLOCK_SUPERCONTEXT (scope)))))))
+ || (BLOCK_ABSTRACT_ORIGIN (scope)
+ != BLOCK_ABSTRACT_ORIGIN (BLOCK_SUPERCONTEXT (scope)))))
unused = false;
return unused;
}