-
Notifications
You must be signed in to change notification settings - Fork 37
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
Try manually assigning registers #68
Comments
Could you elaborate on the problem you've seen with the |
This issue comes from @chriso saying there may be dependencies being created between YMM registers that could be avoiding by manually picking registers: #58 (comment). I haven't looked closely at what dependencies exist today though, so I don't know if there is an actual problem. I'd be happy to open an issue on
I'm curious why Y15 wasn't used. At first glance I'm a little surprised to have registers like |
Ah, okay, so it's not failing to find an allocation, but you think a different allocation would improve performance. Regarding Y15, I think the algorithm as written will use the minimum number of registers it can, so that should be equal to the max number of live variables at any point. In your case that must be 15, so the highest used is Y14. I can't remember the precise implementation, but it's picking an allocation from a pool of available registers. Perhaps changing this logic to LRU would approximate what you're looking for, and minimize dependencies. There's likely a ton of research on this that I should read up on. The original allocator was intended to be simple. |
#58 (comment)
The text was updated successfully, but these errors were encountered: