]> git.ipfire.org Git - thirdparty/gcc.git/commit
target/113255 - avoid REG_POINTER on a pointer difference
authorRichard Biener <rguenther@suse.de>
Thu, 1 Feb 2024 12:54:11 +0000 (13:54 +0100)
committerRichard Biener <rguenther@suse.de>
Mon, 5 Feb 2024 07:35:32 +0000 (08:35 +0100)
commit5b281946c4b51132caf5e5b64c730fef92dd6123
tree92dee87e545e944eaf565a0aae625aead1bcfec3
parent91e09b3a7e9c86bb29fc138744fd2e087216733c
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.
gcc/config/i386/i386-expand.cc