Skip to content
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

[NativeAOT-LLVM] Merge may24 #2591

Merged
merged 715 commits into from
May 31, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
715 commits
Select commit Hold shift + click to select a range
08e0f89
Use IndexOf for bounded loops in a regex (#101899)
stephentoub May 6, 2024
38f5daf
[main] Update dependencies from dotnet/runtime, dotnet/runtime-assets…
dotnet-maestro[bot] May 6, 2024
f3014db
Update cdac-build-tool to omit type when it is empty (#101825)
elinor-fung May 6, 2024
a530a1c
Arm64/SVE: Mark operation inside ConditionalSelect as delay-free (#10…
kunalspathak May 6, 2024
91b32f6
JIT: Test RPO-based layout in `libraries-pgo` (#101924)
amanasifkhalid May 6, 2024
5bc4a58
Enable derived COM interfaces to hide base methods with the new keywo…
jtschuster May 6, 2024
1eb888b
Simplify our global new/delete implementations (#101826)
jkoritzinsky May 6, 2024
fbb67a6
Begin transition to dependency framework in illink (#101277)
jtschuster May 6, 2024
1e9c6a8
Enable streaming by default for EventPipe sessions started by environ…
davmason May 6, 2024
dc42750
Arm64/Sve: Some optimizations around loop scenario (#101885)
kunalspathak May 6, 2024
0d818ba
Missing AddRef() in test for IDispatch. (#101943)
AaronRobinsonMSFT May 6, 2024
8608181
Allow async interruptions on safepoints (#95565)
VSadov May 6, 2024
a601bca
[JIT] SVE Cleanup: Merging SVE_AE_3A, SVE_AN_3A, SVE_EP_3A, SVE_ER_3A…
TIHan May 6, 2024
4e626e2
JIT: fix STRESS_BB_PROFILE issue (#101925)
AndyAyersMS May 7, 2024
7dc3669
Improve performance of Debugger.NotifyOfCrossThreadDependency under a…
davmason May 7, 2024
e1c6717
Use REG_INDIRECT_CALL_TARGET_REG for indirect calls on arm64 (#101927)
VSadov May 7, 2024
3c00af9
[mono] Remove unused --arch and --gc switches from driver.c (#101934)
akoeplinger May 7, 2024
a9f43da
[browser] Integrate static web asset endpoints into wasm sdk (#101315)
javiercn May 7, 2024
256f320
[mono] Remove unnecessary indirect use of managed wcslen from AppCont…
kg May 7, 2024
9181d5f
Finish the TypeName cleanup (#101910)
adamsitnik May 7, 2024
40e664e
JIT ARM64-SVE: Add BitwiseClear and BooleanNot (#101853)
a74nh May 7, 2024
4e64b39
Fix LocaleNumber_MeasurementSystem (#101968)
mkhamoyan May 7, 2024
de44b65
Remove Thread::m_pDomain - always the one app domain (#101749)
elinor-fung May 7, 2024
0e5de42
Fix arm64 callee saved register set (#101971)
janvorli May 7, 2024
102dcd1
Switch from arm64 biarch image to Azure Linux image (#101946)
sbomer May 7, 2024
0fb0188
Update dependencies from https://github.com/dotnet/source-build-exter…
dotnet-maestro[bot] May 7, 2024
188b3c4
Declare __cxa_demangle where it's used based on the Itanium ABI inste…
jkoritzinsky May 8, 2024
a0eb5f2
Merge JIT/Methodical tests into the merged runners (#101317)
jkoritzinsky May 8, 2024
562457f
JIT: Rewrite initial parameter frame layout in terms of new ABI info …
jakobbotsch May 8, 2024
56e67a7
Partially revert "Disable msvc vectorization in GC get_promoted_bytes…
markples May 8, 2024
35ad5e1
Fold nullchecks in Interlocked.* (#101956)
EgorBo May 8, 2024
3fce4e7
Remove O1K_VALUE_NUMBER (#101894)
EgorBo May 8, 2024
5f02413
Use QueueUserAPC2 for EE suspension on CoreCLR win-arm64. (#101891)
VSadov May 8, 2024
bca9f0f
Explicitly link against the dotnet/llvm-project libc++ (#102001)
jkoritzinsky May 8, 2024
fdac34d
Move issue links from comments to the warning attributes in trimming …
jtschuster May 8, 2024
b42426c
Fix typo (#102015)
JamesNK May 8, 2024
a7702f4
Move _cachedSendPinnedBuffer ownership to WinHttpRequestState (#101725)
antonfirsov May 8, 2024
7ce2e6d
Update area owners (#102022)
thaystg May 8, 2024
16bd99d
Relax is_local_inst (#101987)
fanyang-mono May 8, 2024
cdef0dd
JIT: SVE Cleanup - Merging some similar SVE formats into `SVE_AT_3A` …
TIHan May 8, 2024
214ea9c
RtlGetReturnAddressHijackTarget (#102021)
VSadov May 8, 2024
c5301c4
Update SPMI collection script for ASP.NET (#102025)
AndyAyersMS May 8, 2024
d01ebfe
Remove ThreadNative_GetProcessDefaultStackSize (#102003)
elinor-fung May 8, 2024
76567bf
Support loading standalone GC from an absolute path using a new confi…
cshung May 9, 2024
209ce2e
Pin arm image to unblock ci (#102035)
sbomer May 9, 2024
de4fa45
Add more issue links to trimmer assertions (#102027)
jtschuster May 9, 2024
9926d60
[mono] Use simdhash for aot method lookup ptr->methodinfo cache (#102…
kg May 9, 2024
9be6287
[mono][gc] Remove reliance on regs/stack scanning in some cases (#101…
BrzVlad May 9, 2024
ce2364c
[mono][wasm] Refactor mono_fixup_symbol_name (#101681)
mkhamoyan May 9, 2024
279dbe1
JIT CSE Optimization - Add a gymnasium environment for reinforcement …
leculver May 9, 2024
02e348b
[LoongArch64] Simplify flags for passing struct in registers. (#102041)
LuckyXu-HF May 9, 2024
5263848
[wasm] Use source built emsdk packages for the runtime build (#100266)
steveisok May 9, 2024
b4449fa
`(x * y) * added` -> `(x * y) + added` (#101845)
punchready May 9, 2024
38467bb
Simplify/optimize Int128 comparison operators (#101848)
lilinus May 9, 2024
5fdb133
Enable AVX512 embedded masking for most other intrinsics (#101886)
tannergooding May 9, 2024
7037516
Refactor AdvSimd version of DecodeFromUTF8 (#101620)
SwapnilGaikwad May 9, 2024
315c4c4
Suppress -Wformat-truncation for older GCC (#101557)
am11 May 9, 2024
6cc6c66
Allow setting ZipArchiveEntry general-purpose flag bits (#98278)
edwardneal May 9, 2024
acd3175
disable new EH on win-arm64 (#102052)
mangod9 May 9, 2024
aa4b0ab
Switch AOT compilers to use AssemblyNameInfo (#102036)
jkotas May 10, 2024
6b03ebd
[wasm] Add custom mmap/munmap implementation for anonymous mappings (…
kg May 10, 2024
00a8973
Porting `SuspendAllThreads` from the NativeAOT to CoreCLR. (#101782)
VSadov May 10, 2024
0235164
[mono] miscellaneous AOT optimizations (#102039)
kg May 10, 2024
c93ee68
Add `hostfxr_resolve_frameworks_for_runtime_config` for resolving run…
elinor-fung May 10, 2024
de12ee9
Provide System.IO.Pipelines package readme (#99666)
eNeRGy164 May 10, 2024
eab967b
Remove snapcraft files (#101768)
MichaelSimons May 10, 2024
5376eca
Add flag for NAOT linking, but not enabling server GC (#102062)
agocke May 10, 2024
56d7e5d
[RISC-V] Support SV48 Virtual Memory Layout (#101966)
clamp03 May 10, 2024
2ecc177
Compile AOT compilers with InvariantGlobalization (#102067)
MichalStrehovsky May 10, 2024
4c67cdf
Update dependencies from https://github.com/dotnet/source-build-exter…
dotnet-maestro[bot] May 10, 2024
95a0265
[main] Update dependencies from dotnet/hotreload-utils, dotnet/icu, d…
dotnet-maestro[bot] May 10, 2024
776ff7e
make Socket useable after cancellation (#99181)
wfurt May 10, 2024
279f29e
Fix for profiler test arm64 (#102066)
davmason May 10, 2024
9eac175
Simplify BigInteger.Multiply (#98587)
kzrnm May 10, 2024
dc98263
[mini] arm64: Add some more space for tailcall opcodes (#102092)
lambdageek May 10, 2024
31527d1
Fix Mono.Linker.Tests build (#102102)
sbomer May 11, 2024
34e65b9
Arm64/Sve: Implement SVE Math *Multiply* APIs (#102007)
kunalspathak May 11, 2024
fdc9c9d
Handle more than 64 registers - Part 1 (#101950)
kunalspathak May 11, 2024
b997776
[mono][interp] Add missing GC wbarriers for static field stores with …
BrzVlad May 11, 2024
bdfbed6
Use BoundsCheckNoThrow assertion in optAssertionProp_RangeProperties …
EgorBo May 11, 2024
7ce5d0f
JIT: Expand optRelopImpliesRelop for constants as op1 (#102024)
jakobbotsch May 11, 2024
07f7626
ARM64: avoid memory barrier in InlinedMemmoveGCRefsHelper if dest is …
EgorBo May 12, 2024
3ffa05f
Fix build break in outer loop runtime tests (#102115)
jkotas May 12, 2024
3de068c
Disable tests failing on NAOT (#102065)
jkotas May 12, 2024
073e35e
Simplify "secret stub arg" handling between JIT and EE (#100823)
jakobbotsch May 12, 2024
4b87c13
Fix build break in outer loop tests (#102134)
jkotas May 12, 2024
42c2362
Move checked math helpers to C# (#102129)
jkotas May 12, 2024
2cf4431
JIT: Handle GT_CNS_LNG and GT_CNS_DBL in GenTree::Compare (#102137)
jakobbotsch May 13, 2024
1d62262
Fix msquic on latest (2.3.5) release (#102085)
CarnaViire May 13, 2024
0e46919
Target NetCoreAppToolCurrent in ILC test projects (#102058)
PaulusParssinen May 13, 2024
7536484
Change erroneous use of && to & when used to make a bitmask (#101338)
RobertHenry6bev May 13, 2024
1be664e
Make it possible to eliminate branches guarded by IsEnum (#100399)
MichalStrehovsky May 13, 2024
741af4a
Add PipeWriter overloads to Json (#101461)
BrennanConroy May 13, 2024
78c8cb9
Less restrict in-range check to allow more timespan formats that woul…
danielmarbach May 13, 2024
bed87f8
JIT ARM64-SVE: Add Sve.CreateFalseMask*() (#102076)
mikabl-arm May 13, 2024
a2d23a9
Enable building with gcc-14 (#101623)
am11 May 13, 2024
a591a77
Fix VirtualCallStubManager stats capturing on EE shutdown (#102073)
yurai007 May 13, 2024
fdacc57
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] May 13, 2024
5a141fc
[main] Update dependencies from dotnet/roslyn (#101717)
dotnet-maestro[bot] May 13, 2024
622130e
[main] Update dependencies from dotnet/runtime, dotnet/sdk (#102153)
dotnet-maestro[bot] May 13, 2024
5686f6a
Automated bump of chrome version (#102119)
github-actions[bot] May 13, 2024
cbac9f2
Fix comments in ZipFileExtensions.ZipArchiveEntry.Extract.cs (#100791)
ForNeVeR May 13, 2024
6c3245e
Fix the typo (#100384)
NoahSurprenant May 13, 2024
786b288
Refactor handling of two immediates in hwintrinsic (#102071)
a74nh May 13, 2024
0129837
Unpin arm build image, use Debian 12 helix images (#102059)
sbomer May 13, 2024
3bd4171
Change the ReciprocalEstimate and ReciprocalSqrtEstimate APIs to be m…
tannergooding May 13, 2024
29cb8a6
Ensure that the TensorPrimitives.Min/MaxNumber functions follow the I…
tannergooding May 13, 2024
2385d08
[mono] generic wrapper methods for unsafe accessors (#101732)
lambdageek May 13, 2024
4b8fcd5
[cdac] Read types from contract descriptor (#101994)
elinor-fung May 13, 2024
a37af85
Config generator emits lambdas for error path that force allocation o…
pedrobsaila May 13, 2024
0432b30
[wasm] Optimize bundled_resources key creation, hashing, and comparis…
kg May 13, 2024
b88972a
JIT: SVE cleanup - More SVE format merging (#102104)
TIHan May 13, 2024
778cc84
Convert OAVariant interop to managed (#100176)
huoyaoyuan May 14, 2024
8c1e166
Arm64/Sve: Implement some more Math APIs (#102170)
kunalspathak May 14, 2024
bad00cf
Fix name mangling for CoreLib (#102183)
MichalStrehovsky May 14, 2024
a71a85a
Fix NRE in bulk memmove on x86 (#102171)
EgorBo May 14, 2024
10cba5b
Remove received bytes length check (#100619)
skyoxZ May 14, 2024
039d2ec
JIT: Unify `GT_JMP` handling in the backends (#102117)
jakobbotsch May 14, 2024
abc23ef
Update ARM64 LLVM AOT runtime builds to use the generic libclang.so f…
LoopedBard3 May 14, 2024
8966434
JIT: Allow using pinvoke registers in the prolog (#102165)
jakobbotsch May 14, 2024
b48a639
Spanify some ``Utf8String`` and ``Utf8StringBuilder`` use (#102101)
PaulusParssinen May 14, 2024
3a72ea6
Update dependencies from https://github.com/dotnet/source-build-exter…
dotnet-maestro[bot] May 14, 2024
ed339b3
[main] Update dependencies from dotnet/emsdk (#101977)
dotnet-maestro[bot] May 14, 2024
714a442
Use bison for ilasm parser generator (#101415)
hez2010 May 14, 2024
0d478a0
ILASM: Add simple `README.md`describing how to use Bison to generate …
TIHan May 14, 2024
c12c3b7
Add the autocreated .mono/ folder to .gitignore (#102054)
carlossanlop May 15, 2024
09dd34e
Add OverloadResolutionPriorityAttribute (#102176)
333fred May 15, 2024
46986e2
Simplify convertDoubleToUInt64 (#102225)
jkotas May 15, 2024
426edd0
Remove reflection from FrameworkDescription (#102164)
am11 May 15, 2024
8698d3d
[browser] load core assemblies first (#100141)
pavelsavara May 15, 2024
9d0142f
Fix ulong->double conversion on x64 (without avx512f) (#102179)
EgorBo May 15, 2024
0540ea5
[browser] make MarshalerType enum const (#102219)
pavelsavara May 15, 2024
ddff593
[browser] optimize condition on mono_log_debug (#102184)
pavelsavara May 15, 2024
5140c33
JIT: Refactor IV opts a bit (#102228)
jakobbotsch May 15, 2024
1f08a36
Propagate VNF_PtrToLoc(lcl, offset) as GT_LCL_ADDR node (#102227)
EgorBo May 15, 2024
2b0c1de
Use SIMD for block inits with GC fields (#102132)
EgorBo May 15, 2024
415ab3a
Fix some issues around accessing invalid blocks for Number.BigInteger…
tannergooding May 15, 2024
19467dc
[LoongArch64] Fix the register conflict of the `REG_GSCOOKIE_TMP` and…
LuckyXu-HF May 15, 2024
faa4f77
[cdac] Remove Try versions of ReadGlobal* on target (#102230)
elinor-fung May 15, 2024
3b3a435
[workloads] Bump downlevel runtime produced package versions in the w…
lewing May 15, 2024
f0edcd8
Find & replace MS specific __int8/16/32/64 with standard C++ types (#…
jkotas May 15, 2024
44d919d
Provide MSBuild properties to use the new libc++ configuration we pla…
jkoritzinsky May 15, 2024
1ee61b8
Remove `RequiresPreviewFeatures` attribute on `Lock`, add test using …
kouvel May 15, 2024
f0ee416
Optimize memory allocations (#98702) (#99542)
cd21h May 15, 2024
a930ef5
JIT: Reorder stores to make them amenable to stp optimization (#102133)
jakobbotsch May 15, 2024
60edf5b
Arm64/Sve: Implement Math's DotProduct* APIs (#102218)
kunalspathak May 15, 2024
f4eba6b
Ensure Single DI Registration For IStartupValidator (#102235)
tarekgh May 16, 2024
b95c8e1
Rework ProbabilisticMap character checks in SearchValues (#101001)
MihaZupan May 16, 2024
ecc8cb5
Ensure that we don't hit an assert if DOTNET_EnableSSE2=0 (#102288)
tannergooding May 16, 2024
ee17b2b
Delete some dead code in IL scanner (#102289)
MichalStrehovsky May 16, 2024
95ff499
Remove IgnoreExitCode from lld version check (#102278)
MichalStrehovsky May 16, 2024
b15e351
Tensor wave 1 API's. (#101196)
michaelgsharp May 16, 2024
76cd4be
Treat a couple more switches as output for make-repro-path (#102287)
MichalStrehovsky May 16, 2024
5025f5e
Move unicodedata to minipal (#102139)
am11 May 16, 2024
7ac4c51
Fix ROR(x, 32) on arm64 (#102291)
EgorBo May 16, 2024
93833bb
JIT: Canonicalize entry BB early (#102280)
jakobbotsch May 16, 2024
ccce949
Fix Windows Arm64 unwinding (#102258)
janvorli May 16, 2024
8f3c687
[browser][MT] enable active issues (#102212)
pavelsavara May 16, 2024
ab3ac4b
Move ML code to its own repo (#102270)
leculver May 16, 2024
9c710c4
Fix TypeBuilder.DefineMethodOverride validation error (#101246)
buyaa-n May 16, 2024
dafaf4a
[RISC-V] Add quirks for riscv to R2RDump (#101683)
SzpejnaDawid May 16, 2024
13d753c
[NativeAOT] Do not emit safe point for TLS_GET_ADDR calls into native…
VSadov May 16, 2024
044e9d3
[QUIC] Validate Close/Abort errorCode parameter (#102264)
ManickaP May 16, 2024
ffad857
add support for Impersonation and Delegation to HttpWebRequest (#102038)
wfurt May 16, 2024
ffa1bea
make SocketAddress useable after receive timeout (#102142)
wfurt May 16, 2024
9a18cf5
Revert "Unpin arm build image, use Debian 12 helix images (#102059)" …
sbomer May 16, 2024
189d768
[main] Update dependencies from dotnet/emsdk (#102255)
dotnet-maestro[bot] May 16, 2024
7c5d205
Comments (#102325)
cshung May 16, 2024
02f8ae0
[mono][interp] Fix leak during ssa transformation (#102323)
BrzVlad May 16, 2024
2c39e05
Do not allow generic inlining of delegate creation (#102299)
MichalStrehovsky May 16, 2024
b7727f5
Expose the FusedMultiplyAdd and MultiplyAddEstimate APIs on relevant …
tannergooding May 16, 2024
379f7b1
Workaround broken special APC when running x64 on arm64 windows (#102…
janvorli May 16, 2024
3ce07d3
Fix some assertions that fail when using `Lock` instances with `Monit…
kouvel May 17, 2024
84885d7
Fix cancellation unregistration in DataflowBlock.OutputAvailableAsync…
stephentoub May 17, 2024
4246ba1
Use alternative mechanisms to allow us to use the default new/delete …
jkoritzinsky May 17, 2024
91518ca
Optimize Vector64.Create for constants (#101662)
EgorBo May 17, 2024
0b10f4b
Don't use write barriers for byref-like struct copies (#102316)
EgorBo May 17, 2024
727f32b
Fix assert in Thread::VirtualUnwindCallFrame on ARM64 (#102350)
janvorli May 17, 2024
43b7b53
[browser] Separate hybrid globalization JS code to es6 module (#101543)
ilonatommy May 17, 2024
1df4111
Fix build of coreclr test JIT/Regression/JitBlue/Runtime_1102138/Runt…
rzsc May 17, 2024
0c64e66
TypeDescriptor-related trimming supportType descriptor (#102094)
steveharter May 17, 2024
68ae561
Vectorize ProbabilisticMap.LastIndexOfAny (#102331)
MihaZupan May 17, 2024
cfcd6e2
Fix "pPrecode->GetType() == PRECODE_FIXUP" assert (#102372)
jkotas May 17, 2024
fdc3797
Delete PAL definitions of MS-specific __int... types (#102304)
jkotas May 17, 2024
333b3d8
ILLink: Remove ScopeStack from MarkStep (#102282)
jtschuster May 17, 2024
26bcc1d
[mono] Disable sse2 test on full aot lane (#102336)
fanyang-mono May 17, 2024
12283e7
Mark LoadFrom overload that always throws as obsolete (#102292)
agocke May 17, 2024
839dac9
Use the PGO runtimes installed in the correct/default location (#102390)
jkoritzinsky May 17, 2024
202b1be
ILLink: Add PropertyNode for dependency analysis (#102026)
jtschuster May 17, 2024
4185f94
[Mono] added simple reverse pinvoke support to interpreter (#102185)
jkurdek May 17, 2024
6943160
Experimental changes to address sbrk failures on MT CI lanes (#102383)
kg May 18, 2024
af11dbc
[LoongArch64] Add ProbeLoongArch64Quirks() for R2RDump tool. (#102146)
LuckyXu-HF May 18, 2024
0d8c6b7
Fix the definition of RhGetCurrentThunkContext (#102395)
SingleAccretion May 18, 2024
5474ab5
Use BinaryPrimitives for `ObjectDataBuilder` primitive emit logic (#1…
PaulusParssinen May 18, 2024
0b7988c
Fix few gcc build warnings for RISC-V (#102426)
gbalykov May 20, 2024
3b95ae9
Delete empty DebugType property from test projects (#102422)
jkotas May 20, 2024
5f067ce
Reapply keyword `params` (#101499)
jozkee May 20, 2024
8fcadc6
Check for newlines in email address. (#102311)
rzikm May 20, 2024
794b0c2
Fix flaky Json+Pipe test (#102412)
BrennanConroy May 20, 2024
b1b3e85
[mono][swift-interop] Support for Swift frozen struct lowering in min…
matouskozak May 20, 2024
efd7ecc
[main] Update dependencies from dotnet/hotreload-utils, dotnet/icu, d…
dotnet-maestro[bot] May 20, 2024
6437b48
[main] Update dependencies from dotnet/roslyn (#102188)
dotnet-maestro[bot] May 20, 2024
01bff4b
[main] Update dependencies from dotnet/arcade (#101975)
dotnet-maestro[bot] May 20, 2024
24562bc
Add version. (#102446)
ilonatommy May 20, 2024
d269010
Add FrozenSet.Create collection builder (#102223)
stephentoub May 20, 2024
32d37ad
Update version of code coverage report generator (#102472)
stephentoub May 21, 2024
2bfd1b4
Cleanup CoreLib CompatibilitySuppressions (#102363)
jkotas May 21, 2024
cbe4d84
Fix description discovery for `wasm-experimental` workload (#102367)
ilonatommy May 21, 2024
2f3234e
Fix xcode-select : error : tool 'xcodebuild' requires Xcode (#102473)
jkotas May 21, 2024
e8b89a3
Utilize new APIs in the WebSocket implementation (#101953)
PaulusParssinen May 21, 2024
a142e77
Fix VS debugger issues with funceval and secondary threads (#102470)
janvorli May 21, 2024
78f536a
[wasm] Bump chrome for testing - linux: 125.0.6422.60, windows: 125.0…
github-actions[bot] May 21, 2024
99274eb
Releveling CrstDynamicMT and CrstCodeVersioning (#102468)
VSadov May 21, 2024
68f3edc
JIT: Move backward jumps to before their successors after RPO-based l…
amanasifkhalid May 21, 2024
153a94b
Delete DebugSymbols=true setting for the repo build (#102392)
jkotas May 21, 2024
362a95d
Add `SetEntryAssembly()` API to `System.Reflection` (#102271)
ivdiazsa May 21, 2024
cb9b9f7
Handle missing HTTP3 error cases (#101923)
rzikm May 21, 2024
11ffb5c
DATAS tuning changes (#102368)
Maoni0 May 21, 2024
0709995
LSRA: Refactor some of the methods around creating kill set (#102469)
kunalspathak May 21, 2024
761c9a5
Handle more than 64 registers - Part 2 (#102297)
kunalspathak May 22, 2024
4a99b64
Fix issue where the IPC server can fully consume a CPU core and preve…
davmason May 22, 2024
b8f554d
`CodeVersionManager` updates (#102298)
AaronRobinsonMSFT May 22, 2024
7d8d6ac
Console.ReadKey should not throw when read returns 0 records (#98684)
jazzdelightsme May 22, 2024
7452305
Temporarily pin 1ES pipeline to unblock official build (#102539)
hoyosjs May 22, 2024
5c06e5d
Add .NET Libraries fuzzing targets and automation (#101993)
MihaZupan May 22, 2024
198a259
[wasm] Do not pre-provision wasm, it is not needed anymore (#102554)
radekdoulik May 22, 2024
936df9c
Mark a couple throw helpers StackTraceHidden (#102552)
MichalStrehovsky May 22, 2024
48c49a3
Fix/baseline baseservices pri 1 tests (#102551)
MichalStrehovsky May 22, 2024
4157348
Add support for exported types in illink XML formats (#102487)
MichalStrehovsky May 22, 2024
994a410
[browser] fix marshaling reject(null) (#102549)
pavelsavara May 22, 2024
6ecede0
JIT: Compact blocks in fgMoveBackwardJumpsToSuccessors (#102512)
amanasifkhalid May 22, 2024
8c7c780
Remove unused tramp file for s390x (#102536)
saitama951 May 22, 2024
301604e
Handle GT_SWIFT_ERROR_RET in LinearScan::getKillSetForNode (#102519)
amanasifkhalid May 22, 2024
1504da8
Merge branch 'main' into merge-may24
yowl May 22, 2024
f0f3383
resolve conflcts
yowl May 23, 2024
86d24de
Remove commented code.
yowl May 23, 2024
1442b94
use RELEASE_CONFIG_INTEGER for LLVM options
yowl May 23, 2024
799ac14
ensure fallback to naive implementations for estimate SIMD methods.
yowl May 24, 2024
b5e1850
remove osx_64 debug build temporarily
yowl May 24, 2024
007aa64
Update src/coreclr/jit/abi.h
yowl May 27, 2024
cd68a9c
Update src/coreclr/jit/jitconfigvalues.h
yowl May 27, 2024
5aa167a
Update src/mono/browser/browser.proj
yowl May 28, 2024
4095727
address some feedback
yowl May 29, 2024
293b177
Merge branch 'merge-may24' of https://github.com/yowl/runtimelab into…
yowl May 29, 2024
9e22d42
use Sqrt for Wasm
yowl May 29, 2024
53b4b8c
Update src/coreclr/tools/aot/ILCompiler.RyuJit/JitInterface/CorInfoIm…
yowl May 29, 2024
edfb753
reinstate R0
yowl May 29, 2024
d4d04b5
Merge branch 'merge-may24' of https://github.com/yowl/runtimelab into…
yowl May 29, 2024
054bd26
revert `Math` change
yowl May 29, 2024
92ebf78
Delete PullRequestIssueManagement automation for now
jkotas May 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions eng/native/gen-buildsys.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -47,21 +47,13 @@ if /i "%__Arch%" == "wasm" (
exit /B 1
)

<<<<<<< HEAD
set __ExtraCmakeParams=%__ExtraCmakeParams% "-DCMAKE_TOOLCHAIN_FILE=%EMSDK%/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake"
=======
set __ExtraCmakeParams=%__ExtraCmakeParams% "-DCMAKE_TOOLCHAIN_FILE=!EMSDK_PATH!/emscripten/cmake/Modules/Platform/Emscripten.cmake"
>>>>>>> main
set __UseEmcmake=1
)
if /i "%__Os%" == "wasi" (
if "%WASI_SDK_PATH%" == "" (
if not exist "%__repoRoot%\src\mono\wasi\wasi-sdk" (
<<<<<<< HEAD
echo Error: Should set WASI_SDK_PATH environment variable pointing to wasi-sdk root.
=======
echo Error: Should set WASI_SDK_PATH environment variable pointing to WASI SDK root.
>>>>>>> main
exit /B 1
)

Expand Down Expand Up @@ -107,7 +99,6 @@ if not "%__ConfigureOnly%" == "1" (


if /i "%__UseEmcmake%" == "1" (
<<<<<<< HEAD
REM workaround for https://github.com/emscripten-core/emscripten/issues/15440 - emscripten cache lock problems
REM build the ports for ZLIB upfront
embuilder build zlib
Expand All @@ -116,9 +107,6 @@ if /i "%__UseEmcmake%" == "1" (
REM delayed expansion is getting turned off. TODO: remove this and see if CI is ok and hence its just my machine.
call emcmake "%CMakePath%" %__ExtraCmakeParams% --no-warn-unused-cli -G "%__CmakeGenerator%" -B %__IntermediatesDir% -S %__SourceDir%
setlocal EnableDelayedExpansion EnableExtensions
=======
call "!EMSDK_PATH!/emsdk_env.cmd" > nul 2>&1 && emcmake "%CMakePath%" %__ExtraCmakeParams% --no-warn-unused-cli -G "%__CmakeGenerator%" -B %__IntermediatesDir% -S %__SourceDir%
>>>>>>> main
) else (
"%CMakePath%" %__ExtraCmakeParams% --no-warn-unused-cli -G "%__CmakeGenerator%" -B %__IntermediatesDir% -S %__SourceDir%
)
Expand Down
45 changes: 0 additions & 45 deletions eng/pipelines/runtimelab-official.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ extends:
stages:
- stage: Build
jobs:
<<<<<<< HEAD
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
Expand All @@ -51,50 +50,6 @@ extends:
isOfficialBuild: true
uploadIntermediateArtifacts: true
librariesConfiguration: Release
=======
#
# Build the whole product with Release CoreCLR
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
buildConfig: release
platforms:
- linux_x64
- windows_x64
jobParameters:
templatePath: 'templates-official'
isOfficialBuild: true
timeoutInMinutes: 180
buildArgs: -s clr+libs+hosts+packs -c $(_BuildConfig)
postBuildSteps:
# Upload the results.
- template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
parameters:
name: $(osGroup)$(osSubgroup)_$(archType)

#
# Build libraries AllConfigurations for packages
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: Release
platforms:
- windows_x64
jobParameters:
templatePath: 'templates-official'
buildArgs: -s tools+libs -allConfigurations -c $(_BuildConfig) /p:TestAssemblies=false /p:TestPackages=true
nameSuffix: Libraries_AllConfigurations
isOfficialBuild: true
postBuildSteps:
- template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
parameters:
name: Libraries_AllConfigurations
timeoutInMinutes: 95

>>>>>>> main
- template: /eng/pipelines/official/stages/publish.yml
parameters:
isOfficialBuild: true
56 changes: 1 addition & 55 deletions eng/pipelines/runtimelab.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,43 +49,17 @@ extends:
stages:
- stage: Build
jobs:
<<<<<<< HEAD

#
# Build and test with Debug libraries and Debug runtime
=======
#
# Build the whole product with Checked CoreCLR and run runtime tests
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
buildConfig: checked
platforms:
- linux_x64
- windows_x64
jobParameters:
timeoutInMinutes: 200
buildArgs: -s clr+libs+hosts+packs -c debug -rc $(_BuildConfig)
postBuildSteps:
- template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
parameters:
creator: dotnet-bot
testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig)

#
# Build the whole product with Release CoreCLR and run libraries tests
>>>>>>> main
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
<<<<<<< HEAD
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
buildConfig: debug
platforms:
- osx_x64
# - osx_x64 # Upstream break.
- windows_x64
- Browser_wasm_win
- wasi_wasm_win
Expand All @@ -99,29 +73,10 @@ extends:

#
# Build and test with Debug libraries and Checked runtime
=======
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
buildConfig: release
platforms:
- linux_x64
- windows_x64
jobParameters:
timeoutInMinutes: 180
buildArgs: -s clr+libs+libs.tests+hosts+packs -c $(_BuildConfig) /p:ArchiveTests=true
postBuildSteps:
- template: /eng/pipelines/libraries/helix.yml
parameters:
creator: dotnet-bot
testRunNamePrefixSuffix: Libraries_$(_BuildConfig)

#
# Build and test libraries AllConfigurations
>>>>>>> main
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
<<<<<<< HEAD
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
buildConfig: checked
platforms:
Expand Down Expand Up @@ -156,12 +111,3 @@ extends:
- template: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml
parameters:
librariesConfiguration: Release
=======
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
platforms:
- windows_x64
jobParameters:
buildArgs: -test -s tools+libs+libs.tests -allConfigurations -c $(_BuildConfig) /p:TestAssemblies=false /p:TestPackages=true
nameSuffix: Libraries_AllConfigurations
timeoutInMinutes: 150
>>>>>>> main
4 changes: 4 additions & 0 deletions src/coreclr/gc/gc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18431,6 +18431,7 @@ bool gc_heap::should_retry_other_heap (int gen_number, size_t size)
}
}

#ifdef BACKGROUND_GC

Choose a reason for hiding this comment

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

This should go upstream (probably the declarations should be ifdefed out too).

void gc_heap::bgc_record_uoh_allocation(int gen_number, size_t size)
{
assert((gen_number >= uoh_start_generation) && (gen_number < total_generation_count));
Expand All @@ -18453,6 +18454,7 @@ void gc_heap::bgc_record_uoh_allocation(int gen_number, size_t size)
uoh_a_no_bgc[gen_number - uoh_start_generation] += size;
}
}
#endif //BACKGROUND_GC

allocation_state gc_heap::allocate_uoh (int gen_number,
size_t size,
Expand Down Expand Up @@ -50040,6 +50042,7 @@ void gc_heap::check_and_adjust_bgc_tuning (int gen_number, size_t physical_size,
}
#endif //BGC_SERVO_TUNING

#ifdef BACKGROUND_GC
void gc_heap::get_and_reset_uoh_alloc_info()
{
total_uoh_a_last_bgc = 0;
Expand Down Expand Up @@ -50081,6 +50084,7 @@ void gc_heap::get_and_reset_uoh_alloc_info()

total_uoh_a_last_bgc = total_uoh_a_no_bgc + total_uoh_a_bgc_marking + total_uoh_a_bgc_planning;
}
#endif //BACKGROUND_GC

bool gc_heap::is_pm_ratio_exceeded()
{
Expand Down
21 changes: 21 additions & 0 deletions src/coreclr/jit/abi.h
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,25 @@ class LoongArch64Classifier
WellKnownArg wellKnownParam);
};

class WasmClassifier
{
const ClassifierInfo& m_info;
unsigned m_stackArgSize = 0;

public:
WasmClassifier(const ClassifierInfo& info);

unsigned StackSize()
{
return m_stackArgSize;
}

ABIPassingInformation Classify(Compiler* comp,
var_types type,
ClassLayout* structLayout,
WellKnownArg wellKnownParam);
};

#if defined(TARGET_X86)
typedef X86Classifier PlatformClassifier;
#elif defined(WINDOWS_AMD64_ABI)
Expand All @@ -274,6 +293,8 @@ typedef Arm32Classifier PlatformClassifier;
typedef RiscV64Classifier PlatformClassifier;
#elif defined(TARGET_LOONGARCH64)
typedef LoongArch64Classifier PlatformClassifier;
#elif defined(TARGET_WASM32)
yowl marked this conversation as resolved.
Show resolved Hide resolved
typedef WasmClassifier PlatformClassifier;
#endif

#ifdef SWIFT_SUPPORT
Expand Down
4 changes: 2 additions & 2 deletions src/coreclr/jit/compiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -8280,8 +8280,8 @@ class Compiler
reg = REG_R11;
regMask = RBM_R11;
#elif defined(TARGET_WASM)
reg = REG_R0;
regMask = RBM_R0;
reg = REG_STK;
regMask = RBM_STK;

Choose a reason for hiding this comment

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

Suggested change
reg = REG_STK;
regMask = RBM_STK;
reg = REG_NA;
regMask = REG_NA;

If that runs into asserts, R0 will need to be physically brought back.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Have brought it back, just didn't seem to be a great idea, at least not in this PR.

#elif defined(TARGET_LOONGARCH64)
reg = REG_T8;
regMask = RBM_T8;
Expand Down
2 changes: 2 additions & 0 deletions src/coreclr/jit/gentree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12131,12 +12131,14 @@ void Compiler::gtDispNode(GenTree* tree, IndentStack* indentStack, _In_ _In_opt_

// for tracking down problems in reguse prediction or liveness tracking

#if !defined(TARGET_WASM)
if (verbose && 0)
{
printf(" RR=");
dspRegMask(JitTls::GetCompiler()->codeGen->internalRegisters.GetAll(tree));
printf("\n");
}
#endif //!TARGET_WASM
}
}

Expand Down
14 changes: 14 additions & 0 deletions src/coreclr/jit/importercalls.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7545,6 +7545,20 @@ bool Compiler::IsTargetIntrinsic(NamedIntrinsic intrinsicName)

bool Compiler::IsIntrinsicImplementedByUserCall(NamedIntrinsic intrinsicName)
{
#if defined(TARGET_WASM)
// TODO-LLVM: Revisit when SIMD is enabled.
// We want the fallback LIR expansions for these.
switch(intrinsicName)
{
case NI_System_Math_MultiplyAddEstimate:
case NI_System_Math_ReciprocalEstimate:
case NI_System_Math_ReciprocalSqrtEstimate:
return false;
default:
break;
}
#endif //TARGET_WASM

Choose a reason for hiding this comment

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

I have done some time thinking about this, and looking at dotnet/runtime#102098, and I think the better fix for this issue is to augment IsTargetIntrinsic to return true for these intrinsics.

return nullptr from impEstimateIntrinsic requires a corresponding ifdef in CoreLib, see https://github.com/dotnet/runtime/pull/102098/files#r1597779222. We have the sqrt intrinsic, so ReciprocalSqrtEstimate is expandable inline for WASM, and others have trivial expansions.

The actual CQ item here is to enable the better CQ for these intrinsic by actually exploiting the non-determinism, but it's a bit hard because LLVM doesn't have the same notion of intrinsics deterministic on "process granularity".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Changed Math to

        public static double ReciprocalSqrtEstimate(double d)
        {
#if MONO || TARGET_RISCV64 || TARGET_LOONGARCH64 || TARGET_WASM
            return 1.0 / Sqrt(d);
#else
            return ReciprocalSqrtEstimate(d);
#endif
        }

Choose a reason for hiding this comment

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

Why was it needed? It doesn't look expected to me.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Its not needed, but I thought that' what you refered to in "requires a corresponding ...". I will revert it


// Currently, if a math intrinsic is not implemented by target-specific
// instructions, it will be implemented by a System.Math call. In the
// future, if we turn to implementing some of them with helper calls,
Expand Down
10 changes: 3 additions & 7 deletions src/coreclr/jit/jitconfigvalues.h
Original file line number Diff line number Diff line change
Expand Up @@ -810,22 +810,18 @@ CONFIG_INTEGER(JitSaveFpLrWithCalleeSavedRegisters, W("JitSaveFpLrWithCalleeSave
CONFIG_INTEGER(JitDispIns, W("JitDispIns"), 0)
#endif // defined(TARGET_LOONGARCH64)

<<<<<<< HEAD
#ifdef TARGET_WASM
CONFIG_INTEGER(JitCheckLlvmIR, W("JitCheckLlvmIR"), 0)
CONFIG_INTEGER(JitRunLssaTests, W("JitRunLssaTests"), 0)
CONFIG_INTEGER(JitGcStress, W("JitGcStress"), 0)
RELEASE_CONFIG_INTEGER(JitCheckLlvmIR, W("JitCheckLlvmIR"), 0)
RELEASE_CONFIG_INTEGER(JitRunLssaTests, W("JitRunLssaTests"), 0)
RELEASE_CONFIG_INTEGER(JitGcStress, W("JitGcStress"), 0)

#ifdef DEBUG
CONFIG_STRING(JitEnableLssaRange, W("JitEnableLssaRange"))
#endif // DEBUG
yowl marked this conversation as resolved.
Show resolved Hide resolved
#endif // TARGET_WASM

CONFIG_INTEGER(JitEnregStructLocals, W("JitEnregStructLocals"), 1) // Allow to enregister locals with struct type.
=======
// Allow to enregister locals with struct type.
RELEASE_CONFIG_INTEGER(JitEnregStructLocals, W("JitEnregStructLocals"), 1)
>>>>>>> main

#undef CONFIG_INTEGER
#undef CONFIG_STRING
Expand Down
19 changes: 5 additions & 14 deletions src/coreclr/jit/lclvars.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1889,7 +1889,9 @@ void Compiler::lvaClassifyParameterABI()
// first stack arg is not considered to be at offset 0.
// TODO-Cleanup: Unify things so that x86 is consistent with other platforms
// here and change fgMorphExpandStackArgForVarArgs to account for that.
#ifndef TARGET_X86
// LLVM: staock offsets are not aligned in the classifier, if they are then this passes and
// assert(segment.Offset + segment.Size <= lvaLclExactSize(lclNum)) below fails.
Comment on lines +1892 to +1893

Choose a reason for hiding this comment

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

Why does the second assert fail?

Copy link
Contributor Author

@yowl yowl May 28, 2024

Choose a reason for hiding this comment

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

Good question, I can change the classifier to

    if (type == TYP_STRUCT)
    {
        structPassingKind wbPassStruct;
        type = comp->m_llvm->GetArgTypeForStructWasm(structLayout->GetClassHandle(), &wbPassStruct);
    }

    assert(type != TYP_STRUCT);

    unsigned typeSize = genTypeSize(type);

    ABIPassingSegment segment = ABIPassingSegment::OnStack(m_stackArgSize, 0, typeSize);
    m_stackArgSize += AlignUp(typeSize, TARGET_POINTER_SIZE);

    return ABIPassingInformation::FromSegment(comp, segment);

But that doesn't match the values passed to SetStackOffset
For example, when the first arg is not a "user arg", e.g. lvaInitThisPtr, then we dont set the stack offset, as its assumed to be allocRegArg(TYP_INT) I suppose. Maybe this is where I've gone wrong in attempting to remove the use of the registers and I should look for another solution?

Choose a reason for hiding this comment

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

There is an assumption in the compiler that this is always passed in a register. The new classifier can accommodate this assumption like so:

if (wellKnownParam == WellKnownArg::ThisPointer)
{
    // Produce a register segment (by bringing back R0).
}

We can delete this later - when the old classification is phased out.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks, this is solved with that. For TYP_STRUCT and implicit by refs I dont see how these 2 uses of the size are working:

Here the size is used as is, ignoring byref structs, and the value used to set the stack offset.

https://github.com/dotnet/runtime/blob/3eb94d1a816f941dd66f01e62c1af25c108014bc/src/coreclr/jit/lclvars.cpp#L696

However here

https://github.com/dotnet/runtime/blob/main/src/coreclr/jit/lclvars.cpp#L1904

the segment is checked against the size adusted for storing byrefs as pointers. How do we handle this to both pass this assert and the one that checks the classifer offsets with the stack offsets ?

Copy link

@SingleAccretion SingleAccretion May 29, 2024

Choose a reason for hiding this comment

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

We would need to modify eeGetArgSize to harmonize these. But at this point I agree that commenting out the assert is simpler.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ok, I left the this code in but can take it out as you say.

#if !defined(TARGET_X86) && !defined(TARGET_WASM)
assert(dscStackOffset == expected.GetStackOffset());
#endif
}
Expand Down Expand Up @@ -5947,6 +5949,7 @@ void Compiler::lvaUpdateArgsWithInitialReg()
}
}

#if !defined(TARGET_WASM)
//-----------------------------------------------------------------------------
// lvaAssignVirtualFrameOffsetsToArgs:
// Assign virtual frame offsets to the incoming parameters.
Expand All @@ -5970,25 +5973,12 @@ void Compiler::lvaAssignVirtualFrameOffsetsToArgs()
relativeZero = genCountBits(prespilled) * TARGET_POINTER_SIZE;
#endif

<<<<<<< HEAD
#if defined(TARGET_X86)
argOffs += TARGET_POINTER_SIZE;
#elif defined(TARGET_AMD64) || defined(TARGET_WASM) // TODO Wasm
// Register arguments on AMD64 also takes stack space. (in the backing store)
varDsc->SetStackOffset(argOffs);
argOffs += TARGET_POINTER_SIZE;
#elif defined(TARGET_ARM64)
// Register arguments on ARM64 only take stack space when they have a frame home.
// Unless on windows and in a vararg method.
if (compFeatureArgSplit() && this->info.compIsVarArgs)
=======
for (unsigned lclNum = 0; lclNum < info.compArgsCount; lclNum++)
{
LclVarDsc* dsc = lvaGetDesc(lclNum);

int startOffset;
if (lvaGetRelativeOffsetToCallerAllocatedSpaceForParameter(lclNum, &startOffset))
>>>>>>> main
{
dsc->SetStackOffset(startOffset + relativeZero);
JITDUMP("Set V%02u to offset %d\n", lclNum, startOffset);
Expand All @@ -6006,6 +5996,7 @@ void Compiler::lvaAssignVirtualFrameOffsetsToArgs()
}
}
}
#endif // !TARGET_WASM

//-----------------------------------------------------------------------------
// lvaGetRelativeOffsetToCallerAllocatedSpaceForParameter:
Expand Down
4 changes: 2 additions & 2 deletions src/coreclr/jit/llvm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ bool Llvm::helperCallMayPhysicallyThrow(CorInfoHelpFunc helperFunc) const
{ FUNC(CORINFO_HELP_ASSIGN_BYREF) }, // Not used on WASM.

// Not used in NativeAOT (or at all in some cases).
{ FUNC(CORINFO_HELP_ASSIGN_STRUCT) },
{ FUNC(CORINFO_HELP_BULK_WRITEBARRIER) },

Choose a reason for hiding this comment

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

This one should go to the above group now with // Not used on WASM.. We could start using it too.

{ FUNC(CORINFO_HELP_GETFIELD8) },
{ FUNC(CORINFO_HELP_SETFIELD8) },
{ FUNC(CORINFO_HELP_GETFIELD16) },
Expand Down Expand Up @@ -615,7 +615,7 @@ CorInfoType Llvm::getLlvmArgTypeForArg(CorInfoType argSigType, CORINFO_CLASS_HAN
}
//
// WASM C ABI is documented here: https://github.com/WebAssembly/tool-conventions/blob/main/BasicCABI.md.
// In essense, structs are passed by reference except if they are trivial wrappers of a primitive (scalar).
// In essence, structs are passed by reference except if they are trivial wrappers of a primitive (scalar).
// We follow this rule for the native calling convention as well as the managed one.
//
bool isByRef = false;
Expand Down
Loading