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: use synthesis to repair some reconstruction issues #84312

Merged
merged 1 commit into from
Apr 4, 2023

Commits on Apr 4, 2023

  1. JIT: use synthesis to repair some reconstruction issues

    In particular, run synthesis in repair mode for cases where there are profile
    counts within the method but zero counts in `fgFirstBB`.
    
    Recall that sparse profiling effectively probes return blocks to determine the
    method entry count.
    
    So the zero-entry but not zero-everywhere case can happen if we have a method
    with a very long running loop plus sparse profiling plus OSR -- we will only
    get profile counts from the instrumented Tier0 method, and it will never return
    (instead it will always escape to an OSR version which will eventually return,
    but that version won't be instrumented).
    
    I originally was a bit more ambitious and ran repair for a broader set of
    reconstruction issues, but lead to a large number of diffs, in part because
    repair doesn't cope well with irreducible loops.
    
    Leaving the entry count zero can have fairly disastrous impact on the quality
    of optimizations done in the method.
    
    Addresses quite a few of the worst-performing benchmarks in dotnet#84264.
    AndyAyersMS committed Apr 4, 2023
    Configuration menu
    Copy the full SHA
    73ed5d9 View commit details
    Browse the repository at this point in the history