Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Treat EDI as killed by MaskMove #17673

Merged
merged 1 commit into from
Apr 21, 2018
Merged

Treat EDI as killed by MaskMove #17673

merged 1 commit into from
Apr 21, 2018

Conversation

CarolEidt
Copy link

It should really only be a fixed reference, not a kill, but if the reference is changed by LinearScan::resolveConflictingDefAndUse() it can fail to cause the value in EDI to be killed.

@CarolEidt
Copy link
Author

@dotnet/jit-contrib PTAL
cc @fiigii

@fiigii
Copy link

fiigii commented Apr 19, 2018

Thanks for the work!!

Copy link

@BruceForstall BruceForstall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Though it would be useful for there to be some comment in the code about why NI_SSE2_MaskMove needs this.

@fiigii
Copy link

fiigii commented Apr 20, 2018

Will this PR be merged in 2.1?

It should really only be a fixed reference, not a kill, but if the reference is changed by `LinearScan::resolveConflictingDefAndUse()` it can fail to cause the value in EDI to be killed.

Fix #17634
@CarolEidt
Copy link
Author

Will this PR be merged in 2.1?

No, I am not planning to submit this for consideration to be ported to 2.1. Here is my reasoning for this:

  • First, this is unlikely to occur in a non-stress mode of the register allocator, which is what caused a lclVar to be put in edi even though there was a FixedRef within its range.
  • Second, this is a bug limited to a single hardware intrinsic that is currently an experimental release.

@fiigii
Copy link

fiigii commented Apr 20, 2018

Got it, thanks for the detailed explanation.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants