aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2012-08-02 00:34:41 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2012-08-02 00:34:41 +0000
commite7206ab1c324ac4e6a8e4a9d5bf19b1b1d91f68f (patch)
tree7f2b9f6efbbaf7b9cab767316cda235359360667 /gcc
parent375e3d0742b13d703bf9d97ca5f5e6770866f603 (diff)
downloadgcc-e7206ab1c324ac4e6a8e4a9d5bf19b1b1d91f68f.zip
gcc-e7206ab1c324ac4e6a8e4a9d5bf19b1b1d91f68f.tar.gz
gcc-e7206ab1c324ac4e6a8e4a9d5bf19b1b1d91f68f.tar.bz2
re PR debug/52983 (internal compiler error: in df_uses_record, at df-scan.c:3243)
PR debug/52983 * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec. From-SVN: r190063
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/valtrack.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 631f2ee..f0026f2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,6 +1,11 @@
2012-08-01 Alexandre Oliva <aoliva@redhat.com>
PR debug/52983
+ * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec.
+
+2012-08-01 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/52983
* valtrack.c (cleanup_auto_inc_dec): Implement unconditionally,
falling back to copy_rtx on non-autoinc machines.
(propagate_for_debug_subst): Always use cleanup_auto_inc_dec.
diff --git a/gcc/valtrack.c b/gcc/valtrack.c
index 9119cb9..72c49889 100644
--- a/gcc/valtrack.c
+++ b/gcc/valtrack.c
@@ -388,7 +388,7 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno,
breg = NULL;
/* Cool, it's the same REG, we can use SRC. */
else if (dest == reg)
- breg = copy_rtx (src);
+ breg = cleanup_auto_inc_dec (src, VOIDmode);
else if (REG_P (dest))
{
/* Hmm... Something's fishy, we should be setting REG here. */
@@ -406,7 +406,8 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno,
/* Ok, it's the same (hardware) REG, but with a different
mode, so SUBREG it. */
else
- breg = lowpart_subreg (GET_MODE (reg), copy_rtx (src),
+ breg = lowpart_subreg (GET_MODE (reg),
+ cleanup_auto_inc_dec (src, VOIDmode),
GET_MODE (dest));
}
else if (GET_CODE (dest) == SUBREG)
@@ -427,7 +428,8 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno,
breg = NULL;
/* Yay, we can use SRC, just adjust its mode. */
else
- breg = lowpart_subreg (GET_MODE (reg), copy_rtx (src),
+ breg = lowpart_subreg (GET_MODE (reg),
+ cleanup_auto_inc_dec (src, VOIDmode),
GET_MODE (dest));
}
/* Oh well, we're out of luck. */