RegAllocGreedy: Roll back successful recolorings on failure
This is a replacement for the original fix attempted in c46aab01. This fixes "overlapping insert" assertion failures when trying to unwind an unsuccessful recoloring attempt. The problem would occur when there are multiple recoloring candidates which recursively required recoloring. If one recoloring candidate was successfully recolored at one level, and the next recoloring candidate was unsuccessful, we would not roll back the first candidates successful recoloring. The forgotten successful recoloring may have been assigned to something that conflicts with a register that needs to be restored in a parent recoloring attempt. See the testcase added in issue48473 for a more concrete example with explanation.
Loading
Please sign in to comment