-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP][mono] Add ILLink vector substitutions #79753
Conversation
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label. |
Tagging subscribers to 'linkable-framework': @eerhardt, @vitek-karas, @LakshanF, @sbomer, @joperezr Issue DetailsAdd ILLink substitutions to allow Draft PR should confirm if the runtime works as expected. cc @ivanpovazan
|
/cc @fanyang-mono |
I am trying to understand the impact of this change. According to runtime/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems Line 57 in a21bdff
ILLink.Substitutions.NoArmIntrinsics.xml will only be included, when SupportsArmIntrinsics is false . Does the value of SupportsArmIntrinsics equal to false on iOS?
|
Also, these files are shared between Mono and CoreCLR. I can imagine changing this file would change the behavior of both runtimes. If we want to tailor Mono runtime behavior but not changing CoreCLR, we probably should create a new file. |
@fanyang-mono I believe when targeting iOS devices most of the time the target architecture is arm64, which means that from: runtime/src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems Line 16 in a21bdff
the linker would actually include NoX86Intrinsics.xml
|
Makes sense.
In both scenarios there should a size reduction as some code will be trimmed. |
Finding is that in AOT mode for iOS apps we are not allowed to trim fallback code in |
Add ILLink substitutions to allow
Vector
classes trimming. Size reduction for iOS sample app should be 8%. Similar is done in #79672.Draft PR should confirm if the runtime works as expected.
cc @ivanpovazan