aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2008-05-29 20:14:19 +0000
committerMichael Matz <matz@suse.de>2008-05-29 20:14:19 +0000
commit45cece950b8813e52e9227f9a80e6a6b9896e030 (patch)
treefbee4b3b986b7aaafb15ab6aaca90b9528553775
parent669ddcdee75f7b701b5aa3dd225919d37b09f04b (diff)
* var-tracking.c (track_expr_p): Also track decls that have
no RTL set. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/var-mappings-branch@136184 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.varmap5
-rw-r--r--gcc/var-tracking.c9
2 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ChangeLog.varmap b/gcc/ChangeLog.varmap
index 3391b638fc8..6ba73cc049e 100644
--- a/gcc/ChangeLog.varmap
+++ b/gcc/ChangeLog.varmap
@@ -1,4 +1,9 @@
2008-05-29 Michael Matz <matz@suse.de>
+
+ * var-tracking.c (track_expr_p): Also track decls that have
+ no RTL set.
+
+2008-05-29 Michael Matz <matz@suse.de>
Richard Guenther <rguenther@suse.de>
* tree-ssa-live.c (remove_unused_scope_block_p): Preserve
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index b8db2692f3e..50564ae10d6 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -1589,11 +1589,6 @@ track_expr_p (tree expr)
if (!DECL_NAME (expr))
return 0;
- /* ... and a RTL assigned to it. */
- decl_rtl = DECL_RTL_IF_SET (expr);
- if (!decl_rtl)
- return 0;
-
/* If this expression is really a debug alias of some other declaration, we
don't need to track this expression if the ultimate declaration is
ignored. */
@@ -1617,6 +1612,10 @@ track_expr_p (tree expr)
if (TREE_STATIC (realdecl))
return 0;
+ decl_rtl = DECL_RTL_IF_SET (expr);
+ if (!decl_rtl)
+ return 1;
+
/* When the EXPR is a DECL for alias of some variable (see example)
the TREE_STATIC flag is not used. Disable tracking all DECLs whose
DECL_RTL contains SYMBOL_REF.