Age | Commit message (Collapse) | Author | Files | Lines |
|
Based on JanK's advice I have removed the VSD flag from R2RDump.
The flag should get never observed by the dump tool as it's just
an intermediate contract internal to the Crossgen ZAP logic.
Thanks
Tomas
|
|
Contributes to dotnet/corefx#36723
|
|
|
|
(#25379)
- Microsoft.Bcl.AsyncInterfaces - 1.0.0-preview7.19324.8
- Microsoft.NETCore.Platforms - 3.0.0-preview7.19324.8
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview7.19324.8
|
|
|
|
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19324.24
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19324.24
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19324.24
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19324.24
|
|
EventPipeConfiguration::Disable (#25358)
|
|
PowerShell is useless without this argument in default Windows configurations.
|
|
ICU map the C locale to en-US_POSIX which has a non desired collation behavior as it doesn't support case insensitive comparison.
This change is to force mapping C locale to Invariant instead.
|
|
on the ISAs supported by the target CPU. (#25365)
|
|
Fixes dotnet/corefx#37955
|
|
20190624.03 (#25380)
- Microsoft.NETCore.App - 3.0.0-preview7-27824-03
|
|
|
|
|
|
* Fix StackFrameIterator::IsValid check race
During GC stress >= 4, there could be a race when we would compute
bRedirectedPinvoke as false, but before the condition of the following
_ASSERTE is evaluated, the thread that is being walked pushes a
ResumableFrame to the explicit frames stack of that thread in the GC
marker handler.
The fix to prevent this race is to evaluate all the conditions that
formed the bRedirectedPinvoke after the conditions in the _ASSERTE.
|
|
|
|
https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190624.3 (#25381)
- optimization.IBC.CoreCLR - 99.99.99-master-20190624.3
- optimization.PGO.CoreCLR - 99.99.99-master-20190624.3
|
|
|
|
Fix brick table logic to fix perf issue in several ASP.NET tests, remove #ifdef FFIND_OBJECT.
What I observed was that some GCs spent a lot of time in find_first_object called from find_object, which is called during stack scanning to find the containing object for interior pointers. A substantial fraction of generation 0 was being scanned, indicating that the brick table logic didn't work properly in these cases.
The root cause was the fact that the brick table entries were not being set in adjust_limit_clr if the allocation was satisfied from the free list in gen0 instead of newly allocated space. This is the case if there are pinned objects in gen0 as well.
The main fix is in adjust_limit_clr - if the allocation is satisfied from the freelist, seg is nullptr, the change is to set the bricks in this case as well if we are allocating in gen0 and the allocated piece is above a reasonable size threshold.
The bricks are not set always set during allocation - instead, when we detect an interior pointer during GC, we make the allocator set the bricks during the next GC cycles by setting gen0_must_clear_bricks. I changed the way this is handled for server GC (multiple heaps). We used to multiply the decay time by the number of heaps (gc_heap::n_heaps), but only applied it to the single heap where an interior pointer was found. Instead, I think it's better to instead set gen0_must_clear_bricks for all heaps, but leave the decay time unchanged compared to workstation GC.
Maoni suggested to remove the #ifdef FFIND_OBJECT - interior pointers are not going away, so the #ifdefs are unnecessary clutter.
Addressed code review feedback:
- add parentheses as per GC coding conventions
- use max instead of if-statement
- merge body of for-loop over all into existing for-loop
|
|
|
|
data is being used across multiple threads and a portion of that usage is lock-free (#25366)
|
|
|
|
System.Reflection.Emit and ILGeneration (#25318)
* Address nullable feedback for System.Resources.ResourceManager
* Address nullable feedback for System.Reflection.Emit.ILGeneration
* Address nullable feedback for System.Reflection.Emit
* PR Feedback and clean-up redundant casts
|
|
|
|
* Throw unsupported platform for native vcarargs on Arm32 Windows
* Re-enable baseservices vararg test
|
|
digit if one exists. (#25096)
* Updating Dragon4 to ensure the number buffer always provides a significant digit if one exists.
* Changing System.Number.RoundNumber to not round up floating-point numbers.
* Re-enabling the RealFormatterTestsBase CoreFX tests
* Updating Number.RoundNumber to take a isCorrectlyRounded parameter and to use IEEE compliant rounding for floating-point numbers.
* Change SinglePrecisionCustomFormat to 7, ensuring it matches the value used in netcoreapp2.1
|
|
performance (#38757)
* Fix performance IndexOf(string) -> Contains(string)
* Make comparison ordinal
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
* Remove IFormattable
* Hardcode characters
* Add tests
|
|
- Fixes EventPipe does not properly dispose of itself on an active session error #25228
- On EventPipeSession::ThreadProc, if an error occurs on the IPC streaming, then EventPipe::Disable will be invoked.
- Fixes Prevent EventPipe Sessions IDs from being reused on disconnect #25229
|
|
Based on conversation with Levi, I don't think this flag is needed.
The flag currently controls two things:
* Disqualifies the method from precompilation
* Disables Tier-0 JIT for the method
Removing the attribute allows us to precompile some of the methods (not all, because of `Vector<T>`). It measurably helps improve startup time because many of the attributed methods are complex and take a while to compile.
Once tier-1 JIT kicks in, the generated code should be identical to what we were getting before.
|
|
On x86 we can always reach any IAT_PVALUE entry via a 32 bit indirect
jump, and proper handling of jmp epilogs depends on this. So check if the
target address is reachable in 32 bits, and if so, use the jmp [addr] form
on x86, and the jmp [rip + disp] form for x64.
Fixes #25345
Fixes #25346
Undoes the assertion change from #25302
Fixes #25286
|
|
I have updated the various enumerations and tables. I didn't try
to go overboard w.r.t. understanding tables I'm not yet familiar
with, most notably the diagnostic, inlining and profiling tables.
|
|
https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190624.1 (#25354)
- optimization.IBC.CoreCLR - 99.99.99-master-20190624.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190624.1
|
|
(#25351)
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19323.4
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19323.4
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19323.4
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19323.4
|
|
20190623.05 (#25353)
- Microsoft.NETCore.App - 3.0.0-preview7-27823-05
|
|
(#25352)
- Microsoft.Bcl.AsyncInterfaces - 1.0.0-preview7.19323.4
- Microsoft.NETCore.Platforms - 3.0.0-preview7.19323.4
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview7.19323.4
|
|
CoreRT has an [actual field](https://github.com/dotnet/corert/blob/ba3ba929c88bd80ec5d4dd9cf6917471ad8fa180/src/System.Private.CoreLib/src/System/Object.CoreRT.cs#L30) for the method table table pointer in `System.Object`. CoreCLR does shenanigans when laying out `System.Object` to leave a pointer-sized hole instead.
I think the zero-offset field is triggering these asserts.
|
|
* Force secondary await continuations to run asynchronously
For performance reasons, await continuations have been invoked synchronously, meaning they're invoked as part of the antecedent task's completion (as long as that task allows it, as long as there's sufficient stack space, etc.) This generally works out well in the case where there's a single await continuation, which is far and away the common case. However, it can cause problems in situations where there are multiple await continuations, as those continuations will end up being serialized, which can lead to slowdowns and deadlocks in niche situations. To address that, this commit backs off a bit. The first await continuation is still invoked synchronously, but subsequent await continuations are invoked asynchronously, such that they are not blocked by a previously registered await continuation.
* Fix nits
|
|
20190622.05 (#25338)
- Microsoft.NETCore.App - 3.0.0-preview7-27822-05
|
|
|
|
https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190623.1 (#25339)
- optimization.IBC.CoreCLR - 99.99.99-master-20190623.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190623.1
|
|
(#25336)
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19322.2
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19322.2
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19322.2
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19322.2
|
|
(#25337)
- Microsoft.Bcl.AsyncInterfaces - 1.0.0-preview7.19322.7
- Microsoft.NETCore.Platforms - 3.0.0-preview7.19322.7
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview7.19322.7
|
|
* Fix Path.GetRelativePath throws ArgumentNullException when relativeTo is empty string
* Fix ArgumentException for relativeTo
|
|
Enable using a system-supplied message while also providing an argument/parameter name by passing in a null message. Made to match the behavior of FileNotFoundException.
|
|
(#25333)
These types contain byrefs, and so when returned in registers we may need
to avoid GC stress at the return site.
Addresses part of #24263.
|
|
(#25328)
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19321.75
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19321.75
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19321.75
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19321.75
|
|
(#25329)
- Microsoft.Bcl.AsyncInterfaces - 1.0.0-preview7.19321.8
- Microsoft.NETCore.Platforms - 3.0.0-preview7.19321.8
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview7.19321.8
|
|
20190621.07 (#25330)
- Microsoft.NETCore.App - 3.0.0-preview7-27821-07
|
|
https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190622.1 (#25331)
- optimization.IBC.CoreCLR - 99.99.99-master-20190622.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190622.1
|