Age | Commit message (Collapse) | Author | Files | Lines |
|
Reimplement most of Array.Clear in managed code using Span Clear helpers.
Fixes dotnet/corefx#29848
|
|
We should use FCDECL3_VII/FCIMPL3_VII instead of FCDECL3/FCIMPL3
otherwise we got incorrect order of arguments that leads to crashes.
|
|
* Add FailFast error log to Windows Event Log
* change const wchar * to lpcwstr
* Enable sending unhandled exception info to Windows Event Log
* Change log format to match console output and address PR comments
* Remove more comments
* Change the order DoReportForUnhandledException to do a safety check first before calling managed code
* Fix parameter name in header file
* Add Windows Event logging in DefaultCatchHandler and remove DoReportForUnhandledException
* Add back event reporting for ignored unhandled exception cases, fix broken UNIX builds
* Fix more broken unix builds
* Fix typo
* Address PR comments
|
|
- This change makes the compare for very short Span strings a bit slower and for longer Span strings many times faster.
- Switch several places where it was a clear benefit to use it.
`String.CompareOrdinal(string,string)` is notable exception that I have left intact for now. It is fine tuned for current string layout, and replacing with a call of vectorized SequenceCompareTo gives mixed results.
|
|
|
|
* Add inner exception log to failfast
* cleanup
* Address PR comments
* Address more GC hole issue
* address more PR comments
|
|
|
|
Contributes to https://github.com/dotnet/corefx/issues/16767
|
|
|
|
|
|
* attempt to fix stacktrace getting printed twice
* Fix some default parameter issues, and wrong commit from last commit
* Fix build errors, switch call from Debug.Assert to new FailFast FCall
* Fix signature to allow more types of exception title
* cleanup
* Addressing comments from PR
* More PR comments
* remove useless using
* Address comments on GC hole and few naming changes
|
|
* Added Grisu3 algorithm support for double.ToString().
- Implemented Grisu3 algorithm.
- When calling double.ToString(), try Grisu3 first, if it fails, fall back to Dragon4.
Fix #14478
* Added comments. Fixed a minor bug.
* Optimized the performance in DigitGen.
* Added shortcut for numbers without fraction.
* Updated according to the review comments.
Added more comments. Changed the value of D_1_LOG2_10
|
|
- Simplify FCALL signatures
- Simplify mantissa logic copied from corert
|
|
Instead of making fcalls to FormatDouble and FormatSingle, move them to managed, and use fcalls for the DoubleToNumber and NumberToDouble they call, shifting down the layer that's implemented in native. This allows us to then much more easily add TryFormat methods for double and float while also sharing more code between coreclr and corert, from which the managed implementations were taken (they're a direct port of these native implementations from coreclr). In the process, I also eliminated one fcall that can be implemented in managed easily. The remaining fcalls are more substantial and will eventually require more effort to bring to managed.
|
|
* Move decimal formatting to managed code
- Move decimal formatting to shared (decimal itself is still not shared)
- Delete VM's decimal formatting code
* Add Decimal.TryFormat span-based method
* Workaround ProjectN compiler bug
Apply the same attribution that's applied to the code in corert.
* Address PR feedback
* Temporarily undo explicit layout change
Seeing whether it's the cause of these failures on Unix (Ubuntu, CentOS, and OSX):
```
JIT.Directed.coverage.oldtests.lclfldadd_cs_r.lclfldadd_cs_r
JIT.Directed.perffix.primitivevt.mixed1_cs_ro.mixed1_cs_ro
JIT.Methodical.fp.exgen.1000w1d_cs_r.1000w1d_cs_r
JIT.Methodical.fp.exgen.1000w1d_cs_ro.1000w1d_cs_ro
JIT.Methodical.fp.exgen.1000w1d_cs_do.1000w1d_cs_do
JIT.Methodical.fp.exgen.1000w1d_cs_d.1000w1d_cs_d
JIT.Methodical.fp.exgen.10w5d_cs_d.10w5d_cs_d
JIT.Methodical.fp.exgen.10w5d_cs_do.10w5d_cs_do
JIT.Methodical.fp.exgen.10w5d_cs_ro.10w5d_cs_ro
JIT.Methodical.fp.exgen.200w1d-02_cs_do.200w1d-02_cs_do
JIT.Methodical.fp.exgen.10w5d_cs_r.10w5d_cs_r
JIT.Methodical.fp.exgen.200w1d-02_cs_ro.200w1d-02_cs_ro
JIT.Directed.perffix.primitivevt.mixed1_cs_do.mixed1_cs_do
```
Example failure:
```
FAILED - JIT/Methodical/fp/exgen/200w1d-02_cs_ro/200w1d-02_cs_ro.sh
BEGIN EXECUTION
/mnt/j/workspace/dotnet_coreclr/master/checked_ubuntu_tst_prtest/bin/tests/Windows_NT.x64.Checked/Tests/coreoverlay/corerun 200w1d-02_cs_ro.exe
Unhandled Exception: System.OverflowException: Value was either too large or too small for an Int32.
at System.Convert.ThrowInt32OverflowException()
at System.Convert.ToInt32(Int64 value)
at testout1.Func_0()
at testout1.Main()
./200w1d-02_cs_ro.sh: line 243: 101339 Aborted (core dumped) $_DebuggerFullPath "$CORE_ROOT/corerun" $ExePath $CLRTestExecutionArguments
Expected: 100
Actual: 134
END EXECUTION - FAILED
```
|
|
- Remove dead "bigNumber" code.
- Remove custom wcslen function. Use String's.
- Delete dead fcalls from runtime. FormatInt32, FormatUInt32, FormatInt64, and FormatUInt64 are no longer needed. Delete them and many of the helpers used only by them.
|
|
- assemblyusagelog
- compatibilityflags
- xmlparser
|
|
Currently we have Chinese `*` characters at `src\classlibnative\bcltype\number.cpp` L289-294. That would cause a `C4819: Non-ASCII character in source` warning when building on Windows via Visual Studio (version: 15.4.0 (msvc 19.11.25547)).
This PR replaces the Chinese * characters with ascii *.
Fix #14556
|
|
Delete some dead code related to Windows Phone and code access security
|
|
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
* Workaround GetSystemTimePreciseAsFileTime inaccuracies
On misconfigured systems, GetSystemTimePreciseAsFileTime may drift quickly from GetSystemTimeAsFileTime. We want to use the former, though. As a workaround/heuristic, when checking whether we have GetSystemTimePreciseAsFileTime, invoke both and ensure they're "close", falling back to GetSystemTimeAsFileTime if it seems like the precise variant has run away.
* Update comment
|
|
|
|
* Re-implemented the ecvt function.
Instead of leveraging snprintf, re-implement the ecvt function according to the paper: https://www.cs.indiana.edu/~dyb/pubs/FP-Printing-PLDI96.pdf
Note:
1. This commit won't fix any existing bug.
2. This is a raw implementation of the paper. The performance on Linux only gain 10%. We could tune the performance further.
Fix #10651
* Resolve a cross platform header file issue.
Fix #10651
* Fixed a minor bug. Improved the performance.
Fix #10651
* Modified code according to code review feedback.
This commit fixed most of the issue found in code review. However, some of the feedback may not be involved due to either little performance improvement or need a POC.
Fix #10651
* Try to fix constexpr compile error on Windows.
Fix #10651
* Fixed a potential overflow bug in BigNum::Compare.
Fix #10651
* Improved multiply 10 operation.
Use shift and add operation to replace actual multiply operation.
Fix #10651
* Remove old _ecvt function.
Fix #10651
* Documented the reason why we do not need m+ and m-.
Fix #10651
* Changed exp > 0 to exp != 0 to remove any confusion.
exp should fall in 1 ~ 2046 for normalized value. Denormalized value has exp = 0.
Fix #10651
* Disable the _ecvt tests.
Fix #10651
* Removed _ecvt tests.
Fix #10651
* Re-implemented LogBase2.
Fix #10651
* Use DWORD and DWORD64 for _BitScanReverse and _BitScanReverse64
Fix #10651
* Fixed x86 compile issue for _BitScanReverse64
x86 does not support _BitScanReverse64 so we have to add additional shift operations to handle it.
Fix #10651
* Implemented BitScanReverse64 and BitScanReverse in pal.h
Fix #10651
* Remove the confusion comment which is unrelated to BitScanReverse.
Fix #10651
* Introduced wmemset to enhance the perf for 0.0
Fix #10651
* Improved the performance of converting 0.0.
Fix #10651
* Renamed ecvt to DoubleToNumberWorker.
Fix #10651
* Updated code according to the code review feedback.
Fix #10651
|
|
* Remove always defined FEATURE_RANDOMIZE_STRING_HASHING
* Fully remove randomized hashing
* Leftovers
* Remove additionalEntropy from HashSortKey as it was always 0
* Remove additionalEntropy from HashString as it was always 0
* Change to private, as not in fact called by reflection in .NET Core
* Fix build break due to FCDECLn
* Revert removed QCALL
* Remove unused strlen parameter
|
|
|
|
|
|
|
|
Fixes #9321 and deletes CleanupToDoList.cs
Delete unmanaged security implementation
|
|
Fixes https://github.com/dotnet/corefx/issues/13816
|
|
* Improve performance of Object.GetType for arrays
Cache managed Type object on MethodTable for arrays. Makes Object.GetType for arrays about 5x faster.
|
|
|
|
2. delete some dead code
3. Remove implementation of GetOSVersion and hardcode OS version to be 0.0.0
4. Add implementation of IsWindows8OrAbove & IsWinrtSupported (donno why this was deleted earlier)
5. remove GetVersionEx from PAL
|
|
|
|
|
|
Improve span copy of pointers and structs containing pointers
Fixes #9161
PR #9786 fixes perf of span copy of types that don't contain references
|
|
|
|
|
|
|
|
|
|
|
|
Fix parameter names for Array.Copy
|
|
|
|
|
|
GCToEEInterface::StompWriteBarrier (#8605)
* Move Software Write Watch's write barrier updates to use the new
GCToEEInterface::StompWriteBarrier to stomp the EE's write barrier.
* Address code review feedback, move SetCardsAfterBulkCopy to EE side of the interface
|
|
|
|
This feature is always defined and the PAL functions that would be used
if the feature was not defined are not in PAL anymore.
|
|
This commit enables portable DoubleToNumber and NumberToDouble for
x86/Linux.
|
|
Improve ArrayPool implementation and performance
|
|
|
|
|