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: revise local assertion prop to use bit vectors #94322

Merged

Commits on Nov 2, 2023

  1. JIT: revise local assertion prop to use bit vectors for live assertio…

    …n tracking
    
    Track the set of active local assertions via a bit vector, rather than assuming
    all entries in the table are live.
    
    Doing so required a number of changes in assertion prop to ensure the vector
    is consulted before deciding an assertion is valid.
    
    This will (eventually) allow us to propagate assertions cross-block. For
    now we reset the bit vector and assertion table back to empty at the start
    of each block so nothing propagates past the end of a block.
    
    The table can fill and cause the JIT to miss assertions in very large blocks
    as morph will no longer remove assertions while processing a block. Previously
    this would happen if there were more than 64 live assertions in a block, and
    now it can happen if there are more than 64 assertions in block (so somewhat
    more frequently).
    
    Contributes to dotnet#93246.
    AndyAyersMS committed Nov 2, 2023
    Configuration menu
    Copy the full SHA
    f0b9ee7 View commit details
    Browse the repository at this point in the history