Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@marek-safar
Copy link
Member

@marek-safar marek-safar commented Nov 22, 2019

  1. Removed icalls where intrinsic version for the method exists

  2. Add [Intrinsic] attribute to methods which have runtime intrinsic
    to make them easier to track and to tell linker not to analyze them

  3. Use recursive syntax for any intrinsic which can be called via
    reflection to correctly apply the intrinsic when invoked.

public static bool IsSupported { get => IsSupported; }

When one calls X86.IsSupported, the call gets replaced by an
intrinsics. When one calls it with an Invoke, the body of IsSupported
gets replaced by intrinsics. It's just a hack to get Invoke support for free.

1. Removed icalls where intrinsic version for the method exists

2. Add [Intrinsic] attribute to methods which have runtime intrinsic
   to make them easier to track and to tell linker not to analyze them

3. Use recursive syntax for any intrinsic which can be called via
   reflection to correctly apply the intrinsic when invoked.

```c#
public static bool IsSupported { get => IsSupported; }
```

When one calls X86.IsSupported, the call gets replaced by an
intrinsics. When one calls it with an Invoke, the body of IsSupported
gets replaced by intrinsics. It's just a hack to get Invoke support for free.
@marek-safar
Copy link
Member Author

This is waiting on interpreter update from @lewurm to make it in sync with JIT

@marek-safar marek-safar requested a review from lewurm as a code owner January 2, 2020 14:15
@CoffeeFlux
Copy link
Contributor

Is this good to review now, or are we still waiting on interp changes?

@marek-safar
Copy link
Member Author

This is ready for review

Copy link
Contributor

@lewurm lewurm left a comment

Choose a reason for hiding this comment

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

LGTM. Created a tracking issue for the work that needs to be done for the interpreter: #18361

@marek-safar marek-safar merged commit adcd622 into mono:master Jan 7, 2020
@marek-safar marek-safar deleted the build-fixes branch January 7, 2020 10:17
ManickaP pushed a commit to ManickaP/runtime that referenced this pull request Jan 20, 2020
* [System.Private.CoreLib] Cleanup intrinsic tracking

1. Removed icalls where intrinsic version for the method exists

2. Add [Intrinsic] attribute to methods which have runtime intrinsic
   to make them easier to track and to tell linker not to analyze them

3. Use recursive syntax for any intrinsic which can be called via
   reflection to correctly apply the intrinsic when invoked.

```c#
public static bool IsSupported { get => IsSupported; }
```

When one calls X86.IsSupported, the call gets replaced by an
intrinsics. When one calls it with an Invoke, the body of IsSupported
gets replaced by intrinsics. It's just a hack to get Invoke support for free.

* [interp] implement System.Type::op_Equality

* Undo changes which are not yet supported by interpreter

* [interp] Implement System.Runtime.CompilerServices.RuntimeHelpers::OffsetToStringData

Co-authored-by: Bernhard Urban-Forster <[email protected]>


Commit migrated from mono/mono@adcd622
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants