Skip to content

JIT: clear lvMustInit from dependent locals #64877

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

Merged
merged 1 commit into from
Feb 7, 2022

Conversation

AndyAyersMS
Copy link
Member

Their initialization is handled by the parent local.

Closes #64808.

Their initialization is handled by the parent local.

CLoses dotnet#64808.
@ghost ghost assigned AndyAyersMS Feb 6, 2022
@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 6, 2022
@ghost
Copy link

ghost commented Feb 6, 2022

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

Issue Details

Their initialization is handled by the parent local.

Closes #64808.

Author: AndyAyersMS
Assignees: AndyAyersMS
Labels:

area-CodeGen-coreclr

Milestone: -

@AndyAyersMS
Copy link
Member Author

cc @dotnet/jit-contrib

Cleared lvMustInit for some other early-out cases too, just to be consistent.

@AndyAyersMS
Copy link
Member Author

AndyAyersMS commented Feb 7, 2022

Runtime failures look like the current set of usual suspects.

This change caused a handful of diffs which is a little surprising; I want to understand these better before merging.

@AndyAyersMS
Copy link
Member Author

Looks like we were indeed double-initializing in some cases (eg linux, x64)

; Assembly listing for method BenchmarkDotNet.Parameters.ParameterExtractor:GetParameter(System.Collections.Generic.IEnumerable`1[ValueTuple`2],int):System.ValueTuple`2[__Canon,CompareOptions]
...
       xor      eax, eax
       mov      qword ptr [rbp-38H], rax
       mov      qword ptr [rbp-30H], rax
       mov      qword ptr [rbp-38H], rax
       mov      dword ptr [rbp-30H], eax

@AndyAyersMS
Copy link
Member Author

Spot checked and all the diffs are like this.

@AndyAyersMS AndyAyersMS merged commit 2a5602d into dotnet:main Feb 7, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Mar 9, 2022
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Assertion failed 'compiler->opts.IsOSR() || ((genInitStkLclCnt > 0) == hasUntrLcl)'
2 participants