Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
323 commits
Select commit Hold shift + click to select a range
3d9d469
Update dependencies from https://github.com/dotnet/arcade build 20230…
dotnet-maestro[bot] Apr 24, 2023
b181911
Update dependencies from https://github.com/dotnet/roslyn-analyzers b…
dotnet-maestro[bot] Apr 24, 2023
c8af27d
Special-case enums in Utf8.TryWrite handler (#85196)
stephentoub Apr 24, 2023
a1d45c5
Remove unused code for PBKDF2 on Android (#83639)
vcsjones Apr 24, 2023
d4dfe98
[mono][debugger] Improving debugger functionaties (#85050)
thaystg Apr 24, 2023
1ad1f65
[wasm] Add PackedSimd saturating integer arith. (#85043)
radekdoulik Apr 24, 2023
c3a2bce
[wasm] System.Net.WebSockets.Client.Tests timeouts (#85167)
pavelsavara Apr 24, 2023
5d186d9
Expose AVX512 variants of AVX, AVX2, and FMA instructions (#85228)
tannergooding Apr 24, 2023
2b0669b
Fix superpmi.py to not cache local MCH files (#85187)
BruceForstall Apr 24, 2023
1f8d401
Adding TimeProvider CreateCancellationTokenSource extension method (#…
tarekgh Apr 24, 2023
48b5311
Optimize >>> to ShiftRightLogical on arm64 (#85258)
EgorBo Apr 24, 2023
6848447
Add metadata update for overrides (#85182)
fanyang-mono Apr 24, 2023
46f8f1e
[browser] Enable threads in Wasm SDK (#85109)
maraf Apr 24, 2023
f62bb9f
Skip covariant checks for ldelema T[] with T exact
EgorBo Apr 24, 2023
28bd253
Use double VectorTableLookup on ARM in ProbabilisticMap (#85189)
MihaZupan Apr 24, 2023
6e23db2
JIT: Move some BasicBlock methods into block.cpp (#85224)
AndyAyersMS Apr 24, 2023
d9e8673
Add exceptions to TAR extended attribute constructors to disallow '='…
carlossanlop Apr 24, 2023
aa88c5a
Pass resource item to workload task (#85264)
joeloff Apr 24, 2023
a468216
Add TextWriter.FlushAsync(CancellationToken) (#84325)
stephentoub Apr 25, 2023
620b0db
Add parsing error information to composite format string parsing exce…
stephentoub Apr 25, 2023
41f6e79
[native-library] If a dllimport is specified with an absolute path, l…
lambdageek Apr 25, 2023
01e2455
Add CollectionsMarshal.SetCount(list, count) (#82146)
MichalPetryka Apr 25, 2023
759fabe
Fix perf regressions in Utf8Formatter for integers (#85277)
stephentoub Apr 25, 2023
516aa8c
Add Parallel.ForAsync (#84804)
stephentoub Apr 25, 2023
ad59672
Build Mono LLVM legs on the CBL-Mariner images, but run the AOTing st…
jkoritzinsky Apr 25, 2023
f74138f
Enable ComWrappers for NativeAOT on non-Windows (#85000)
jkoritzinsky Apr 25, 2023
12b041b
refactor the g_SyncBlockCacheInstance for aligned (#85241)
shushanhf Apr 25, 2023
9f07f65
Specify -z notext on linux-musl-x86 and riscv64 (#83682)
am11 Apr 25, 2023
9a693e0
Emit GC info into a COMDAT section (#83371)
MichalStrehovsky Apr 25, 2023
5490774
Disable gcstress and jitstress for tracing tests (#85186)
davmason Apr 25, 2023
9e54801
[main] Update dependencies from dotnet/runtime (#85249)
dotnet-maestro[bot] Apr 25, 2023
5be5b9e
Fix edge case in stack overflow handling (#85272)
janvorli Apr 25, 2023
aa42cc0
Add authenticated PIP feed before its use in internal JIT pipelines (…
jakobbotsch Apr 25, 2023
4e2228e
JIT: Allow spill-at-single-def for pure defs (#85251)
jakobbotsch Apr 25, 2023
19d545c
Add function pointer type support to type loader (#85287)
MichalStrehovsky Apr 25, 2023
195bf98
[mono][interp] Fix il_offset of inserted instructions (#85305)
BrzVlad Apr 25, 2023
8557717
[mono] Remove mono_dl_open_runtime_lib() (#85253)
akoeplinger Apr 25, 2023
6abedb8
Remove useless serializability checks (#80957)
madelson Apr 25, 2023
2e0033c
JIT: Support some assignment decomposition in physical promotion (#85…
jakobbotsch Apr 25, 2023
277a28d
[RISC-V] Add RISC-V CI (#85289)
clamp03 Apr 25, 2023
41cc61e
Fix coreclr-release-outerloop-nightly pipeline (#85278)
trylek Apr 25, 2023
cd7d006
Fix the TimeProvider test (#85268)
tarekgh Apr 25, 2023
a6f20f2
[wasm] Add more PackedSimd methods, logic ops (#85303)
radekdoulik Apr 25, 2023
25b61f6
Add TargetHostName to QuicConnection (#84976)
rzikm Apr 25, 2023
db1c354
Fix publishing relinked dotnet.worker.js (#85314)
maraf Apr 25, 2023
a43e67c
Retry compat Random.NextSingle in case rounding from double produces …
stephentoub Apr 25, 2023
de195af
Make Guid.HexsToChars aggressively inlined (#85322)
stephentoub Apr 25, 2023
32ecd85
[NativeAOT] Do not strip exported symbols from executables on Apple p…
ivanpovazan Apr 25, 2023
ed9fbe3
Populating JSON properties support (#83669)
krwq Apr 25, 2023
32c600f
NativeAOT ComWrappers: fix race condition in when creating native wra…
AustinWise Apr 25, 2023
afa9a93
EnC Support for Generics (#85269)
mikelle-rogers Apr 25, 2023
5b9848f
SPMI: Always add authenticated pip feed for test job runs (#85327)
jakobbotsch Apr 25, 2023
f1a4cdd
Expose various Convert intrinsics for Avx512F, Avx512BW, and Avx512DQ…
tannergooding Apr 25, 2023
21001dc
JIT: Create side effect commas as TYP_VOID in block morph (#85320)
jakobbotsch Apr 25, 2023
0fc8978
[mono][NativeAOT] System.Globalization.Native build improvements (#82…
filipnavara Apr 25, 2023
5191a75
init-distro-rid.sh: fix unbound error when VERSION_ID is not defined.…
tmds Apr 25, 2023
8e01ad8
Fix Avx2 helpers (#85275)
sbomer Apr 25, 2023
b42626f
Use CollectionsMarshal.SetCount in LINQ to deduplicate ToArray/ToList…
stephentoub Apr 25, 2023
4ab5265
[wasm] Disable `Wasm.Build.Tests.Blazor.BuildPublishTests.BugRegressi…
maraf Apr 25, 2023
45e6aed
Fix a few downlevel TimeProvider issues (#85346)
stephentoub Apr 25, 2023
455150f
Add Winforms as consultant on ComponentModel (#85363)
ericstj Apr 25, 2023
2802c97
Directory.Build.props: don't overwrite PackageOS from source-build. (…
tmds Apr 25, 2023
f077de0
JIT: add ssa accounting to morph's div opts (#85332)
AndyAyersMS Apr 25, 2023
0c17737
JIT: improve profile update for loop inversion (#85265)
AndyAyersMS Apr 25, 2023
0b30b3b
[hot_reload] assorted hot reload fixes for cumulative property update…
lambdageek Apr 25, 2023
876ab8b
Re-enable PGO for linux (#85355)
sbomer Apr 26, 2023
589baca
Guard DynamicDependency processing against `TypeSystemException`s (#8…
MichalStrehovsky Apr 26, 2023
9a7db55
[Wasm.Build.Tests] Fixup wildcard matching for runtime packs (#85286)
lambdageek Apr 26, 2023
63a7a13
Don't re-scan previously visited blocks in helperexpansion.cpp (#85201)
EgorBo Apr 26, 2023
2677eb2
Change `callvirt` into `calli` for virtual delegates (#83461)
LeVladIonescu Apr 26, 2023
7a70d5a
[JIT] ARM64 - Fixed regressions for `GT_NEG` containment (#85230)
TIHan Apr 26, 2023
21f033a
Fold IND(frozenObj, CNS) (#85127)
EgorBo Apr 26, 2023
71557db
Fix simd12_t size (#85362)
EgorBo Apr 26, 2023
ac2b353
JIT: Introduce GT_JTEST and clean up GT_JCMP flags (#85242)
jakobbotsch Apr 26, 2023
e5798eb
Implement ICorProfilerInfo14::EnumerateNonGCObjects (#85100)
EgorBo Apr 26, 2023
0c25851
[wasm][WBT] Fix pack pattern take two (#85391)
pavelsavara Apr 26, 2023
64f0371
[mono][jit] Add Vector128.WithElement as intrinsic on arm64. (#85158)
jandupej Apr 26, 2023
7ea5abf
Skip 84693 test (#85381)
TIHan Apr 26, 2023
a9e7717
[mono][jit] Adding Vector128.ConvertXX as intrinsic on arm64. (#85163)
jandupej Apr 26, 2023
4e5c9de
[browser] Fix webcil lazy loading and satellite assemblies in Wasm SD…
pavelsavara Apr 26, 2023
004437e
Made helixpublishwitharcade's TargetOS property lowercase. (#85357)
ivdiazsa Apr 26, 2023
342c4ed
[wasm][nodejs] enable EH for unit tests (#85387)
pavelsavara Apr 26, 2023
184d17d
[mono][jit] Add an option to use an mrgctx for all gshared methods. (…
vargaz Apr 26, 2023
2a75e65
AssemblyBuilder.Save add custom attributes handling. (#84580)
buyaa-n Apr 26, 2023
ddd591d
Bump main preview version to 5 (#85368)
carlossanlop Apr 26, 2023
e8b41db
Add introspection for readelf (#85298)
am11 Apr 26, 2023
ff0f603
Fix totalILArgs for explicithis (#85347)
MichalPetryka Apr 26, 2023
c958573
let user know working directory will be used as content root path by …
pedrobsaila Apr 26, 2023
1dd5a8c
Fix generic dictionary lookups for param types and function pointers …
jkotas Apr 26, 2023
6007637
Add CompositeFormat.MinimumArgumentCount and remove TryParse (#85348)
stephentoub Apr 26, 2023
678b4c8
Fix stress builds (#85342)
antonfirsov Apr 26, 2023
0bd15cb
JIT: Change GTF_ICON_INITCLASS -> GTF_IND_INITCLASS (#85396)
jakobbotsch Apr 26, 2023
2430618
Fix physical promotion scenario name and a couple of bugs (#85343)
jakobbotsch Apr 26, 2023
7ffcee5
JIT: fix phase status for some minimal instrumentation cases (#85411)
AndyAyersMS Apr 26, 2023
86c71e4
Add arm64 wasm support (#83677)
eukarpov Apr 27, 2023
e029183
JIT: prefer edge counts; keep class profiles even if tossing counts (…
AndyAyersMS Apr 27, 2023
318186b
[Arm64] Replace pairs of `str` with `stp` (#85032)
kunalspathak Apr 27, 2023
a2acc6c
[mono][llvm] Enable the cold calling conv on osx/linux. (#83519)
vargaz Apr 27, 2023
9ef0314
Enable other native subsets for linux-riscv64 in CI (#85443)
am11 Apr 27, 2023
348d57c
[main] Update dependencies from dotnet/arcade (#85308)
dotnet-maestro[bot] Apr 27, 2023
0814c60
[mono] Add back OP_XOP_OVR_X_X for arm64 (#85401)
radekdoulik Apr 27, 2023
e79ea3a
Update dependencies from https://github.com/dotnet/roslyn-analyzers b…
dotnet-maestro[bot] Apr 27, 2023
4bbde33
Make some SystemNetSecurity properties public (#85402)
rzikm Apr 27, 2023
b53f2ca
Delete support for IAT indirecting base type/interfaces (#85376)
MichalStrehovsky Apr 27, 2023
8c1e75c
[wasm] Use latest stable version of chrome (#85114)
radical Apr 27, 2023
75c855e
[main] Update dependencies from dotnet/llvm-project dotnet/runtime-as…
dotnet-maestro[bot] Apr 27, 2023
5d65dd6
Store unhandled exception info on stack in Native AOT (#84871)
agocke Apr 27, 2023
4dbaddb
[RISC-V][JIT] JIT/CodeGenBringUpTest (#84748)
clamp03 Apr 27, 2023
178322a
[RISC-V] GT_JMP implementation in codegen (#85416)
Apr 27, 2023
c407420
[LoongArch64] Implements the emitter::emitDispIns. (#85375)
shushanhf Apr 27, 2023
64bd3b1
JIT: Propagate some more indir flags in physical promotion (#85453)
jakobbotsch Apr 27, 2023
a08818e
JIT: Handle GT_RETFILT in fgInsertStmtNearEnd (#85420)
jakobbotsch Apr 27, 2023
0f06ede
Reduce calli address spilling (#85349)
MichalPetryka Apr 27, 2023
0c612cf
[wasi] Fix support for paths with spaces (#85022)
radical Apr 27, 2023
40390e2
[wasm] GenerateWasmBootJson - close file handles (#85480)
radical Apr 27, 2023
94f2b65
Fix createdump arg parsing for signal-based exceptions (#85422)
hoyosjs Apr 27, 2023
0b9ff15
Try to fix _MergedWrapperMarker (#85476)
BruceForstall Apr 27, 2023
92ba066
[PERF] Add Android BenchmarkDotNet test (#85282)
LoopedBard3 Apr 27, 2023
953d290
Enable AVX-512 for block unrollings (both copying and zeroing) (#85389)
EgorBo Apr 27, 2023
110125c
Add better fix for UnhandledExceptionHandlerUnix (#85497)
am11 Apr 28, 2023
e1811bd
Disable crossgen on riscv64 (#85499)
am11 Apr 28, 2023
375cc6d
Comment out support for mtag extension in libunwind (#85474)
VSadov Apr 28, 2023
2deebf0
[HTTP/3] Stress hack for msquic dropping connections (#84793)
ManickaP Apr 28, 2023
0d12412
[browser] Expanding timeouts for long running test projects (#85313)
pavelsavara Apr 28, 2023
5d759e8
[mono][tests] Enable runtime tests for local aliasing on Mono Interpr…
kotlarmilos Apr 28, 2023
2076afe
Update dependencies from https://github.com/dotnet/xharness build 202…
dotnet-maestro[bot] Apr 28, 2023
c46c5b8
JIT: ARR_LENGTH(new T[CNS]) --> CNS (#85496)
EgorBo Apr 28, 2023
c04933d
[NativeAOT] Allow reverse pinvoke in DoNotTriggerGc thread state rega…
VSadov Apr 28, 2023
42e397b
[NativeAOT] Use 8.1 atomics, if available, in RhpCheckedXchg/RhpCheck…
VSadov Apr 28, 2023
e6f9af1
Make preinitialized delegates reflection-visible (#85506)
MichalStrehovsky Apr 28, 2023
e6924ee
[browser] cleanup of early startup code (#83411)
pavelsavara Apr 28, 2023
5cea3d6
[mono] Invoke AssemblyLoad hooks from RuntimeAssemblyBuilder:.ctor ()…
vargaz Apr 28, 2023
00862f4
[wasm] PackedSimd, add comparison methods (#85512)
radekdoulik Apr 28, 2023
d120955
Update dependencies from https://github.com/dotnet/xharness build 202…
dotnet-maestro[bot] Apr 28, 2023
f1c9771
Add ImmutableCollectionsMarshal type and AsImmutableArray/AsArray API…
Sergio0694 Apr 28, 2023
da75e6d
Reduce some collection sizes in the System.Collections.Immutable test…
vargaz Apr 28, 2023
dd95ed8
Abstract out ParameterBuilder and implement it (#85446)
buyaa-n Apr 28, 2023
00460e0
Remove Base64 value length limit from Utf8JsonWriter (#85334)
stephentoub Apr 28, 2023
3320374
Remove redundant dictionary lookup in XPathDocument (#85534)
stephentoub Apr 28, 2023
a7d5482
[mono][llvm] Assert on unhandled opcodes instead of falling back to t…
vargaz Apr 28, 2023
97e9be9
[Mono] Intrinsify Vector128.Create on Arm64 for mini JIT (#85404)
fanyang-mono Apr 28, 2023
4719575
Skip methods in test-merging if they use the named argument 'Skip' fo…
TIHan Apr 28, 2023
7ddc45a
[wasm-mt] Support async JS interop on threadpool threads (#84494)
lambdageek Apr 28, 2023
313074f
Add documentation for merge on red, build analysis, and v1/v2 tests (…
hoyosjs Apr 28, 2023
02b8071
Fix XUnit Log Fixer Irregularities (#85183)
ivdiazsa Apr 28, 2023
80ff9ee
Fix exception leaking from filter in nativeAOT (#85366)
janvorli Apr 28, 2023
e482bba
JIT: enhance SSA checker to check some PHI properties (#85533)
AndyAyersMS Apr 28, 2023
231f85f
Fix volatility checks in VN and loop side effects code (#85467)
SingleAccretion Apr 28, 2023
6bb5449
[mono][jit] Emit a null check when storing to valuetype fields. (#82663)
vargaz Apr 29, 2023
b7d36a8
[LoongArch64] fix the errors when reverse GT_JCC. (#85555)
shushanhf Apr 29, 2023
2f5374b
Simplify some importer code (#84656)
SingleAccretion Apr 29, 2023
2dbbceb
Fix/31527 invalid currentculture applying (#85297)
Maximys Apr 30, 2023
1b28b1c
Delete `OBJ(LCL_ADDR)` args handling from local morph ref counting (#…
SingleAccretion Apr 30, 2023
0bcab6d
Reduce overheads of Regex.Replace with a text replacement string (#85…
stephentoub Apr 30, 2023
2b530d4
Replace InvariantCulture comparison with Ordinal (#85572)
meziantou Apr 30, 2023
844cca8
Delete `arrayArgumentsFound` logic from type loader (#85509)
MichalStrehovsky May 1, 2023
79647f4
Delete more type equivalence logic (#85507)
MichalStrehovsky May 1, 2023
25f09de
JIT: Make optAssertionPropGlobal_RelOp less conservative for side-eff…
EgorBo May 1, 2023
9894fbf
Split assignment rationalization into a separate phase (#85180)
SingleAccretion May 1, 2023
e56ff52
Emission and reading of custom modifiers (#85504)
MichalStrehovsky May 1, 2023
0c419b0
Delete finally blocks in EcmaSignatureParser (#85577)
MichalStrehovsky May 1, 2023
23fd17c
[mono][aot] Refactor deduplication to use enum instead of flags (#85384)
kotlarmilos May 1, 2023
7a07dd6
Translate AV in RhpByRefAssignRef to NullReferenceException (#85575)
MichalStrehovsky May 1, 2023
b91698f
Remove cached Type instances (#85557)
huoyaoyuan May 1, 2023
ef45c07
Fix processing of x86 test results (#82301)
SwapnilGaikwad May 1, 2023
049acec
Do not set pre-decided consecutive registers as busy (again) (#85566)
kunalspathak May 1, 2023
80cd72e
Improve vectorization of IndexOf(chars, StringComparison.OrdinalIgnor…
stephentoub May 1, 2023
3695b6d
Revert "[mono][llvm] Enable the cold calling conv on osx/linux. (#835…
vargaz May 1, 2023
ad3e4b7
fix: Change severity for SYSLIB1006 to Info instead of warning (#85581)
ShreyasJejurkar May 1, 2023
b4ecf10
Enable regex to use IndexOf(..., OrdinalIgnoreCase) for prefix search…
stephentoub May 1, 2023
b8aeaad
Fix trimmability issues in Quic test (#85579)
MichalStrehovsky May 1, 2023
a193cb5
Set lvSingleDef for non TYP_REF locals (#85398)
MichalPetryka May 1, 2023
1d63904
Update dependencies from https://github.com/dotnet/roslyn build 20230…
dotnet-maestro[bot] May 1, 2023
d75e811
Reenable a test which doesn't seem to fail any more. (#85576)
vargaz May 1, 2023
6f19e37
JIT: one phi arg per pred (#85546)
AndyAyersMS May 1, 2023
158c08a
Compare host using OrdinalIgnoreCase instead of InvariantCultureIgnor…
meziantou May 1, 2023
44aaeb2
Ensure that IF_*WR_RRD formats support 4-byte SIMD instructions (#85594)
tannergooding May 1, 2023
e9c195f
NativeAOT instruction for NixOS (#81485)
WhiteBlackGoose May 1, 2023
84c6168
Save interfaces implementations and nested types (#85596)
buyaa-n May 1, 2023
a601707
Fix typo in SafeHandle.cs (#85607)
echoix May 1, 2023
05618c7
Remove a RequiresProcessIsolation which is not required. (#85606)
vargaz May 1, 2023
7a87fc1
Support encoding `TypedReference`s in signatures. (#85360)
teo-tsirpanis May 1, 2023
b02d7a1
DependencyGraphViewer: Fix catastrophic designer fail for NodeForm (#…
mitchcapper May 1, 2023
da0aa0c
Cleanup some xarch emit logic (#85536)
tannergooding May 2, 2023
a66af19
Fix Helix command lines error code handling (#85622)
BruceForstall May 2, 2023
3e8f17a
Fix new warnings found with CA1854 improvement. (#85613)
buyaa-n May 2, 2023
34bb56a
Make generic composition information more efficient (#85623)
MichalStrehovsky May 2, 2023
08ba40d
Allow emitting function pointers in TypeSystemMetadataEmitter (#85626)
MichalStrehovsky May 2, 2023
18e3bbf
[mono][jit] ArmBase methods are now intrinsic. (#85458)
jandupej May 2, 2023
dc796f7
JIT: Prefer block copies for unenregisterable locals even with GC poi…
jakobbotsch May 2, 2023
4772b5d
ComWrappers test that allocate object can't inline (#85583)
AaronRobinsonMSFT May 2, 2023
5d370f3
Ensure zroSimd12Elm3 is explicitly nulled out (#85625)
tannergooding May 2, 2023
39e022d
[mono][debugger] Support step over and pause multiple times in same l…
thaystg May 2, 2023
2b10953
[JIT] X64 Fix - Handle 'imul' instruction variants to determine if a …
TIHan May 2, 2023
91a572d
Remove unnecessary dependencies in System.Text.Json (#85640)
ViktorHofer May 2, 2023
c62f69b
Address misc feedback for config binder implementation (#84737)
layomia May 2, 2023
4cb00ea
Update dependencies from https://github.com/dotnet/arcade build 20230…
dotnet-maestro[bot] May 2, 2023
0535b03
Remove unnecessary dependency in M.Bcl.TimeProvider (#85639)
ViktorHofer May 2, 2023
a32df3a
[main] Update dependencies from dnceng/internal/dotnet-optimization (…
dotnet-maestro[bot] May 2, 2023
8091325
Implement ICorProfilerInfo14::GetNonGCHeapBounds (#85434)
EgorBo May 2, 2023
fa9c41f
Remove SelfContained from pack (#85636)
maraf May 2, 2023
c240ade
[wasi] Combine `main` function for the default and single file bundle…
radical May 2, 2023
4ead807
enable ntlm tests on RHEL7 again (#85633)
wfurt May 2, 2023
53b4cd0
Move assignment rationalization to before the late helper expansion p…
SingleAccretion May 2, 2023
8290921
JIT: Fix modelling of exceptions thrown by INDEX_ADDR (#85646)
jakobbotsch May 2, 2023
2a216ab
[mono] Implement Vector128.Shuffle using tbl1 on arm64. (#85553)
vargaz May 2, 2023
34138a1
Fix add/edit for generic methods scenario (#85655)
AaronRobinsonMSFT May 2, 2023
8828b34
[wasm] Disable some System.Net.Http.Functional.Tests (#85678)
radical May 3, 2023
6379ecb
offers the synchronous part of start and stop in IHostedService to ru…
pedrobsaila May 3, 2023
c5303ae
[wasm] WBT: Renable blazor lazy loading test (#85685)
radical May 3, 2023
43efab5
[wasi] Disable failing tests to get CI green (#85681)
radical May 3, 2023
d72afaf
Add `count` and `sum` to Histogram for System.Diagnostics.Metrics (#8…
kkeirstead May 3, 2023
364c125
[main] Update dependencies from dotnet/llvm-project dotnet/runtime do…
dotnet-maestro[bot] May 3, 2023
442141d
[main] Update dependencies from dotnet/roslyn-analyzers (#85518)
dotnet-maestro[bot] May 3, 2023
56eff9f
[JIT] ARM64 - Fix Assertion failed 'node->OperIs(GT_DIV, GT_UDIV, GT_…
TIHan May 3, 2023
372b01f
Skip stp/ldp only for unwind portion of prolog/epilog (#85657)
kunalspathak May 3, 2023
bc9dad2
[wasm] Use monotonic clock in wasm, emscripten has it now (#85660)
kg May 3, 2023
d9030cb
fix mistake in timespan calculation (#85677)
pavelsavara May 3, 2023
0b04dfd
Implement Micrososoft.Bcl.Cryptography without System.Security.Crypto…
vcsjones May 3, 2023
32a16d0
Avoid S.R.I.RuntimeInformation package dependency (#85642)
ViktorHofer May 3, 2023
7afd85d
Shuffle some `MethodTable` flags (#85634)
MichalStrehovsky May 3, 2023
0be256e
Allocate Array.Empty<> on a frozen segment (NonGC heap) (#85559)
EgorBo May 3, 2023
e15f073
[browser][non-icu] `HybridGlobalization` faster encoding for change c…
ilonatommy May 3, 2023
fc22ee9
Support building a mono-based .NET Runtime on x64 (#68424)
omajid May 3, 2023
edd6d63
JIT: Fix liveness for partial defs of parent locals (#85654)
jakobbotsch May 3, 2023
b412b6b
Move DispatchMap pointer to MethodTable (#85698)
MichalStrehovsky May 3, 2023
3f2af46
Update dependencies from https://github.com/dotnet/arcade build 20230…
dotnet-maestro[bot] May 3, 2023
c884b11
Arm64: Add back the annotation in JitDisasm with the local var (+offs…
kunalspathak May 3, 2023
d3025ba
Clean up dead code in ILCompiler targets (#85618)
sbomer May 3, 2023
6a5a704
Directory.Build.props: restore previous behavior when targetting 'oth…
tmds May 3, 2023
bda61b9
[browser] es6 test main (#85542)
pavelsavara May 3, 2023
c8f43d5
Remove S.Sec.Crypto.Algorithms package dependency (#85701)
ViktorHofer May 3, 2023
f1fcba4
Change default CFB feedback size for DES
vcsjones May 3, 2023
5e0044f
Add new SafeHandleMarshaller type to provide out-of-generator marshal…
jkoritzinsky May 3, 2023
458f3de
Delete `GT_FIELD` (#85568)
SingleAccretion May 3, 2023
d0fe478
[main] Update dependencies from dotnet/xharness dotnet/runtime-assets…
dotnet-maestro[bot] May 3, 2023
b4e14b4
JIT: Improve block unrolling, enable AVX-512 (#85501)
EgorBo May 3, 2023
8d35268
Fix AreFlagsSetToZeroCmp and AreFlagsSetForSignJumpOpt to not conside…
tannergooding May 3, 2023
27e725d
[wasm] Use the docker images with floating tags (#85388)
radekdoulik May 3, 2023
29d8a16
Add back IHtmlString to System.Web.HttpUtility (#85673)
stephentoub May 3, 2023
caaab8a
Simplify SelectArrayIterator method (#85695)
stephentoub May 3, 2023
80739c2
Rename IndexOfAnyValues to SearchValues (#85686)
MihaZupan May 3, 2023
f510c5a
Fix building ReferenceTrackerRuntime.cpp in Interop tests (#85682)
omajid May 3, 2023
d819cc9
[NativeAOT] Use inline relocs for win-arm64 INLINE_GETTHREAD (#85689)
VSadov May 3, 2023
87189ec
Fix GetNonGCHeapBounds (#85702)
EgorBo May 4, 2023
fbdf54c
Fix TimeZoneInfo Perf (#85615)
tarekgh May 4, 2023
6bae14c
Revert "[NativeAOT] Do not strip exported symbols from executables on…
jkotas May 4, 2023
cb5fe56
Expose various floating-point intrinsics for Avx512F and Avx512DQ (#8…
tannergooding May 4, 2023
3232ad3
Enable more ILLink tests in NativeAOT (#85651)
vitek-karas May 4, 2023
2e17200
JIT: Refactor physical promotion in preparation of generalized assign…
jakobbotsch May 4, 2023
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
Prev Previous commit
Next Next commit
Fix perf regressions in Utf8Formatter for integers (dotnet#85277)
When I added UTF8 support to the core numeric types, I also just routed Utf8Formatter to use the public TryFormat API on each type.  That, however, regressed some microbenchmarks due to a) going from `StandardFormat` to a `ReadOnlySpan<char>` format and then parsing it back out and b) removing some of the inlining that was there previously.  This change puts back into Utf8Formatter.TryFormat the handling of the format and then delegating to the relevant helpers that already exist rather than always going through the public entrypoint (it doesn't do so for 'n', but that's also much rarer to use on a hot path and is also in general more expensive).
  • Loading branch information
stephentoub authored Apr 25, 2023
commit 759fabe4a25b47bef6bfa2170187df2bbf8ff877
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ namespace System.Buffers
/// </summary>
public bool HasPrecision => _precision != NoPrecision;

/// <summary>Gets the precision if one was specified; otherwise, 0.</summary>
internal byte PrecisionOrZero => _precision != NoPrecision ? _precision : (byte)0;

/// <summary>
/// true if the StandardFormat == default(StandardFormat)
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Runtime.CompilerServices;

namespace System.Buffers.Text
{
/// <summary>
Expand Down Expand Up @@ -30,7 +32,7 @@ public static partial class Utf8Formatter
/// <cref>System.FormatException</cref> if the format is not valid for this data type.
/// </exceptions>
public static bool TryFormat(byte value, Span<byte> destination, out int bytesWritten, StandardFormat format = default) =>
FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);
TryFormat((uint)value, destination, out bytesWritten, format);

/// <summary>
/// Formats an SByte as a UTF8 string.
Expand All @@ -55,7 +57,7 @@ public static bool TryFormat(byte value, Span<byte> destination, out int bytesWr
/// </exceptions>
[CLSCompliant(false)]
public static bool TryFormat(sbyte value, Span<byte> destination, out int bytesWritten, StandardFormat format = default) =>
FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);
TryFormat(value, 0xFF, destination, out bytesWritten, format);

/// <summary>
/// Formats a Unt16 as a UTF8 string.
Expand All @@ -80,7 +82,7 @@ public static bool TryFormat(sbyte value, Span<byte> destination, out int bytesW
/// </exceptions>
[CLSCompliant(false)]
public static bool TryFormat(ushort value, Span<byte> destination, out int bytesWritten, StandardFormat format = default) =>
FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);
TryFormat((uint)value, destination, out bytesWritten, format);

/// <summary>
/// Formats an Int16 as a UTF8 string.
Expand All @@ -104,7 +106,7 @@ public static bool TryFormat(ushort value, Span<byte> destination, out int bytes
/// <cref>System.FormatException</cref> if the format is not valid for this data type.
/// </exceptions>
public static bool TryFormat(short value, Span<byte> destination, out int bytesWritten, StandardFormat format = default) =>
FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);
TryFormat(value, 0xFFFF, destination, out bytesWritten, format);

/// <summary>
/// Formats a UInt32 as a UTF8 string.
Expand All @@ -127,9 +129,38 @@ public static bool TryFormat(short value, Span<byte> destination, out int bytesW
/// <exceptions>
/// <cref>System.FormatException</cref> if the format is not valid for this data type.
/// </exceptions>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[CLSCompliant(false)]
public static bool TryFormat(uint value, Span<byte> destination, out int bytesWritten, StandardFormat format = default) =>
FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);
public static bool TryFormat(uint value, Span<byte> destination, out int bytesWritten, StandardFormat format = default)
{
if (format.IsDefault)
{
return Number.TryUInt32ToDecStr(value, destination, out bytesWritten);
}

switch (format.Symbol | 0x20)
{
case 'd':
return Number.TryUInt32ToDecStr(value, format.PrecisionOrZero, destination, out bytesWritten);

case 'x':
return Number.TryInt32ToHexStr((int)value, Number.GetHexBase(format.Symbol), format.PrecisionOrZero, destination, out bytesWritten);

case 'n':
return FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);

case 'g' or 'r':
if (format.HasPrecision)
{
ThrowGWithPrecisionNotSupported();
}
goto case 'd';

default:
ThrowHelper.ThrowFormatException_BadFormatSpecifier();
goto case 'd';
}
}

/// <summary>
/// Formats an Int32 as a UTF8 string.
Expand All @@ -153,7 +184,43 @@ public static bool TryFormat(uint value, Span<byte> destination, out int bytesWr
/// <cref>System.FormatException</cref> if the format is not valid for this data type.
/// </exceptions>
public static bool TryFormat(int value, Span<byte> destination, out int bytesWritten, StandardFormat format = default) =>
FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);
TryFormat(value, ~0, destination, out bytesWritten, format);

[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static bool TryFormat(int value, int hexMask, Span<byte> destination, out int bytesWritten, StandardFormat format = default)
{
if (format.IsDefault)
{
return value >= 0 ?
Number.TryUInt32ToDecStr((uint)value, destination, out bytesWritten) :
Number.TryNegativeInt32ToDecStr(value, format.PrecisionOrZero, "-"u8, destination, out bytesWritten);
}

switch (format.Symbol | 0x20)
{
case 'd':
return value >= 0 ?
Number.TryUInt32ToDecStr((uint)value, format.PrecisionOrZero, destination, out bytesWritten) :
Number.TryNegativeInt32ToDecStr(value, format.PrecisionOrZero, "-"u8, destination, out bytesWritten);

case 'x':
return Number.TryInt32ToHexStr(value & hexMask, Number.GetHexBase(format.Symbol), format.PrecisionOrZero, destination, out bytesWritten);

case 'n':
return FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);

case 'g' or 'r':
if (format.HasPrecision)
{
ThrowGWithPrecisionNotSupported();
}
goto case 'd';

default:
ThrowHelper.ThrowFormatException_BadFormatSpecifier();
goto case 'd';
}
}

/// <summary>
/// Formats a UInt64 as a UTF8 string.
Expand All @@ -176,9 +243,38 @@ public static bool TryFormat(int value, Span<byte> destination, out int bytesWri
/// <exceptions>
/// <cref>System.FormatException</cref> if the format is not valid for this data type.
/// </exceptions>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[CLSCompliant(false)]
public static bool TryFormat(ulong value, Span<byte> destination, out int bytesWritten, StandardFormat format = default) =>
FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);
public static bool TryFormat(ulong value, Span<byte> destination, out int bytesWritten, StandardFormat format = default)
{
if (format.IsDefault)
{
return Number.TryUInt64ToDecStr(value, destination, out bytesWritten);
}

switch (format.Symbol | 0x20)
{
case 'd':
return Number.TryUInt64ToDecStr(value, format.PrecisionOrZero, destination, out bytesWritten);

case 'x':
return Number.TryInt64ToHexStr((long)value, Number.GetHexBase(format.Symbol), format.PrecisionOrZero, destination, out bytesWritten);

case 'n':
return FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);

case 'g' or 'r':
if (format.HasPrecision)
{
ThrowGWithPrecisionNotSupported();
}
goto case 'd';

default:
ThrowHelper.ThrowFormatException_BadFormatSpecifier();
goto case 'd';
}
}

/// <summary>
/// Formats an Int64 as a UTF8 string.
Expand All @@ -201,7 +297,44 @@ public static bool TryFormat(ulong value, Span<byte> destination, out int bytesW
/// <exceptions>
/// <cref>System.FormatException</cref> if the format is not valid for this data type.
/// </exceptions>
public static bool TryFormat(long value, Span<byte> destination, out int bytesWritten, StandardFormat format = default) =>
FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool TryFormat(long value, Span<byte> destination, out int bytesWritten, StandardFormat format = default)
{
if (format.IsDefault)
{
return value >= 0 ?
Number.TryUInt64ToDecStr((ulong)value, destination, out bytesWritten) :
Number.TryNegativeInt64ToDecStr(value, format.PrecisionOrZero, "-"u8, destination, out bytesWritten);
}

switch (format.Symbol | 0x20)
{
case 'd':
return value >= 0 ?
Number.TryUInt64ToDecStr((ulong)value, format.PrecisionOrZero, destination, out bytesWritten) :
Number.TryNegativeInt64ToDecStr(value, format.PrecisionOrZero, "-"u8, destination, out bytesWritten);

case 'x':
return Number.TryInt64ToHexStr(value, Number.GetHexBase(format.Symbol), format.PrecisionOrZero, destination, out bytesWritten);

case 'n':
return FormattingHelpers.TryFormat(value, destination, out bytesWritten, format);

case 'g' or 'r':
if (format.HasPrecision)
{
ThrowGWithPrecisionNotSupported();
}
goto case 'd';

default:
ThrowHelper.ThrowFormatException_BadFormatSpecifier();
goto case 'd';
}
}

private static void ThrowGWithPrecisionNotSupported() =>
// With a precision, 'G' can produce exponential format, even for integers.
throw new NotSupportedException(SR.Argument_GWithPrecisionNotSupported);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -907,7 +907,7 @@ private static bool TryCopyTo<TChar>(string source, Span<TChar> destination, out
}
}

private static char GetHexBase(char fmt)
internal static char GetHexBase(char fmt)
{
// The fmt-(X-A+10) hack has the effect of dictating whether we produce uppercase or lowercase
// hex numbers for a-f. 'X' as the fmt code produces uppercase. 'x' as the format code produces lowercase.
Expand Down Expand Up @@ -1675,7 +1675,7 @@ private static unsafe string NegativeInt32ToDecStr(int value, int digits, string
return result;
}

private static unsafe bool TryNegativeInt32ToDecStr<TChar>(int value, int digits, ReadOnlySpan<TChar> sNegative, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
internal static unsafe bool TryNegativeInt32ToDecStr<TChar>(int value, int digits, ReadOnlySpan<TChar> sNegative, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
{
Debug.Assert(typeof(TChar) == typeof(char) || typeof(TChar) == typeof(byte));
Debug.Assert(value < 0);
Expand Down Expand Up @@ -1724,7 +1724,7 @@ private static unsafe string Int32ToHexStr(int value, char hexBase, int digits)
return result;
}

private static unsafe bool TryInt32ToHexStr<TChar>(int value, char hexBase, int digits, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
internal static unsafe bool TryInt32ToHexStr<TChar>(int value, char hexBase, int digits, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
{
Debug.Assert(typeof(TChar) == typeof(char) || typeof(TChar) == typeof(byte));

Expand Down Expand Up @@ -1999,7 +1999,7 @@ private static unsafe string UInt32ToDecStr(uint value, int digits)
return result;
}

private static unsafe bool TryUInt32ToDecStr<TChar>(uint value, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
internal static unsafe bool TryUInt32ToDecStr<TChar>(uint value, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
{
Debug.Assert(typeof(TChar) == typeof(char) || typeof(TChar) == typeof(byte));

Expand All @@ -2019,7 +2019,7 @@ private static unsafe bool TryUInt32ToDecStr<TChar>(uint value, Span<TChar> dest
return false;
}

private static unsafe bool TryUInt32ToDecStr<TChar>(uint value, int digits, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
internal static unsafe bool TryUInt32ToDecStr<TChar>(uint value, int digits, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
{
Debug.Assert(typeof(TChar) == typeof(char) || typeof(TChar) == typeof(byte));

Expand Down Expand Up @@ -2108,7 +2108,7 @@ private static unsafe string NegativeInt64ToDecStr(long value, int digits, strin
return result;
}

private static unsafe bool TryNegativeInt64ToDecStr<TChar>(long value, int digits, ReadOnlySpan<TChar> sNegative, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
internal static unsafe bool TryNegativeInt64ToDecStr<TChar>(long value, int digits, ReadOnlySpan<TChar> sNegative, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
{
Debug.Assert(typeof(TChar) == typeof(char) || typeof(TChar) == typeof(byte));
Debug.Assert(value < 0);
Expand Down Expand Up @@ -2157,7 +2157,7 @@ private static unsafe string Int64ToHexStr(long value, char hexBase, int digits)
return result;
}

private static unsafe bool TryInt64ToHexStr<TChar>(long value, char hexBase, int digits, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
internal static unsafe bool TryInt64ToHexStr<TChar>(long value, char hexBase, int digits, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
{
Debug.Assert(typeof(TChar) == typeof(char) || typeof(TChar) == typeof(byte));

Expand Down Expand Up @@ -2427,7 +2427,7 @@ internal static unsafe string UInt64ToDecStr(ulong value, int digits)
return result;
}

private static unsafe bool TryUInt64ToDecStr<TChar>(ulong value, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
internal static unsafe bool TryUInt64ToDecStr<TChar>(ulong value, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
{
Debug.Assert(typeof(TChar) == typeof(char) || typeof(TChar) == typeof(byte));

Expand All @@ -2448,7 +2448,7 @@ private static unsafe bool TryUInt64ToDecStr<TChar>(ulong value, Span<TChar> des
return false;
}

private static unsafe bool TryUInt64ToDecStr<TChar>(ulong value, int digits, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
internal static unsafe bool TryUInt64ToDecStr<TChar>(ulong value, int digits, Span<TChar> destination, out int charsWritten) where TChar : unmanaged, IUtfChar<TChar>
{
int countedDigits = FormattingHelpers.CountDigits(value);
int bufferLength = Math.Max(digits, countedDigits);
Expand Down