Skip to content

Don't init tracked temps without GC fields. - #49879

Merged
sandreenko merged 1 commit into
dotnet:mainfrom
sandreenko:lessMustInit
Mar 19, 2021
Merged

Don't init tracked temps without GC fields.#49879
sandreenko merged 1 commit into
dotnet:mainfrom
sandreenko:lessMustInit

Conversation

@sandreenko

@sandreenkosandreenko commented Mar 19, 2021

Copy link
Copy Markdown
Contributor

A zero-init elimination improvement suggested by @erozenfeld, fixes most regressions from #48377.

x64 windows crossgen: Total bytes of delta: -1251 (-0.00% of base)
196 total methods with Code Size differences (182 improved, 14 regressed), 200938 unchanged.
x64 windows pmi:
Total bytes of delta: -8436 (-0.02% of base)
667 total methods with Code Size differences (636 improved, 31 regressed), 267575 unchanged.

With this change we have fewer must-init variables, the regressions show cases where we init fewer lclVars but it takes more instructions. For example if before we were initializing 16 bytes with 1 instruction and now we init 14 bytes with 3.

The diffs are in D:\Sergey\logs\diff.liveness.txt
@sandreenkosandreenko added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Mar 19, 2021
@sandreenko

Copy link
Copy Markdown
ContributorAuthor

PTAL @erozenfeld @dotnet/jit-contrib

@erozenfelderozenfeld left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@sandreenko
sandreenko merged commit f7d83ab into dotnet:mainMar 19, 2021
@sandreenko
sandreenko deleted the lessMustInit branch March 19, 2021 20:37
@JulieLeeMSFTJulieLeeMSFT added this to the 6.0.0 milestone Mar 24, 2021
@ghostghost locked as resolved and limited conversation to collaborators Apr 23, 2021
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.

3 participants

@sandreenko@erozenfeld@JulieLeeMSFT