re PR debug/52983 (internal compiler error: in df_uses_record, at df-scan.c:3243)
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. From-SVN: r190062
This commit is contained in:
parent
08df6c0db1
commit
375e3d0742
@ -1,3 +1,10 @@
|
|||||||
|
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>
|
2012-08-01 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
PR debug/52983
|
PR debug/52983
|
||||||
|
@ -32,11 +32,11 @@ along with GCC; see the file COPYING3. If not see
|
|||||||
/* Replace auto-increment addressing modes with explicit operations to access
|
/* Replace auto-increment addressing modes with explicit operations to access
|
||||||
the same addresses without modifying the corresponding registers. */
|
the same addresses without modifying the corresponding registers. */
|
||||||
|
|
||||||
#ifdef AUTO_INC_DEC
|
|
||||||
static rtx
|
static rtx
|
||||||
cleanup_auto_inc_dec (rtx src, enum machine_mode mem_mode ATTRIBUTE_UNUSED)
|
cleanup_auto_inc_dec (rtx src, enum machine_mode mem_mode ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
rtx x = src;
|
rtx x = src;
|
||||||
|
#ifdef AUTO_INC_DEC
|
||||||
const RTX_CODE code = GET_CODE (x);
|
const RTX_CODE code = GET_CODE (x);
|
||||||
int i;
|
int i;
|
||||||
const char *fmt;
|
const char *fmt;
|
||||||
@ -117,9 +117,12 @@ cleanup_auto_inc_dec (rtx src, enum machine_mode mem_mode ATTRIBUTE_UNUSED)
|
|||||||
= cleanup_auto_inc_dec (XVECEXP (src, i, j), mem_mode);
|
= cleanup_auto_inc_dec (XVECEXP (src, i, j), mem_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else /* !AUTO_INC_DEC */
|
||||||
|
x = copy_rtx (x);
|
||||||
|
#endif /* !AUTO_INC_DEC */
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Auxiliary data structure for propagate_for_debug_stmt. */
|
/* Auxiliary data structure for propagate_for_debug_stmt. */
|
||||||
|
|
||||||
@ -142,11 +145,7 @@ propagate_for_debug_subst (rtx from, const_rtx old_rtx, void *data)
|
|||||||
if (!pair->adjusted)
|
if (!pair->adjusted)
|
||||||
{
|
{
|
||||||
pair->adjusted = true;
|
pair->adjusted = true;
|
||||||
#ifdef AUTO_INC_DEC
|
|
||||||
pair->to = cleanup_auto_inc_dec (pair->to, VOIDmode);
|
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);
|
pair->to = make_compound_operation (pair->to, SET);
|
||||||
return pair->to;
|
return pair->to;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user