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: Make effect handling in lowering less conservative #92710

Merged
merged 5 commits into from
Sep 29, 2023

Commits on Sep 27, 2023

  1. JIT: Make effect handling in lowering less conservative

    The interference checking in lowering bases some of its checks on
    GenTree::gtFlags. This is conservative since it includes effect flags of
    operands. For LIR this does not really make sense and ends up being
    conservative.
    
    This PR replaces the relevant uses of gtFlags with a new
    GenTree::OperEffects() that computes the relevant effect flags for the
    node, excluding operands. We already know how to recompute effect flags
    other than GTF_GLOB_REF and GTF_ORDER_SIDEEFF. This PR adds functions
    for these as well (the GTF_GLOB_REF version
    GenTree::OperRequiresGlobRefFlag is courtesy of @SingleAccretion).
    
    For GTF_ORDER_SIDEEFF we add a GenTree::OperSupportsOrderingSideEffect
    which captures explicitly (and conservatively) the current cases where
    we are setting the flag, and only allows these cases to support the
    flag. Setting the flag for other cases may result in the flag being
    removed or ignored.
    
    Fix dotnet#92699
    jakobbotsch committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    68321b2 View commit details
    Browse the repository at this point in the history
  2. Fix build

    jakobbotsch committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    25324a2 View commit details
    Browse the repository at this point in the history

Commits on Sep 28, 2023

  1. Address some feedback

    jakobbotsch committed Sep 28, 2023
    Configuration menu
    Copy the full SHA
    d28c644 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a4d40cd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    52e0247 View commit details
    Browse the repository at this point in the history