* [libraries] Build lib-runtime-packs for all of mono, not just mobile
* [libraries] Build lib-runtime-packs for all of mono, not just mobile
* [libraries] Remove dotnet and unnecessary files from lib-runtime-packs
* [libraries] Reinclude dotnet and other files into test host
* [libraries] Alternative to excluding dotnet and other files from lib-runtime-packs
* Undo alternative changes for exclude dotnet and other files from lib-runtime-packs
This reverts commit 8cecd66db2024b4dd859212399fb69725c29fdf2.
* BinPlace native libs + runtime into testhost for desktop mono
* Removed comment
* [libraries] Remove redundant condition from ItemGroup in SetupRuntimePackNative
Co-authored-by: Mitchell Hwang <mihw@microsoft.com>
Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
It should be ran as:
mono wasm-tuner.exe --gen-interp-to-native <output file name> <extra assemblies>.
The <extra assemblies> will be searched for pinvoke methods, and their signatures
will be added to the set of supported signatures.
<!--
Thank you for your Pull Request!
If you are new to contributing to Mono, please try to do your best at conforming to our coding guidelines http://www.mono-project.com/community/contributing/coding-guidelines/ but don't worry if you get something wrong. One of the project members will help you to get things landed.
Does your pull request fix any of the existing issues? Please use the following format: Fixes #issue-number
-->
Co-authored-by: vargaz <vargaz@users.noreply.github.com>
* Strip the ILLinkTrim.xml file from System.Private.Xml
The two methods being preserved in System.Private.Xml (CreateSqlReader and GenerateSerializer) are large, and are not necessary when linking a mobile app. These methods only need to be preserved when linking the shared framework. When a normal app is linked, the linker is able to figure out if the two methods are necessary.
Contributes to #35199Fix#30912
* Respond to PR feedback
- Add PreserveDependencyAttribute to SqlXml to be explicit.
- Rename ILLinkTrim.xml to ILLinkTrim_LibraryBuild.xml when it shouldn't be embedded in the resulting assembly.
Now that BitOperations.TrailingZeroCount has a fallback to BSR, the cost of querying Lzcnt.IsSupported before using LZCNT is higher than simply using the fallback. This is a situation very specific to LZCNT because it's most often a one-and-done instruction and the fallback is only very marginally slower.
Note that this change applies only to crossgen, as the hardware intrinsic model differs for crossgen2 and it was decided that this change isn't appropriate for that different model.
- Stop notifying about usage status of AVX2 when using isSubRegisterSIMDType
- This allows use of the Vector2/3/4 simd types in crossgen'd code without fixing whether or not Avx2 is required
Integrate Android into the "Test" workflow, e.g.:
```
./build.sh -os Android -arch arm64 -subset Mono+Libs
cd src/libraries/System.Buffers/tests
dotnet build /p:TargetOS=Android /p:TargetArchitecture=arm64 /t:Test
```
^ should run tests for any test suite on an active device or emulator.
compFastTailCalls is true if COMPlus_FastTailCalls is not 0.
It was introduced in #341 to help with testing:
setting COMPlus_FastTailCalls to 0 forces all tail-prefixed
calls to be dispatched via helpers.
This fixes a subtle bug with checking compFastTailCalls:
it needs to be checked after `fgInitargInfo` has been called in
`fgCanFastTailCall`. `fgInitArgInfo` adds the stub address for VSD calls
and `fgMorphTailCallViaHelpers` then removes it.
This change also factors out the logic for checking whether the call
has byref parameters that must be copied by the caller.
* Remove HW_Flag_UnfixedSIMDSize usages in hwintrinsiclistarm64.h
* Remove HW_Flag_UnfixedSIMDSize usages in hwintrinsiclistxarch.h
* Remove HW_Flag_UnfixedSIMDSize and HWIntrinsicInfo::HasFixedSimdSize() in hwintrinsic.cpp hwintrinsic.h
* Change HWIntrinsicInfo::simdSize type to int and remove all the casts in hwintrinsic.cpp hwintrinsic.h
The whole assembly isn't being trimmed:
```
<!-- Too much private reflection. Do not bother with trimming -->
<ILLinkTrimAssembly>false</ILLinkTrimAssembly>
```
(On top of that, the set_Option that's being kept here is only set via reflection by test code that's not actually built today; it's guarded behind a compilation constant that's not set.)
- Syncronize and correct NeedsAlignedBaseOffset
- Crossgen2 and the runtime had different models for when the base type size needed to be aligned up
- This caused issues for composite crossgen2 builds as the logic was heavily module focussed
- Also, the IsInSameVersionBubble logic was non-functional for composite build
The new algorithm is similar to the old normal R2R rule, with the extension that alignment isn't required in the case of a type which has layout dependent on multiple modules if all of the modules involved are part of the same compilation. (Thus composite compilation is slightly more optimized).
The other rule which must be enforced to allow for inputbubble compilation is that all assemblies depended on by an input bubble compilation must be R2R compiled.
- Add testing for many different variations of compiling the tests with
crossgen, crossgen2, and crossgen2 with input bubble enabled/disable and various composite compilation arrangements.
- Fix R2RDump for composite images
- Fix R2RDump for various fixup types
* Optimize Uri.GetHashCode
* Don't use case-insensitive string hashing when not necessary
* Don't expect Uri.GetHashCode to always be case-insensitive in tests
* Correct Uri.Equals test
Hash codes being equal doesn't mean that the values are equal
* Do not cache Uri GetHashCode
* Simplify Uri.Equals test
Based on Sergey's feedback I'm putting back the alternate JITs
(linuxonjit, protononjit) as they are actively used by the JIT team
in specialized scenarios. I have also pruned the PDB subfolder -
after extensive discussions I tried to be conservative in removing
only those PDB's we believe we don't need in Helix.
Thanks
Tomas