re PR bootstrap/44255 (gcc-4.6-20100522 bootstrap comparison failure on sparc64 and arm)
PR bootstrap/44255 * combine.c (struct rtx_subst_pair): Define unconditionally. (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC, copy_rtx pair->to instead of cleanup_auto_inc_dec it. Call make_compound_operation on pair->to. (propagate_for_debug): Don't call make_compound_operation here. Always use simplify_replace_fn_rtx. From-SVN: r159952
This commit is contained in:
parent
1b408ba139
commit
47027bf398
|
@ -1,4 +1,14 @@
|
|||
2010-05-27 Sterling Augustine <sterling@tensilica.com>
|
||||
2010-05-28 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR bootstrap/44255
|
||||
* combine.c (struct rtx_subst_pair): Define unconditionally.
|
||||
(propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
|
||||
copy_rtx pair->to instead of cleanup_auto_inc_dec it.
|
||||
Call make_compound_operation on pair->to.
|
||||
(propagate_for_debug): Don't call make_compound_operation here.
|
||||
Always use simplify_replace_fn_rtx.
|
||||
|
||||
2010-05-27 Sterling Augustine <sterling@tensilica.com>
|
||||
|
||||
* doc/invoke.texi (xtensa options): Add -mforce-no-pic.
|
||||
* config/xtensa/xtensa.c (override_options): Check
|
||||
|
|
|
@ -2271,6 +2271,7 @@ cleanup_auto_inc_dec (rtx src, bool after, enum machine_mode mem_mode)
|
|||
|
||||
return x;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Auxiliary data structure for propagate_for_debug_stmt. */
|
||||
|
||||
|
@ -2294,12 +2295,16 @@ propagate_for_debug_subst (rtx from, const_rtx old_rtx, void *data)
|
|||
if (!pair->adjusted)
|
||||
{
|
||||
pair->adjusted = true;
|
||||
#ifdef AUTO_INC_DEC
|
||||
pair->to = cleanup_auto_inc_dec (pair->to, pair->after, VOIDmode);
|
||||
#else
|
||||
pair->to = copy_rtx (pair->to);
|
||||
#endif
|
||||
pair->to = make_compound_operation (pair->to, SET);
|
||||
return pair->to;
|
||||
}
|
||||
return copy_rtx (pair->to);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Replace occurrences of DEST with SRC in DEBUG_INSNs between INSN
|
||||
and LAST. If MOVE holds, debug insns must also be moved past
|
||||
|
@ -2309,16 +2314,12 @@ static void
|
|||
propagate_for_debug (rtx insn, rtx last, rtx dest, rtx src, bool move)
|
||||
{
|
||||
rtx next, move_pos = move ? last : NULL_RTX, loc;
|
||||
bool first_p;
|
||||
|
||||
#ifdef AUTO_INC_DEC
|
||||
struct rtx_subst_pair p;
|
||||
p.to = src;
|
||||
p.adjusted = false;
|
||||
p.after = move;
|
||||
#endif
|
||||
|
||||
first_p = true;
|
||||
next = NEXT_INSN (insn);
|
||||
while (next != last)
|
||||
{
|
||||
|
@ -2326,17 +2327,8 @@ propagate_for_debug (rtx insn, rtx last, rtx dest, rtx src, bool move)
|
|||
next = NEXT_INSN (insn);
|
||||
if (DEBUG_INSN_P (insn))
|
||||
{
|
||||
if (first_p)
|
||||
{
|
||||
src = make_compound_operation (src, SET);
|
||||
first_p = false;
|
||||
}
|
||||
#ifdef AUTO_INC_DEC
|
||||
loc = simplify_replace_fn_rtx (INSN_VAR_LOCATION_LOC (insn),
|
||||
dest, propagate_for_debug_subst, &p);
|
||||
#else
|
||||
loc = simplify_replace_rtx (INSN_VAR_LOCATION_LOC (insn), dest, src);
|
||||
#endif
|
||||
if (loc == INSN_VAR_LOCATION_LOC (insn))
|
||||
continue;
|
||||
INSN_VAR_LOCATION_LOC (insn) = loc;
|
||||
|
|
Loading…
Reference in New Issue