Skip to content

Conversation

@MichalStrehovsky
Copy link
Member

I pulled out the IsValueType part of the generic method into the non-generic method since it doesn't use anything from the generic context. This should be an improvement irrespective of AOT.

Then I made us take the IsValueType path if IsDynamicCodeSupported is false. This has two consequences:

  • Avoids MakeGenericType that may or may not succeed with IsDynamicCodeSupported=false
  • Avoids LINQ expressions in the field case. This is will be a throughput improvement.
  • There might be a small throughput regression for the property case when IsDynamicCodeSupported is false, but we get reliability in return.

Cc @dotnet/ilc-contrib

@eerhardt
Copy link
Member

@dotnet/area-system-xml @HongGit @StephenMolloy @mconnew - any feedback here?

Copy link
Member

@StephenMolloy StephenMolloy left a comment

Choose a reason for hiding this comment

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

lgtm

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants