Skip to content
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

JIT: Switch StaysWithinManagedObject to peel offsets from VNs #105169

Merged

Commits on Jul 19, 2024

  1. JIT: Switch StaysWithinManagedObject to peel offsets from VNs

    The SCEV analysis does not care about the value of something once it is
    seen to be invariant inside the loop we are currently analyzing. This
    was problematic for this logic that tries to peel additions away from
    offsets; for arm64, we may have hoisted `array + 0x10` outside the loop,
    which would cause us to fail to get back to the base array.
    
    Switch the reasoning to use VNs and peel the offsets from the VNs
    instead.
    
    No x64 diffs are expected as we do not hoist the `array + 0x10` out of
    the loop there. Improvements expected on arm64 where we can now prove
    that a "full" strength reduction is allowable more often.
    jakobbotsch committed Jul 19, 2024
    Configuration menu
    Copy the full SHA
    622c8e4 View commit details
    Browse the repository at this point in the history