-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
[asmgen] generate code for stack argument access differently #6651
Conversation
To save excess arguments on the stack, previously we would 1. store the argument using SW with an immediate offset basing from locals-base register. This limits the offset to 12 bits. 2. Store the offset to the first excess argument to the last ARG register so that callee can access these. This PR reverses the order. It stores the offset to the last ARG register first. Then the store of argument to the stack slot can be made without requiring large immediate offsets, basing just on the last ARG register. Fixes #6646
CodSpeed Performance ReportMerging #6651 will degrade performances by 23.99%Comparing Summary
Benchmarks breakdown
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we add the test program from the original issue to our test suite?
Done. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm 👍
To save excess arguments on the stack, previously we would
This PR reverses the order. It stores the offset to the last ARG register first. Then the store of argument to the stack slot can be made without requiring large immediate offsets, basing just on the last ARG register.
Fixes #6646