- Notifications
You must be signed in to change notification settings - Fork5.2k
[mono] remove 2 extra members from System.Object#44081
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Dotnet-GitSync-Bot commentedOct 30, 2020
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly onearea label. |
Make it into an extension method like CoreCLR.
fed2b12 tod3aaa43Compared3aaa43 to6a8bc4dCompareCoffeeFlux commentedOct 30, 2020
Relevant:mono/mono#17295 |
CoffeeFlux commentedOct 30, 2020
Also related:mono/mono#15029 |
vargaz commentedOct 30, 2020
This might depend on optimizations that are missing in the mono JIT/interpreter to get the same performance. |
src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.cs OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
stephentoub left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Yay sharing more stuff.
CoffeeFlux commentedOct 31, 2020
Filip seemed to think the codegen ended up being the same, but I'd like to be sure of that before we merge this. |
lambdageek commentedNov 2, 2020
Zoltan:
So I think on the JIT this is ok - there's an extra null check compared to the intrinsic, but as Filip mentioned it would get eliminated if the extension method is inlined. On the other hand, in the interpreter the null check isn't done in the transform, it's done in the interpretation of So maybe this is a bad idea after all. One thing we can do is move the method to be an extension method in |
BrzVlad commentedNov 2, 2020
@lambdageek so the interpreter only generated a MINT_LDFLDA instruction for this ? |
vargaz commentedNov 2, 2020
Imho, moving these small pieces of low level code to shared is problematic in general, they do depend on implementation details in the runtime. |
This reverts commitf45059f.
lambdageek commentedNov 2, 2020 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Ok, I'm going to retool this PR to:
|
b5ea354 toa87bfb0Compare
CoffeeFlux left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Much happier with this approach, thanks!
LGTM, but hopefully Vlad can take a look at the interpreter changes.
BrzVlad commentedNov 2, 2020
@lambdageek now that you brought the idea up, you could use MINT_LDFLDA_UNSAFE instead on the interpreter for better perf. I can add it in a separate PR though, if you feel it's unrelated. |
lambdageek commentedNov 2, 2020
I think I'm ok with the PR as is. I think Zoltan makes a compelling argument that we shouldn't try to share low-level hacks like the |
author Stephen Toub <stoub@microsoft.com> 1604601164 -0500committer Tammy Qiu <tammy.qiu@yahoo.com> 1604960878 -0500Add stream conformance tests for TranscodingStream (dotnet#44248)* Add stream conformance tests for TranscodingStream* Special-case 0-length input buffers to TranscodingStream.Write{Async}The base implementation of Encoder.Convert doesn't like empty inputs. Regardless, if the input is empty, we can avoid a whole bunch of unnecessary work.JIT: minor inliner refactoring (dotnet#44215)Extract out the budget check logic so it can vary by inlining policy.Use this to exempt the FullPolicy from budget checking.Fix inline xml to dump the proper (full name) hash for inlinees.Update range dumper to dump ranges in hex.Remove unused QCall for WinRTSupported (dotnet#44278)ConcurrentQueueSegment allows spinning threads to sleep. (dotnet#44265)* Allow threads to sleep when ConcurrentQueue has many enqueuers/dequeuers.* Update src/libraries/System.Private.CoreLib/src/System/Collections/Concurrent/ConcurrentQueueSegment.csCo-authored-by: Stephen Toub <stoub@microsoft.com>* Apply suggestions from code reviewCo-authored-by: Stephen Toub <stoub@microsoft.com>Co-authored-by: AMD DAYTONA EPYC <amd@amd-DAYTONA-X0.com>Co-authored-by: Stephen Toub <stoub@microsoft.com>File.Exists() is not null when true (dotnet#44310)* File.Exists() is not null when true* Fix compile* Fix compile 2[master][watchOS] Add simwatch64 support (dotnet#44303)Xcode 12.2 removed 32 bits support for watchOS simulators, this PR helps tofixdotnet/macios#9949, we have tested the new binaries and they are working as expectedCo-authored-by: dalexsoto <dalexsoto@users.noreply.github.com>Implementing support to Debugger::Break. (dotnet#44305)Set fgOptimizedFinally flag correctly (dotnet#44268)- Initialize to 0 at compiler startup- Set flag when finally cloning optimization kicks inFixes non-deterministic generation of nop opcodes into ARM32 codeForbid `- byref cnst` -> `+ (byref -cnst)` transformation. (dotnet#44266)* Add a repro test.* Forbid the transformation for byrefs.* Update src/coreclr/src/jit/morph.cppCo-authored-by: Andy Ayers <andya@microsoft.com>* Update src/coreclr/src/jit/morph.cpp* Fix the test return value.WriteLine is just to make sure we don't delete the value.* improve the test.avoid a possible overflow and don't waste time on printing.Co-authored-by: Andy Ayers <andya@microsoft.com>Pick libmonosgen-2.0.so from cmake install directory instead of .libs (dotnet#44291)This aligns Linux with what we already do for all the other platforms.Update SharedPerformanceCounter assert (dotnet#44333)Remove silly ToString in GetCLRInstanceString (dotnet#44335)Use targetPlatformMoniker for net5.0 and newer tfms (dotnet#43965)* Use targetPlatformMoniker for net5.0 and newer tfms* disabling analyzer, update version to 0.0, and use new format.* update the targetFramework.sdk* removing supportedOS assembly level attribute* fix linker errors and addressing feedback* making _TargetFrameworkWithoutPlatform as private[sgen] Add Ward annotations to sgen_get_total_allocated_bytes (dotnet#43833)Attempt to fixhttps://jenkins.mono-project.com/job/test-mono-mainline-staticanalysis/Co-authored-by: lambdageek <lambdageek@users.noreply.github.com>[tests] Re-enable tests fixed bydotnet#44081 (dotnet#44212)Fixesmono/mono#15030 andfixesmono/mono#15031 andfixesmono/mono#15032Add an implicit argument coercion check. (dotnet#43386)* Add `impCheckImplicitArgumentCoercion`.* Fix tests with type mismatch.* Try to fix VM signature.* Allow to pass byref as native int.* another fix.* Fix another IL test.[mono] Change CMakelists.txt "python" -> Python3_EXECUTABLE (dotnet#44340)Debian doesn't install a "python" binary for python3.Tweak StreamConformanceTests for cancellation (dotnet#44342)- Avoid unnecessary timers- Separate tests for precancellation, ReadAsync(byte[], ...) cancellation, and ReadAsync(Memory, ...) cancellationUse Dictionary for underlying cache of ResourceSet (dotnet#44104)Simplify catch-rethrow logic in NetworkStream (dotnet#44246)A follow-up ondotnet#40772 (comment), simplifies and harmonizes the way we wrap exceptions into IOException. Having one catch block working with System.Exception seems to be enough here, no need for specific handling of SocketException.Simple GT_NEG optimization fordotnet#13837 (dotnet#43921)* Simple arithmetic optimization with GT_NEG* Skip GT_NEG optimization when an operand is constant. Revert bitwise rotation pattern* Fixed Value Numbering assert* Cleaned up code and comments for simple GT_NEG optimization* FormattingCo-authored-by: Julie Lee <jeonlee@microsoft.com>[master] Update dependencies from mono/linker (dotnet#44322)* Update dependencies fromhttps://github.com/mono/linker build 20201105.1Microsoft.NET.ILLink.Tasks From Version 6.0.0-alpha.1.20527.2 -> To Version 6.0.0-alpha.1.20555.1* Update dependencies fromhttps://github.com/mono/linker build 20201105.2Microsoft.NET.ILLink.Tasks From Version 6.0.0-alpha.1.20527.2 -> To Version 6.0.0-alpha.1.20555.2* Disable new optimization for libraries mode (it cannot work in this mode)Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>Co-authored-by: Marek Safar <marek.safar@gmail.com>Tighten argument validation in StreamConformanceTests (dotnet#44326)Add threshold on number of files / partition in SPMI collection (dotnet#44180)* Add check for files count* Fix the OS check* decrese file limit to 1500:* misc fix* Do not upload to azure if mch files are zero sizeFix ELT profiler tests (dotnet#44285)[master] Update dependencies from dotnet/arcade dotnet/llvm-project dotnet/icu (dotnet#44336)[master] Update dependencies from dotnet/arcade dotnet/llvm-project dotnet/icu - Merge branch 'master' into darc-master-2211df94-2a02-4c3c-abe1-e3534e896267Fix Send_TimeoutResponseContent_Throws (dotnet#44356)If the client times out too quickly, the server may never have a connection to accept and will hang forever.Match CoreCLR behaviour on thread start failure (dotnet#44124)Co-authored-by: Aleksey Kliger (λgeek) <akliger@gmail.com>Add slash in Windows SoD tool build (dotnet#44359)* Add slash in Windows SoD tool build* Update SoD search path to match output dir* Fixup dotnet version* Remove merge commit headers* Disable PRsCo-authored-by: Drew Scoggins <andrew.g.scoggins@gmail>Reflect test path changes in .gitattributes; remove nonexistent files (dotnet#44371)Bootstrapping a test for R2RDump (dotnet#42150)Improve performance of Enum's generic IsDefined / GetName / GetNames (dotnet#44355)Eliminates the boxing in IsDefined/GetName/GetValues, and in GetNames avoids having to go through RuntimeType's GetEnumNames override.clarify http version test (dotnet#44379)Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>Update dependencies fromhttps://github.com/mono/linker build 20201106.1 (dotnet#44367)Microsoft.NET.ILLink.Tasks From Version 6.0.0-alpha.1.20555.2 -> To Version 6.0.0-alpha.1.20556.1Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>Disable RunThreadLocalTest8_Values on Mono (dotnet#44357)* Disable RunThreadLocalTest8_Values on MonoIt's failing on SLES* fix typoLongProcessNamesAreSupported: make test work on distros where sleep is a symlink/script (dotnet#44299)* LongProcessNamesAreSupported: make test work on distros where sleep is a symlink/script* PR feedbackCo-authored-by: Stephen Toub <stoub@microsoft.com>* fix compilationCo-authored-by: Stephen Toub <stoub@microsoft.com>add missing constructor overloads (dotnet#44380)Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>change using in ConnectCallback_UseUnixDomainSocket_Success (dotnet#44366)Clean up the samples (dotnet#44293)Update dotnet/roslyn issue linkDelete stale comment aboutdotnet/roslyn#30797Fix/remove TODO-NULLABLEs (dotnet#44300)* Fix/remove TODO-NULLABLEs* remove redundant !* apply Jozkee's feedback* address feedbackUpdate glossary (dotnet#44274)Co-authored-by: Juan Hoyos <juan.hoyos@microsoft.com>Co-authored-by: Stephen Toub <stoub@microsoft.com>Co-authored-by: Günther Foidl <gue@korporal.at>Add files need for wasm executable relinking/aot to the wasm runtime pack. (dotnet#43785)Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>Move some more UnmanagedCallersOnly tests to IL now that they're invalid C# (dotnet#43366)Fix C++ build for mono/metadata/threads.c (dotnet#44413)`throw` is a reserved keyword in C++.Disable a failing test. (dotnet#44404)Change async void System.Text.Json test to be async Task (dotnet#44418)Improve crossgen2 comparison jobs (dotnet#44119)- Fix compilation on unix platforms - Wrap use of wildcard in quotes- Print better display name into log- Fix X86 constant comparison handling- Add ability to compile specific overload via single method switchesRemove some unnecessary GetTypeInfo usage (dotnet#44414)Fix MarshalTypedArrayByte and re-enable it. Re-enable TestFunctionApply
Uh oh!
There was an error while loading.Please reload this page.
GetRawDatato an extension method in RuntimeHelpers and fixup the intrinsicsObject.CloneInternalbyMarshalAsAttribute.CloneInternalat its one use site