[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).

Merge request reports

Loading