Skip to content

Conversation

@AndyAyersMS
Copy link
Member

Assertion prop uses O2K_CONST_INT for handles, even on 64 bit targets. Make
suitable adjustments to the handle propagation blocking logic.

Problem was introduced in #1593 and exposed by #1309.

Fixes #1777

Assertion prop uses `O2K_CONST_INT` for handles, even on 64 bit targets. Make
suitable adjustments to the handle propagation blocking logic.

Problem was introduced in dotnet#1593 and exposed by dotnet#1309.

Fixes dotnet#1777
@AndyAyersMS
Copy link
Member Author

cc @dotnet/jit-contrib

Copy link
Member

@trylek trylek left a comment

Choose a reason for hiding this comment

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

LGTM, thanks for the lightning-fast turnaround!

Copy link
Contributor

@briansull briansull left a comment

Choose a reason for hiding this comment

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

Looks Good, with one comment

{
return nullptr;
}
#endif
Copy link
Contributor

Choose a reason for hiding this comment

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

You could add an assert here to insure that no change introduces a TYP_LONG witha reloc:

assert((curAssertion->op2.u1.iconFlags & GTF_ICON_HDL_MASK) == 0);

Copy link
Member Author

Choose a reason for hiding this comment

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

How about adding this kind of check to optDebugCheckAssertion?

Copy link
Member Author

Choose a reason for hiding this comment

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

Might make sense to merge this to unblock crossgen2 and add the assert in another PR.

Copy link
Contributor

Choose a reason for hiding this comment

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

I am fine with that

@AndyAyersMS AndyAyersMS merged commit 73f26e0 into dotnet:master Jan 16, 2020
@AndyAyersMS AndyAyersMS deleted the Fix1777 branch January 16, 2020 07:45
AndyAyersMS added a commit to AndyAyersMS/runtime that referenced this pull request Jan 16, 2020
Follow-up from dotnet#1788.

Also remove an arm-only handle block that should now be redundant.
AndyAyersMS added a commit that referenced this pull request Jan 21, 2020
Follow-up from #1788.

Add padding to `AssertionDsc` so that the `iconFlags` no longer overlap with `lconVal`. Assert that `iconFlags` is never set for an O2K_CONST_LONG assertion.

Also remove an arm-only handle block that should now be redundant.
@ghost ghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Checked / debug Crossgen2 fails building 8 framework assemblies due to a JIT assert

4 participants