+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.
+
2012-08-01 Alexandre Oliva <aoliva@redhat.com>
PR debug/52983
/* Replace auto-increment addressing modes with explicit operations to access
the same addresses without modifying the corresponding registers. */
-#ifdef AUTO_INC_DEC
static rtx
cleanup_auto_inc_dec (rtx src, enum machine_mode mem_mode ATTRIBUTE_UNUSED)
{
rtx x = src;
+#ifdef AUTO_INC_DEC
const RTX_CODE code = GET_CODE (x);
int i;
const char *fmt;
= cleanup_auto_inc_dec (XVECEXP (src, i, j), mem_mode);
}
+#else /* !AUTO_INC_DEC */
+ x = copy_rtx (x);
+#endif /* !AUTO_INC_DEC */
+
return x;
}
-#endif
/* Auxiliary data structure for propagate_for_debug_stmt. */
if (!pair->adjusted)
{
pair->adjusted = true;
-#ifdef AUTO_INC_DEC
pair->to = cleanup_auto_inc_dec (pair->to, VOIDmode);
-#else
- pair->to = copy_rtx (pair->to);
-#endif
pair->to = make_compound_operation (pair->to, SET);
return pair->to;
}