diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/valtrack.c | 8 |
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. */ |