target/113255 - avoid REG_POINTER on a pointer difference
The following avoids re-using a register holding a pointer (and thus might be REG_POINTER) for the result of a pointer difference computation. That might confuse heuristics in (broken) RTL alias analysis which relies on REG_POINTER indicating that we're dealing with one. This alone doesn't fix anything. PR target/113255 * config/i386/i386-expand.cc (expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves): Use a new pseudo for the skipped number of bytes.
This commit is contained in:
parent
91e09b3a7e
commit
5b281946c4
1 changed files with 1 additions and 1 deletions
|
@ -8429,7 +8429,7 @@ expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves (rtx destmem, rtx src
|
|||
/* See how many bytes we skipped. */
|
||||
saveddest = expand_simple_binop (GET_MODE (*destptr), MINUS, saveddest,
|
||||
*destptr,
|
||||
saveddest, 1, OPTAB_DIRECT);
|
||||
NULL_RTX, 1, OPTAB_DIRECT);
|
||||
/* Adjust srcptr and count. */
|
||||
if (!issetmem)
|
||||
*srcptr = expand_simple_binop (GET_MODE (*srcptr), MINUS, *srcptr,
|
||||
|
|
Loading…
Add table
Reference in a new issue