Skip to content

Conversation

@AndyAyersMS
Copy link
Member

…relocs

This gives local constant prop the same behavior as value-number-based constant
prop; both now block handle propagation when the jit must generate relocs (R2R),
to ensure that handle references appear only in simple instruction forms like movs.

Prerequisite to #1309, which can enable such propagation.

…relocs

This gives local constant prop the same behavior as value-number-based constant
prop; both now block handle propagation when the jit must generate relocs (R2R),
to ensure that handle references appear only in simple instruction forms like movs.

Prerequisite to dotnet#1309, which can enable such propagation.
@AndyAyersMS
Copy link
Member Author

Semantic change is in optConstantAssertionProp; the rest is just refactoring and comment cleanup.

No diffs for x86/x64, with/without crossgen.

cc @dotnet/jit-contrib

Copy link
Contributor

@CarolEidt CarolEidt left a comment

Choose a reason for hiding this comment

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

Very nice - thanks!

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.

unsigned lclNum = tree->AsLclVarCommon()->GetLclNum();
const unsigned lclNum = tree->GetLclNum();

#if FEATURE_ANYCSE
Copy link
Contributor

Choose a reason for hiding this comment

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

We will probably want to delete all occurrences of FEATURE_ANYCSE as some point in the future.

@AndyAyersMS
Copy link
Member Author

Failures all seem to be infrastructure related:

Microsoft.DotNet.Helix.Sdk.MultiQueue.targets(53,5): error : RestApiException: The response contained an invalid status code 500 Internal Server Error

is this worth retrying? Reporting?

@AndyAyersMS
Copy link
Member Author

Everything has passed on re-run so am going to merge.

@AndyAyersMS AndyAyersMS merged commit 3c0cea3 into dotnet:master Jan 10, 2020
@AndyAyersMS AndyAyersMS deleted the BlockConstantPropagationOfHandles branch January 10, 2020 18:31
AndyAyersMS added a commit to AndyAyersMS/runtime that referenced this pull request Jan 10, 2020
AndyAyersMS added a commit to AndyAyersMS/runtime that referenced this pull request Jan 16, 2020
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 added a commit that referenced this pull request Jan 16, 2020
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
@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.

3 participants