summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2018-01-27Moving the SetIsIntrinsic code earlier in the method table builder.Tanner Gooding1-23/+19
2018-01-27Updating the Vector64, Vector128, and Vector256 StructPacking tests.Tanner Gooding1-0/+3
2018-01-27Updating the VM to properly pack the SIMD hardware intrinsic types.Tanner Gooding5-26/+117
2018-01-27Updating the methodtablebuilder to handle the System V ABI packing ↵Tanner Gooding2-5/+20
requirements for i386
2018-01-26Optimize Span.Copy and Span.TryCopyTo (#15947)Levi Broderick4-50/+292
* Introduce a ref-based version of Buffer.Memmove * Remove pinning logic from Span.CopyTo * Tweak flow graph of Span.CopyTo / TryCopyTo in order to encourage better codegen * Push some uncommon logic (one-element buffers, perfectly overlapping buffers) down to Memmove
2018-01-26Fix side effect flags setting after expression cloning. (#16045)Eugene Rozenfeld2-13/+36
Side effect flags need to be recomputed after cloning an expression, since cloning may involve some simplifications (e.g., replacing a local with a const). I also did some minor refactoring and renaming of the side-effect-updating helpers and made one of them more robust by checking whether a child is null before accessing its flags. This fixes VSO 543054 where this problem was encountered in a PMI ARM32 JitStress=2 run.
2018-01-26GCPrivate, GCHandle, and GChandlePrivate events for local GC (#16020)David Mason7-39/+270
* first event changed * rest of the private events * whitespace fixes
2018-01-26Fix FreeBSD build and update build instructions (#15998)Conrad Meyer2-0/+7
Move test code include in global CMakeLists before PAL runtime includes to avoid conflicts between PAL and system headers. (ForeignThreadExceptionsNative.cpp -> thread -> functional -> memory -> cassert -> pal rt "assert.h".) Drop no longer needed remove_definitions lines -- they're only set by the clrdefinitions.cmake include later in the file. Update build instructions to include needed components (ninja, lttng-ust, python27). Add missing ElfW() definition when libunwind does not define it. FreeBSD alloca() is defined in stdlib.h, so include that instead of alloca.h on FreeBSD.
2018-01-25fix pointer in ILCodeVersionNode so it uses PTR_COR_ILMETHOD instead of ↵David Mason2-3/+5
COR_IL_METHOD *, which was causing a crash in the DAC (#16003)
2018-01-25Create the concept of EventPipeSession and refactor EventPipe to use it. ↵Brian Robbins9-307/+730
Also expose COMPlus configuration variables to support session configuration and output file path. (#16018)
2018-01-25Fix Windows-Specific EventPipe Bugs (#16025)Brian Robbins2-12/+18
* Modify IsEnabled macros used on Windows. * Fix arithmetic error due to order of operations.
2018-01-25[Local GC] FEATURE_EVENT_TRACE 3/n: Defining and Firing Dynamic Events (#16000)Sean Gillespie9-13/+244
2018-01-25Compute System.Private.CoreLib roots required by the runtime. (#15525)Eugene Rozenfeld5-42/+49
Embed the result as a System.Private.CoreLib.dll xml resource for consumption by ILLink. Update mscorlib.h to make several dependencies explicit. The actual msbuild task lives in the linker repo: https://github.com/mono/linker/blob/master/corebuild/integration/ILLink.Tasks/CreateRuntimeRootDescriptorFile.cs
2018-01-25Fix asan false-positive errors: (#15563)Konstantin Baladurin9-3/+68
- Call __asan_handle_no_return in RtlRestoreContext if it doesn't return and in ThrowExceptionFromContextInternal function; - Increase alternate signal stack size and use it also for asan.
2018-01-25Enable tiered jitting for R2R methods (#15967)Koundinya Veluri17-24/+395
Enable tiered jitting for R2R methods - Included R2R methods and generics over value types in CoreLib for tiered jitting. Tier 0 for R2R methods is the precompiled code if available, and tier 1 is selectively scheduled based on call counting. - Added a delay before starting to count calls for tier 1 promotion. The delay is a short duration after frequent tier 0 jitting stops (current heuristic for identifying startup). - Startup time and steady-state performance have improved on JitBench. There is a regression shortly following startup due to call counting and tier 1 jitting, for a short duration before steady-state performance stabilizes. - Added two new config values, one for configuring the call count threshold for promoting to tier 1, and another for specifying the delay from the last tier 0 JIT invocation before starting to count calls
2018-01-25Revert "Add environment variable (COMPlus_EnableDiagnostics) to disable ↵Russ Keldorph4-43/+73
debugging and profiling. (#15878)" This reverts commit 5bcfde404803f85451cf0ee9fd6406734cb878ff.
2018-01-25 Add GetLoadLibrary function for PAL & use in TrackErrorCode (#15831)William Godbe6-23/+86
* Add GetLoadLibrary function for PAL & use in TrackErrorCode * Finish changes to dllimport.cpp * Fix unix build errors * fix windows issues * Address feedback * Fix return type * Address feedback * Fix return type * Fix usage of LPCWSTR * Use shared library string * Append message strings * Fix append * Append newline * Fix spelling * Modify error messages * Resolve conflicts * Add mac message & stop appending all exceptions * Fix another error message * Fix NoName Error * Add newline to .h file
2018-01-25Resolve iterators and async methods (#14655)Ben Adams1-3/+64
Allows a developer to determine *correct* overload called for *async* and *iterators*, from a stacktrace. Matches the compiler generated containing `Type` to the source method using: `method.DeclaringType == StateMachineAttribute.StateMachineType` attribute to allow the stack trace to resolve the mangled method name to the correct overload. Also appends the statemachine method name with `+` for iterators. Resolves: dotnet/corefx#24627
2018-01-25Merge pull request #16005 from CarolEidt/Fix15848Carol Eidt7-28/+5
Disable FP to Unsigned Vector Conversions
2018-01-25Minor bug fix for Array.Sort: Replace keys.Length with length for ↵nietras2-6/+6
FloorLog2PlusOne (#16002) * replace keys.Length with length for FloorLog2PlusOne * fix non-generic sort
2018-01-25[x86/Linux] Fix HelperMethodFrame::UpdateRegDisplay (#15993)Konstantin Baladurin1-3/+5
For DAC after initialization MachState using InsureInit method, register pointers are NULL so we cannot use them to restore register values.
2018-01-24Disable the ConvertToUInt intrinsics by removing them from simdintrinsiclist.hCarol Eidt6-31/+3
2018-01-24Disable FP to Unsigned Vector ConversionsCarol Eidt3-5/+10
The specific failure in #15848 was due to a problem with the AVX encoding of the pinsrw instruction that was exposed when AVX is enabled but AVX2 is not. The code generator generates the (SSE2) 2-operand form, but this is an instruction that needs to be encoded with the dst duplicated when using AVX encodings. So it needs to be added to `IsDstDstSrcAVXInstruction()`. Investigating this (and adding additional test coverage) revealed that conversions to FP were not implemented correctly for out-of-range values, and providing the same behavior as scalar conversion is complex and costly, with unknown benefit, as this is not expected to be a common scenario. So, don't recognize these as intrinsics (revert to the IL implementation). Also, fix the test to cover more cases. Fix 15848
2018-01-24Delete Ptr typedefs from jit src. (#15983)Sergey Andreenko16-222/+214
* delete fgArgInfoPtr * delete treeLstPtr * delete treeStmtLstPtr * delete fgArgTabEntryPtr * delete BasicBlockPtr
2018-01-24Add "CLRJitAttachState" global export from coreclr.dll that contains the ↵Mike McLaughlin4-18/+14
CLR_DEBUGGING_PROCESS_FLAGS for VS. (#15973)
2018-01-24Reflection-block some types in CoreLib (dotnet/corert#5286)Michal Strehovský1-0/+1
This saves 50 kB on a hello world app. This is using the existing ReflectionBlocked attribute to manually block public types that get otherwise blocked by the IL2IL toolchain in Project N. These types are public within the repo, but should be considered private implementation details everywhere else. Wrote a small tool that would let me identify these: https://gist.github.com/MichalStrehovsky/e2ddec899d3e0db6eba95bf68694b40e. There is more. Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2018-01-24[Local GC] FEATURE_EVENT_TRACE 2/n: Scaffolding for emitting known events ↵Sean Gillespie12-0/+99
(#15957) * [Local GC] FEATURE_EVENT_TRACE 2/n: Scaffolding for porting known events to callbacks on GCToEEInterface * Code review feedback: remove `descriptor` system for known events and instead use the gcevents xmacro to generate calls to `GCEventStatus::IsEnabled` with known constants * Remove more event descriptor code
2018-01-24Merge pull request #15980 from CarolEidt/Fix15932Carol Eidt2-40/+64
Adjust minRegs for SELECT stress modes
2018-01-23Delete dead code (#15990)Jan Kotas12-296/+2
2018-01-23Merge pull request #15949 from mikedn/shift-inconsistencyBruce Forstall4-94/+53
Fix 64 bit shift inconsistencies (on 32 bit targets)
2018-01-23[Local GC] FEATURE_EVENT_TRACE 1/n: Tracking Event State (#15873)Sean Gillespie19-22/+542
* [Local GC] FEATURE_EVENT_TRACE 1/n: Add infrastructure for keeping event state within the GC and plumbing to communicate event state changes * Code review feedback: use a load without a barrier in IsEnabled and put debug-only code under TRACE_GC_EVENT_STATE * Address code review feedback: add EventPipe callback and comments * Fix the non-FEATURE_PAL build * Fix an issue where the GC fails to react to ETW callbacks to occur before the GC is initialized (e.g. on startup when an ETW session is already active) * Simplify callback locking scheme * Add a separate callback for each EventPipe provider and funnel them all through a common handler * Fix non-FEATURE_PAL build
2018-01-23Add Unsafe.IsAddressGreaterThan / IsAddressLessThan (#15988)Levi Broderick3-0/+64
2018-01-23Catch ambiguous interface method resolution exceptions (#15978)Michal Strehovský1-3/+22
Default interface methods might end up being ambiguous. This thows an exception we need to catch.
2018-01-23Do not devirtualize shared default interface methods (#15979)Michal Strehovský1-0/+8
The result of the devirtualization for a method on a generic type should be an instantiating stub, but this doesn't seem to work right. Fixing that is a perf issue (that can be triaged/punted - #15977). This commit is a correctness fix to avoid bad codegen for that case. Resolves #15591.
2018-01-23Adjust minRegs for SELECT stress modesCarol Eidt2-40/+64
My recent refactoring to put all the `minRegCandidateCount` computation in one place failed to take into account that the `LSRA_SELECT` stress modes can also overly constrain the number of registers. Therefore, it needs to be applied only after the `minRegCandidateCount` has been computed. This may in turn cause new conflicts between the def and use of a tree temp, so factor out the code that checks for that. Fix #15932
2018-01-22Misc Span/Memory changes (#15941)Ian Hays7-56/+144
* Misc Span/Memory additions - Add MemoryMarshal.CreateSpan to replace DangerousCreate - Add MemoryMarshal.CreateReadOnlySpan to replace DangerousCreate - Add MemoryMarshal.Cast to replace NonPortableCast - Add ToString override to Span and ReadOnlySpan - Add ToEnumerable function to MemoryMarshal that takes a ReadOnlyMemory
2018-01-22Rename Pin offset to byteOffset and clean up Retain test (#26518)Ahson Khan1-1/+1
Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
2018-01-22Remove .NET limit on env var name and value lengthdanmosemsft1-0/+1
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2018-01-22Move TimeZoneInfo.Win32.cs to shared CoreLib partition (#15953)Jan Kotas9-292/+215
Reconcile deltas with CoreRT and refactor interop to follow coding conventions
2018-01-22Merge pull request #15942 from tannergooding/no-multireg-simdTanner Gooding3-16/+84
Updating the VM to no longer treat the SIMD HWIntrinsic types as HFA or MultiReg structs
2018-01-21Fix Windows ARM release build break (#15958)Jan Kotas1-1/+1
2018-01-21Stop the SIMD hardware intrinsics types from undergoing crossgen.Tanner Gooding1-1/+15
2018-01-21Remove AppDomainLeaks configuration option (#15956)antofik35-1720/+14
Removed all usages of AppDomainLeaks configuration option and CHECK_APP_DOMAIN_LEAKS feature Fix #12094
2018-01-21Rename Libraries.GlobalizationInterop to Libraries.GlobalizationNativeJan Kotas22-108/+97
Consistency with CoreFX and coding conventions. Also delete a few other pieces of unused code.
2018-01-20Define Interop.Kernel32.MAX_PATH (#15952)Jan Kotas8-24/+30
* Define Interop.Kernel32.MAX_PATH For consistency with CoreFX and coding conventions.
2018-01-20Merge pull request #15948 from fiigii/fix-ifdefBruce Forstall1-2/+2
Fix a minor bug
2018-01-20Fix timezone lookup to be consistently case insensitive (#15951)Jan Kotas1-1/+1
The timezone ids used case insensitive comparisons everywhere, except in the dictionary used to cache timezones. Fixes dotnet/corefx#26479
2018-01-20Merge pull request #15936 from GrabYourPitchforks/levib/memory_nullrefJeremy Barton2-2/+2
Allow implicit conversion of null arrays to empty Memory instances
2018-01-20Add optional integer offset to OwnedMemory Pin (#15946)Ahson Khan4-23/+3
2018-01-20Fix 64 bit shift inconsistencies (on 32 bit targets)Mike Danes4-94/+53
Recent shift changes made the JIT_LLsh helper mask the shift count to 6 bits. The other 2 helpers (JIT_LRsh and JIT_LRsz) so now we get inconsistencies such as `(x >> 64) != (x << 64)`. The ECMA spec says that "the return value is unspecified if shiftAmount is greater than or equal to the width of value" so the JIT has no obligation to implement a particular behavior. But it seems preferable to have all shift instructions behave similarly, it avoids complications and reduces risks. This also changes `ValueNumStore::EvalOpIntegral` to mask the shift count for 64 bit shifts so it matches `gtFoldExprConst`. Otherwise the produced value depends on the C/C++ compiler's behavior.