Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Correct branch folding for HCR guard versioning
This logic has been inadvertently folding the versioning test instead of the original guard since ce45970, which is effectively the same as not versioning the guards. This can be expected to have resulted in slower code than intended. Worse, if there are HCR guards in the loop, then once the fixed-point analysis has determined that it is possible to version them, they must be versioned for correctness. This is because other transformations may rely on the cold side being eliminated from the hot loop. In particular, by failing to version HCR guards, we could privatize mutable fields even though they could be modified by a cold call while the loop is still running.
- Loading branch information