Skip to content

JIT: clear lvMustInit from dependent locals - #64877

Merged
AndyAyersMS merged 1 commit into
dotnet:mainfrom
AndyAyersMS:Fix64808
Feb 7, 2022
Merged

JIT: clear lvMustInit from dependent locals#64877
AndyAyersMS merged 1 commit into
dotnet:mainfrom
AndyAyersMS:Fix64808

Conversation

@AndyAyersMS

Copy link
Copy Markdown
Member

Their initialization is handled by the parent local.

Closes#64808.

Their initialization is handled by the parent local.
CLosesdotnet#64808.
@ghostghost assigned AndyAyersMSFeb 6, 2022
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 6, 2022
@ghost

ghost commented Feb 6, 2022

Copy link
Copy Markdown

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
Copy Markdown
MemberAuthor

cc @dotnet/jit-contrib

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

@AndyAyersMS

AndyAyersMS commented Feb 7, 2022

Copy link
Copy Markdown
MemberAuthor

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
Copy Markdown
MemberAuthor

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]...xoreax,eaxmov qword ptr [rbp-38H],raxmov qword ptr [rbp-30H],raxmov qword ptr [rbp-38H],raxmov dword ptr [rbp-30H],eax

@AndyAyersMS

Copy link
Copy Markdown
MemberAuthor

Spot checked and all the diffs are like this.

@AndyAyersMS
AndyAyersMS merged commit 2a5602d into dotnet:mainFeb 7, 2022
@ghostghost locked as resolved and limited conversation to collaborators Mar 9, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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

@AndyAyersMS@EgorBo