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

codegen: add handling for undefined phinode values #45155

Merged
merged 1 commit into from
May 11, 2022
Merged

Commits on May 9, 2022

  1. codegen: add handling for undefined phinode values

    The optimization pass often uses values for phi values (and thus by
    extension, also for pi, phic and upsilon values) that are invalid. We
    make sure that these have a null pointer, so that we can detect that
    case at runtime (at the cost of slightly worse code generation for
    them), but it means we need to be very careful to check for that.
    
    This is identical to #39747, which added the equivalent code to the
    other side of the conditional there, but missed some additional
    relevant, but rare, cases that are observed to be possible.
    
    The `emit_isa_and_defined` is derived from the LLVM name for this
    operation: `isa_and_nonnull<T>`.
    
    Secondly, we also optimize `emit_unionmove` to change a bad IR case to a
    better IR form.
    
    Fix #44501
    vtjnash committed May 9, 2022
    Configuration menu
    Copy the full SHA
    97ffa7f View commit details
    Browse the repository at this point in the history