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: enable cloning based on loop invariant type tests #70377

Merged
merged 2 commits into from
Jun 8, 2022

Commits on Jun 7, 2022

  1. JIT: enable cloning based on loop invariant type tests

    Such as those added by GDV.
    
    The JIT will now clone just for type tests, or just for array bounds, or for
    a mixture of the two. The JIT will still produce just one fast and one slow loop.
    If there are a mixture of array bounds and type test conditions, all conditions
    must pass for control to reach the fast loop.
    
    Unlike array bounds checks, type test failures are not intrinsically rare,
    so there is some profitability screening to ensure that a failed type test does
    not force execution to run the slow version "too often". The type test must
    execute frequently within the loop, and be heavily biased towards success.
    
    This is work towards resolving dotnet#65206.
    AndyAyersMS committed Jun 7, 2022
    Configuration menu
    Copy the full SHA
    3da009f View commit details
    Browse the repository at this point in the history
  2. review feedback

    AndyAyersMS committed Jun 7, 2022
    Configuration menu
    Copy the full SHA
    12b5d5b View commit details
    Browse the repository at this point in the history