Skip to content

[armel] Crossgen2 skip many methods during Version Bubble compilation #44948

@alpencolt

Description

@alpencolt

Description

As we discussed by email, crossgen2 doesn't compile many methods which should compile in Large Version Bubble mode with option compilebubblegenerics .
From @jkotas

  • Methods like GetIndexOfFirstNonAsciiByte_Default that use Vector<T> should be crossgened after Implement concept of unstable ABI into crossgen2 #40820 . If you are running with this change, it sounds like a bug or configuration problem.
  • Methods like SpanHelpers.IndexOf are marked with AggressiveOptimization that prevents them from being precompiled. I think this is just a bug. The reason for them being marked this way should no longer apply after Implement concept of unstable ABI into crossgen2 #40820.
  • Generic instantiations like System.Collections.Concurrent.ConcurrentDictionary`2[System.Int32,System.__Canon] contained within same version bubble are either a bug in crossgen2 or should be taken care of by having PGO data.
  • IL_STUB_PInvoke - these should get fixed by Source generation of ILStub for DllImport #43060.
  • IL_STUB_ReversePInvoke - this should be avoidable by changing the code to take advantage of UnmanagedCallersOnlyAttribute and function pointers.

Configuration

Commit: 855e296
OS: Tizen/armel
Application used for profiling: https://github.com/Samsung/Tizen-CSharp-Samples/tree/master/Wearable/Calculator

Data

Added JIT traces. Remove txt extension and open in PerfView
Calculator-fullni.nettrace.txt
Calculator-fullni_compilebubblegeneric.nettrace.txt
Calculator_crossgen1_fullni.nettrace.txt

cc @jkotas @gbalykov

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions