diff options
author | Michael Matz <matz@suse.de> | 2008-05-29 20:14:19 +0000 |
---|---|---|
committer | Michael Matz <matz@suse.de> | 2008-05-29 20:14:19 +0000 |
commit | 45cece950b8813e52e9227f9a80e6a6b9896e030 (patch) | |
tree | fbee4b3b986b7aaafb15ab6aaca90b9528553775 | |
parent | 669ddcdee75f7b701b5aa3dd225919d37b09f04b (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.varmap | 5 | ||||
-rw-r--r-- | gcc/var-tracking.c | 9 |
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. |