Commit e7206ab1 by Alexandre Oliva Committed by Alexandre Oliva

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
parent 375e3d07
2012-08-01 Alexandre Oliva <aoliva@redhat.com> 2012-08-01 Alexandre Oliva <aoliva@redhat.com>
PR debug/52983 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, * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally,
falling back to copy_rtx on non-autoinc machines. falling back to copy_rtx on non-autoinc machines.
(propagate_for_debug_subst): Always use cleanup_auto_inc_dec. (propagate_for_debug_subst): Always use cleanup_auto_inc_dec.
......
...@@ -388,7 +388,7 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno, ...@@ -388,7 +388,7 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno,
breg = NULL; breg = NULL;
/* Cool, it's the same REG, we can use SRC. */ /* Cool, it's the same REG, we can use SRC. */
else if (dest == reg) else if (dest == reg)
breg = copy_rtx (src); breg = cleanup_auto_inc_dec (src, VOIDmode);
else if (REG_P (dest)) else if (REG_P (dest))
{ {
/* Hmm... Something's fishy, we should be setting REG here. */ /* 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, ...@@ -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 /* Ok, it's the same (hardware) REG, but with a different
mode, so SUBREG it. */ mode, so SUBREG it. */
else 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)); GET_MODE (dest));
} }
else if (GET_CODE (dest) == SUBREG) else if (GET_CODE (dest) == SUBREG)
...@@ -427,7 +428,8 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno, ...@@ -427,7 +428,8 @@ dead_debug_insert_temp (struct dead_debug *debug, unsigned int uregno,
breg = NULL; breg = NULL;
/* Yay, we can use SRC, just adjust its mode. */ /* Yay, we can use SRC, just adjust its mode. */
else 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)); GET_MODE (dest));
} }
/* Oh well, we're out of luck. */ /* Oh well, we're out of luck. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment