-
Notifications
You must be signed in to change notification settings - Fork 13.4k
[AVR] Remove earlyclobber from LDDRdPtrQ #85277
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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.