Remove Helper Method Frames (HMF) from Reflection#109996
Remove Helper Method Frames (HMF) from Reflection#109996AaronRobinsonMSFT merged 12 commits intodotnet:mainfrom
Conversation
|
@EgorBot -intel -arm64 -perf |
|
@EgorBot -x64 -arm64 -profiler using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
public class Bench
{
struct S;
[Benchmark]
public Type Nested() => typeof(S).DeclaringType;
[Benchmark]
public Type NotNested() => typeof(Bench).DeclaringType;
[Benchmark]
public Type RefElementType() => typeof(Bench[]).GetElementType();
[Benchmark]
public Type ValueElementType() => typeof(S[]).GetElementType();
} |
|
@AaronRobinsonMSFT the bot complained that |
|
@EgorBot -x64 -arm64 using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
public class Bench
{
struct S;
[Benchmark]
public Type Nested() => typeof(S).DeclaringType;
[Benchmark]
public Type NotNested() => typeof(Bench).DeclaringType;
[Benchmark]
public Type RefElementType() => typeof(Bench[]).GetElementType();
[Benchmark]
public Type ValueElementType() => typeof(S[]).GetElementType();
} |
|
@EgorBot -x64 -arm64 -profiler using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
public class Bench
{
struct S;
[Benchmark]
public Type RefElementType() => typeof(Bench[]).GetElementType();
[Benchmark]
public Type ValueElementType() => typeof(S[]).GetElementType();
} |
src/coreclr/System.Private.CoreLib/src/System/RuntimeHandles.cs
Outdated
Show resolved
Hide resolved
src/coreclr/System.Private.CoreLib/src/System/RuntimeHandles.cs
Outdated
Show resolved
Hide resolved
|
@jkotas Looks like removing that I'll investigate the x86 leg tomorrow. |
This is failing in all PRs: #110127 |
The failures are caused by the linker assuming that instances of The The problem is caused by the fact that the runtime allocates |
1cd7f1d to
cab3575
Compare
|
/ba-g "Failure is dotnet/dnceng#3879. Not waiting for timeout." |
Convert RuntimeMethodHandle.GetDeclaringType() to managed and QCall. Convert RuntimeTypeHandle.GetElementType() to managed. Correct nullability in signature and usage. Convert RuntimeTypeHandle.GetDeclaringType() to managed and QCalls. Remove GetRuntimeTypeHelper(). Root RuntimeAssembly and RuntimeType constructors.
Convert
RuntimeMethodHandle.GetDeclaringType()to managed and QCall.Convert
RuntimeTypeHandle.GetElementType()to managed.Correct nullability in signature and usage.
Convert
RuntimeTypeHandle.GetDeclaringType()to managed and QCalls.Remove
GetRuntimeTypeHelper().