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

Conversation

@AndyAyersMS
Copy link
Member

Allows element-typed based optimizations for some array cases, say
virtual calls through a string[].

Allows element-typed based optimizations for some array cases, say
virtual calls through a `string[]`.
@AndyAyersMS
Copy link
Member Author

@erozenfeld PTAL
cc @dotnet/jit-contrib

Contributes to #9908.

A few hits in jit pmi diffs (again just a partial corelib because of #20284)

Summary:
(Lower is better)

Total bytes of diff: -183 (0.00% of base)
    diff is an improvement.

Top file regressions by size (bytes):
           4 : Microsoft.CodeAnalysis.CSharp.dasm (0.00% of base)

Top file improvements by size (bytes):
        -132 : System.Private.CoreLib.dasm (0.00% of base)
         -54 : System.Private.Xml.dasm (0.00% of base)
          -1 : NuGet.Packaging.dasm (0.00% of base)

4 total files with size differences (3 improved, 1 regressed), 125 unchanged.

Top method regressions by size (bytes):
          55 : Microsoft.CodeAnalysis.CSharp.dasm - StackOptimizerPass1:IsNestedLocalOfCompoundOperator(ref,ref):bool:this
           3 : System.Private.CoreLib.dasm - ConfigurableArrayPool`1:Rent(int):ref:this (5 methods)
           3 : System.Private.CoreLib.dasm - LockedStack:Trim(int,int,int,int):this (5 methods)

Top method improvements by size (bytes):
         -56 : System.Private.CoreLib.dasm - Associates:AssignAssociates(int,ref,ref):ref
         -56 : System.Private.CoreLib.dasm - TypeBuilder:CreateTypeNoLock():ref:this
         -54 : System.Private.Xml.dasm - Datatype_List:Compare(ref,ref):int:this
         -51 : Microsoft.CodeAnalysis.CSharp.dasm - ConstructedNamedTypeSymbol:TypeParametersMatchTypeArguments(struct,struct):bool
         -26 : System.Private.CoreLib.dasm - RuntimeType:ValidateGenericArguments(ref,ref,ref)

9 total methods with size differences (6 improved, 3 regressed), 191117 unchanged.

objClass = lvaTable[objLcl].lvClassHnd;
*isExact = lvaTable[objLcl].lvClassIsExact;
}
else if (base->OperGet() == GT_ARR_ELEM)
Copy link
Member

Choose a reason for hiding this comment

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

Indentation of the else is off.

Copy link
Member

Choose a reason for hiding this comment

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

Hmm, looks like it's a bug in GitHub diff viewer. It's not showing several lines that I see in the raw file.

Copy link
Member

@erozenfeld erozenfeld left a comment

Choose a reason for hiding this comment

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

LGTM

@AndyAyersMS
Copy link
Member Author

Ubuntu failure is in tracecontrol. this seems to be failing every so often lately (#20299 ?). Am going to ignore.

This CI Run was 4594...

image

@AndyAyersMS AndyAyersMS merged commit bcc4cec into dotnet:master Oct 8, 2018
@AndyAyersMS AndyAyersMS deleted the RecoverArrayElementClass branch October 8, 2018 20:15
@BruceForstall
Copy link

cc @brianrob tracecontrol failures for arm32 Ubuntu test runs

A-And pushed a commit to A-And/coreclr that referenced this pull request Nov 20, 2018
Allows element-typed based optimizations for some array cases, say
virtual calls through a `string[]`.
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.

3 participants