-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[AVR] Remove earlyclobber from LDDRdPtrQ #85277
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
cc @benshi001, when you have a moment 🙂 |
Thanks for your great work! It looks good to me. Just remove
|
LDDRdPtrQ was marked as earlyclobber, which doesn't play well with GreedyRA (which can generate this instruction through `loadRegFromStackSlot()`). This seems to be the same case as: https://github.com/llvm/llvm-project/blob/a99b912c9b74f6ef91786b4dfbc25160c27d3b41/llvm/lib/Target/AVR/AVRInstrInfo.td#L1421 Closes #81911.
Done! 🚀 I've also tested the changes by compiling rustc locally and simavr-ing a few firmwares, and everything seems to be working correctly 🙂 |
Error: Command failed due to missing milestone. |
Ah, by the way, sorry - I haven't noticed that you've proposed that description after |
LDDRdPtrQ was marked as `earlyclobber`, which doesn't play well with GreedyRA (which can generate this instruction through `loadRegFromStackSlot()`). This seems to be the same case as: https://github.com/llvm/llvm-project/blob/a99b912c9b74f6ef91786b4dfbc25160c27d3b41/llvm/lib/Target/AVR/AVRInstrInfo.td#L1421 Closes llvm#81911. (cherry picked from commit 328cb9b)
Bump the toolchain version to pull in a fix for a recently discovered miscompilation issue [1]. [1]: llvm/llvm-project#85277
Bump the toolchain version to pull in a fix for a recently discovered miscompilation issue [1]. [1]: llvm/llvm-project#85277
Bump the toolchain version to pull in a fix for a recently discovered miscompilation issue [1]. [1]: llvm/llvm-project#85277
LDDRdPtrQ was marked as earlyclobber, which doesn't play well with GreedyRA (which can generate this instruction through
loadRegFromStackSlot()
).This seems to be the same case as:
llvm-project/llvm/lib/Target/AVR/AVRInstrInfo.td
Line 1421 in a99b912
Closes #81911.