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

[release/6.0-rc2] Fix gtCloneExpr when cloning during R2R compilation a GT_ALLOCOBJ node #59438

Merged
merged 3 commits into from
Sep 22, 2021

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Sep 21, 2021

Backport of #59395 to release/6.0-rc2

/cc @davidwrighton

Customer Impact

  • Without this fix cloned expressions with allocations will fail
  • This is most common in profile guided code around devirtualization, but I believe it can occur in other where gtCloneExpr is used
  • Symptom of the failure is a compilation failure during crossgen2
  • This blocks usage of static PGO technology on larger applications which have code patterns like
localVariable.CallSomeVirtualMethod(new SomeType());

Under conditions I am unable to identify that will sometimes cause the JIT to generate data structures vulnerable to this bug if the type of localVariable can be predicted via PGO.

Testing

Standard PR run + targeted testing of the PGO scenario which failed without this fix.

Risk

Low. This fixes a logic error in the jit that would cause prejitting of a method to fail.

…e - Without this fix cloned expressions with allocations will fail - This is most common in profile guided code around devirtualization, but I believe it can occur in other where gtCloneExpr is used - Symptom of the failure is a compilation failure during crossgen2
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 21, 2021
@ghost
Copy link

ghost commented Sep 21, 2021

Tagging subscribers to this area: @JulieLeeMSFT
See info in area-owners.md if you want to be subscribed.

Issue Details

Backport of #59421 to release/6.0-rc2

/cc @davidwrighton @github-actions[bot]

Customer Impact

Testing

Risk

Author: github-actions[bot]
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@davidwrighton davidwrighton changed the title [release/6.0-rc2] [release/6.0] Fix gtCloneExpr when cloning during R2R compilation a GT_ALLOCOBJ node [release/6.0-rc2] Fix gtCloneExpr when cloning during R2R compilation a GT_ALLOCOBJ node Sep 21, 2021
@davidwrighton davidwrighton added the Servicing-consider Issue for next servicing release review label Sep 21, 2021
@JulieLeeMSFT JulieLeeMSFT added this to the 6.0.0 milestone Sep 21, 2021
Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

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

Approved. Please get a code review and we should take for RC2 consideration.

@jeffschwMSFT jeffschwMSFT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Sep 22, 2021
@Anipik Anipik merged commit b700018 into release/6.0-rc2 Sep 22, 2021
@jkotas jkotas deleted the backport/pr-59421-to-release/6.0-rc2 branch September 24, 2021 04:30
@ghost ghost locked as resolved and limited conversation to collaborators Nov 3, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants