Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
`int i` appears to be unused so i removed it.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
|
|
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
|
|
Touches a lot of files, but most of this is just plumbing.
In the absence of invoke thunks, reflection will use the calling convention converter. Reflection invoke will get about 7x slower, but will still work. Saves about 1.5-2% in terms of size on disk. The default is still to use the thunks, since we tweak everything towards fast defaults.
Implemented for both Project N and Project X. On the X side, I decided to go with a "policy" class instead of bools. This will let us cleanly do further optimization in the future, such as selectively generating thunks only for specific methods.
[tfs-changeset: 1710656]
|
|
Merge master to nmirror
|
|
|
|
* m removed from names, spaces after \\ and braces added
* Moved to shared
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
* Don't early terminate on null for 64bit NR HashCode
* Improved GetNonRandomizedHashCode
* Update message on GetNonRandomizedHashCode
* Consume null terminator rather than special case odd lengths
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
* Create Microsoft.Internal.IO
Includes all of Path, Directory, *Info, etc. from System.IO with targets of NetFX 4.6.1 and NetCore 2.1.
* Tweaks / minor fixes
* Remove netstandard build.
* Add package
Update to build for 4.7.2 only
* Rename folder to prepare for project rename
* Change the name to Microsoft.IO.Redist
* Namespace tweaks
* Use open key, tweak references
* More tweaks on feedback
Also grab latest build tools for 4.7.x RIDs
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
|
|
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
(#6197)
|
|
PureNative mode
[tfs-changeset: 1710061]
|
|
* Update CoreFX dependencies
* Exclude WinRT interop
|
|
[tfs-changeset: 1709921]
|
|
Merge nmirror to master
|
|
This is a port of dotnet/coreclr#17732. Fixes bug 603305.
Per popular demand from people who would like to serialize ref returning properties or use them in data binding, adding support for this in MethodInfo.Invoke. The choice was to make these dereference the result and return it like that. For the corner case of returning a ref to a null, a `NullReferenceException` will be thrown (this behavior has a very unfortunate side effect of slowing down the general Invoke path because we can't throw this exception from a place where we would end up wrapping this in a TargetInvocationException).
I also made tweaks to byref parameters path to fix byref pointer parameters, but this is horribly broken on the CLR so I didn't bother to test it here. Should work.
Also includes a slight size on disk optimization that merges common tails of the static/instance paths of the invoker thunk.
Testing of the calling convention converter portion was done by disabling invoke thunks generation in NUTC and running UnitTests. I also ran it with GCStresss (RH_GCStressThrottleMode=1, RH_GCStress_Mode=1). Let me know if there's more testing needed. This has a huge test matrix for being such a corner case thing.
[tfs-changeset: 1709919]
|
|
Removes unused native symbol references from the native binary
Fixes #6191
|
|
|
|
* Changing names and making runtime files
* Movel methodbody and exceptionHandlingClause to shared
* Fixing build error
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
The issue is that the RhpRethrow stubs do not initialize the values of m_kind for the ExInfo objects they allocate on stack. Depending on the kind of garbage that gets assigned to m_kind, the stack iterator either takes the code path of reporting the gcroots of the RhpRethrow callsite, or takes the code path with the RemapHardwareFaultToGCSafePoint (if m_kind ends up getting a HW exception flag).
The piece of code that initializes the m_kind field of the ExInfo object on rethrows is in ExceptionHandling.cs, and there’s a window of opportunity where GC collection can happen before m_kind gets initialized correctly.
The bug needs the following conditions to occur:
1) Garbage value in ExInfo.m_kind before initialization causes the stack iterator to take one code path, then after initialization take the other code path.
2) GC collection happens in the middle, before m_kind gets properly initialized
3) Gc roots reported in each of the 2 different code paths are different
4) The GC collection in step #2 causes a relocation of a reference object of interest.
The fix is to just initialize the field to something deterministic that makes sense (zero in that case). This would cause the stack iterator to use the gcroots reporting of the RhpRethrow callsite, until the field is initialized to a more meaningful value (ex: in case of a rethrow of a HW exception) where we would apply the correct algorithm to determine a more correct gcroots reporting point to use based on where execution is headed (ex: use the gcroots reporting point of a finally block if the rethrow is for a HW exception, and in a catch block)
[tfs-changeset: 1709684]
|
|
* rearranging properties and reducing diff
* ecplicit files added
|
|
Use LLVM arguments and returns where possible (no GC references) instead of passing them on the shadow stack. The argument optimization saves 3% optimized (5% compressed). The return change adds about 0.5% to the uncompressed file, but saves about 6% compressed. They both save size in debug. This also greatly simplifies debugging and reading code. Also includes a fix to the class constructor runner where it was calling cctors with the wrong signature and some test fixes.
|
|
* Improve StreamWriter format perf
Override the format overloads for TextWriter and skip the extra string allocation for the formatted string by using StringBuilder directly, copying straight to the output buffer.
Improves performance roughtly 10% and cuts allocations by 10x and up (formatting a string into a string goes to *zero* allocations).
* Fix copy/paste slipup- test added to CoreFX PR
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
enabled. (#6180)
|
|
|
|
* File Modified
* Moved to shared
* Introducing RuntimeLocalVariableInfo
* Build Corefx change
* sealed added
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
|
|
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
|
|
* `S.R.CompilerServices.Unsafe` is often useful in repro code
* We treat warnings as errors in all of CoreRT, but warnings about unused fields or unused assignments often happen and are not helpful in repro project.
|
|
Roslyn decided to do a breaking change to the ECMA-335 file format by generating an illegal custom modifier for the `unmanaged` constraint. The purpose of the modifier is to poison such types for old versions of the C# compiler (the modifier otherwise isn't necessary for the feature to work). This also poisons a lot of the .NET ecosystem too (breaking everything ranging from Mono to the C++/CLI compiler).
We need to update our stack to support this and unblock our customers.
[tfs-changeset: 1709243]
|
|
Microsoft.Diagnostics.Tracing.EventSource.Redist.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
* Handle multidimensional array instantiation (#5421)
newobj instruction on multidimensional array is now processed with
ArrayHelpers.NewObjArray. Enabled instantiating multidimensional arrays.
* Add testing for multidimensional array instantiation.
Only nullity and lengths are checked due to get & set not working on
multidimensional arrays.
|
|
* Add EventWrittenEventArgs public properties OSThreadId and TimeStamp and plumb through OSThreadId.
* Plumb ActivityId and RelatedActivityId to EventListener.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
Merge nmirror to master
|
|
The API review board didn't approve this to be a public API due to lack of usage data for now, but did provide guidelines to make this approvable in the future.
This is doing two things:
* Rename the attribute
* By default, removed methods are going to throw, with an opt out (that might not be officially available). This is pretty easy to implement for Project N, because DR is intertwined with S.P.CoreLib and we can just define the exception there. It will likely block the adoption of this by IL Linker (or any other tool that is not hardwirded to work against a specific runtime).
[tfs-changeset: 1709140]
|
|
|
|
underlying ISA hierarchies
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
|
|
Merge master to nmirror
|
|
Saves allocation and makes the code smaller. It had to be class before we had ref locals.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
* Added version increment for TrimExcess and EnsureCapacity
* Added old unit test to exclusion list
* Excluded missing unit tests
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
were emitted based on the ISortableNode sorting logic. This doesn't work with targeted patching
[tfs-changeset: 1709015]
|