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

JIT: use stress mode tail call validation info for implicit tail calls#25093

Merged
AndyAyersMS merged 1 commit intodotnet:masterfrom
AndyAyersMS:FixTailCallStressInvalidIL
Jun 12, 2019
Merged

JIT: use stress mode tail call validation info for implicit tail calls#25093
AndyAyersMS merged 1 commit intodotnet:masterfrom
AndyAyersMS:FixTailCallStressInvalidIL

Conversation

@AndyAyersMS
Copy link
Member

If a call site fails tail call stress validation, don't consider it for
implicit tail calling either.

In normal jitting we defer this level of validation until impImportCall
to avoid duplicating work.

This avoids an assert when we have invalid IL.

Fixes #25027.

If a call site fails tail call stress validation, don't consider it for
implicit tail calling either.

In normal jitting we defer this level of validation until impImportCall
to avoid duplicating work.

This avoids an assert when we have invalid IL.

Fixes #25027.
@AndyAyersMS
Copy link
Member Author

@BruceForstall PTAL
cc @dotnet/jit-contrib

There's a more detailed discussion of what was going wrong over in #25027. And some suggestions for revisiting all this tangled logic over in #25094.

Depending on when #24962 lands, we may need to modify this PR or that one so the CoreFx tests that were hitting this are no longer excluded.

No pmi diffs (as expected).

@BruceForstall BruceForstall self-assigned this Jun 11, 2019
@BruceForstall BruceForstall self-requested a review June 11, 2019 22:01
@BruceForstall BruceForstall removed their assignment Jun 11, 2019
Copy link

@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 Fine

@AndyAyersMS
Copy link
Member Author

Looks like the CoreFx exclusion of System.Linq.Expressions.Tests is not stress specific and are there for a Linux timeout. So won't update it here.

@AndyAyersMS AndyAyersMS merged commit a12705b into dotnet:master Jun 12, 2019
@AndyAyersMS AndyAyersMS deleted the FixTailCallStressInvalidIL branch June 12, 2019 01:17
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
dotnet/coreclr#25093)

If a call site fails tail call stress validation, don't consider it for
implicit tail calling either.

In normal jitting we defer this level of validation until impImportCall
to avoid duplicating work.

This avoids an assert when we have invalid IL.

Fixes dotnet/coreclr#25027.

Commit migrated from dotnet/coreclr@a12705b
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.

Assertion failed 'verCurrentState.esStackDepth == 0 && impOpcodeIsCallOpcode(opcode)'

3 participants