tree-ssa-live.c (remove_unused_scope_block_p): Keep variables that have value exprs.
* tree-ssa-live.c (remove_unused_scope_block_p): Keep variables that have value exprs. From-SVN: r148161
This commit is contained in:
parent
78bd9046a8
commit
2ce59df73d
|
@ -1,3 +1,8 @@
|
|||
2009-06-04 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
|
||||
that have value exprs.
|
||||
|
||||
2009-06-04 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* dwarf2asm.c (dw2_force_const_mem): Defer creation of
|
||||
|
|
|
@ -435,6 +435,17 @@ remove_unused_scope_block_p (tree scope)
|
|||
will be output to file. */
|
||||
if (TREE_CODE (*t) == FUNCTION_DECL)
|
||||
unused = false;
|
||||
|
||||
/* If a decl has a value expr, we need to instantiate it
|
||||
regardless of debug info generation, to avoid codegen
|
||||
differences in memory overlap tests. update_equiv_regs() may
|
||||
indirectly call validate_equiv_mem() to test whether a
|
||||
SET_DEST overlaps with others, and if the value expr changes
|
||||
by virtual register instantiation, we may get end up with
|
||||
different results. */
|
||||
else if (TREE_CODE (*t) == VAR_DECL && DECL_HAS_VALUE_EXPR_P (*t))
|
||||
unused = false;
|
||||
|
||||
/* Remove everything we don't generate debug info for. */
|
||||
else if (DECL_IGNORED_P (*t))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue