[3.2.4 / Bug Fix] Cherry-picked Register Allocator fixes
Summary
This merge request cherry-picks the commits from !1049 (merged) (with some conflict resolution) and !1073 (merged) (merged into the first commit for simplicity) so the Register Allocator bug is also fixed in 3.2.4, since it's been around for a while.
System
- Processor architecture: Cross-platform
What is the current bug behavior?
In rare circumstances, the register allocator would get confused and potentially reallocate a register that is still in use, causing bad code to be generated.
What is the behavior after applying this patch?
The register allocator should no longer make such a mistake.
Relevant logs and/or screenshots
See !1049 (merged).