aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKai Tietz <ktietz@redhat.com>2014-11-12 21:04:50 +0100
committerKai Tietz <ktietz@gcc.gnu.org>2014-11-12 21:04:50 +0100
commit7eb0def89e57086611a044febf906ffd3e515c3a (patch)
tree4f4d316cdf8f1b58caaa2fcd713ff9b7795ec4d8 /gcc
parentd8af84e67b08377cf813eb4d4bbf8ae2e8226fa1 (diff)
downloadgcc-7eb0def89e57086611a044febf906ffd3e515c3a.zip
gcc-7eb0def89e57086611a044febf906ffd3e515c3a.tar.gz
gcc-7eb0def89e57086611a044febf906ffd3e515c3a.tar.bz2
sdbout.c (sdbout_symbol): Eliminate register only if decl isn't a global variable.
2014-11-12 Kai Tietz <ktietz@redhat.com> * sdbout.c (sdbout_symbol): Eliminate register only if decl isn't a global variable. From-SVN: r217443
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/sdbout.c11
2 files changed, 12 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2eb6f35..8b98649 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2014-11-12 Kai Tietz <ktietz@redhat.com>
+
+ * sdbout.c (sdbout_symbol): Eliminate register only
+ if decl isn't a global variable.
+
2014-11-12 Alan Lawrence <alan.lawrence@arm.com>
* config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
diff --git a/gcc/sdbout.c b/gcc/sdbout.c
index 7b6f457..4cea780 100644
--- a/gcc/sdbout.c
+++ b/gcc/sdbout.c
@@ -739,13 +739,16 @@ sdbout_symbol (tree decl, int local)
if (!DECL_RTL_SET_P (decl))
return;
- SET_DECL_RTL (decl,
- eliminate_regs (DECL_RTL (decl), VOIDmode, NULL_RTX));
+ value = DECL_RTL (decl);
+
+ if (!is_global_var (decl))
+ value = eliminate_regs (value, VOIDmode, NULL_RTX);
+
+ SET_DECL_RTL (decl, value);
#ifdef LEAF_REG_REMAP
if (crtl->uses_only_leaf_regs)
- leaf_renumber_regs_insn (DECL_RTL (decl));
+ leaf_renumber_regs_insn (value);
#endif
- value = DECL_RTL (decl);
/* Don't mention a variable at all
if it was completely optimized into nothingness.