summaryrefslogtreecommitdiff
path: root/src/inc
AgeCommit message (Collapse)AuthorFilesLines
2018-04-10Fix x86 steady state tiered compilation performance (#17476)Noah Falk1-0/+3
* Fix x86 steady state tiered compilation performance Also included - a few tiered compilation only test hooks + small logging fix for JitBench Tiered compilation wasn't correctly implementing the MayHavePrecode and RequiresStableEntryPoint policy functions. On x64 this was a non-issue, but due to compact entrypoints on x86 it lead to methods allocating both FuncPtrStubs and Precodes. The FuncPtrStubs would never get backpatched which caused never ending invocations of the Prestub for some methods. Although such code still runs correctly, it is much slower than it needs to be. On MusicStore x86 I am seeing a 20% improvement in steady state RPS after this fix, bringing us inline with what I've seen on x64.
2018-04-05Rename conflicting definitions VER_MAJOR/MINORVERSION macros (#17364)Jan Kotas3-25/+0
* Rename conflicting definitions of VER_MAJOR/MINORVERSION These macros are defined by Windows SDK. They were overload to mean CLR version that was causing interesting redefinition issues. * Delete workaround for redefined Windows SDK macros * Delete ProjectN version * Delete dead code
2018-04-04Fix ARM32 on ARM64 Tracing (#17417)Brian Robbins1-2/+2
2018-04-03Increase crst level for ReadyToRunInfo's map lock (#17376)Koundinya Veluri2-117/+121
Fixes regex-redux-1 failure seen in https://github.com/dotnet/coreclr/issues/15309 - HashMap lookups and insertions occur under a level 0 lock and may enter cooperative GC mode inside the lock. A GC that is triggered may delete some dynamic code, which takes another level 0 lock. It does not look like it's possible for a deadlock as a result. - Fixed by increasing the crst level for the lock used in ReadyToRunInfo
2018-03-31Delete dead code to support OSes prior to Windows 7 (#17367)Jan Kotas2-624/+3
2018-03-28Removing 'EXPERIMENTAL' from tiered compilation env var (#17283)Noah Falk1-1/+2
Things have progressed far enough that its time to use a friendlier name. The feature still still has performance aspects that need to be investigated and improved, but I don't want to scare people off simply because it isn't as fast as it could be. This also updates to use a newer CoreFX version for JitBench since that appeared to be broken, and updated some comments and usage of the tieredcompilation variable.
2018-03-26Remove a few bogus reinterpret_cast(nullptr_t) (#17229)mikedn1-3/+3
reinterpret_cast cannot be used to convert nullptr_t values, so does C++ std says in a note. VC++ ignores this restriction claiming that notes are not normative. Clang enforces the restriction. Oh well...
2018-03-26Only use FEATURE_PERFTRACING and FEATURE_EVENT_TRACE features when turned on ↵Adam Stark1-1/+1
(#17232)
2018-03-24[Arm64] Assert on NYISteve MacLean1-1/+1
2018-03-24Delete some unused functions (#17193)mikedn1-8/+0
2018-03-24Delete unused files from src/inc (#17186)Jan Kotas15-22070/+0
2018-03-19Add new ICLRDebuggingLibraryProvider2 interface for OpenVirtualProces that ↵Mike McLaughlin1-1/+48
works on Linux (#16978) Add new ICLRDebuggingLibraryProvider2 interface for OpenVirtualProcess that works on Linux. The old ICLRDebuggingLibraryProvider::ProviderLibrary returns module handles that can't be properly supported on Linux. ICLRDebuggerLibraryProvider2 returns the module path string instead of a handle. Works on both Windows and Linux. If ICLRDebuggerLibraryProvider2 is QI'ed, OpenVirtualProcess will NOT fall back to ICLRDebuggerLibraryProvider if ProviderLibrary2 fails. HRESULT ProvideLibrary2( [in] const WCHAR* pwszFileName, [in] DWORD dwTimestamp, [in] DWORD dwSizeOfImage, [out] LPWSTR* ppResolvedModulePath); ppResolvedModulePath - Where *ppResolvedModulePath is a null terminated path to the module dll. On Windows it should be allocated with CoTaskMemAlloc. On Unix it should be allocated with malloc. Failure leave it untouched.
2018-03-19Switch over to managed Marvin implementation for string hashing (#17029)Jan Kotas1-85/+0
2018-03-19Delete unused downlevel globalization support (#17022)Jan Kotas3-594/+1
Delete ENABLE_DOWNLEVEL_FOR_NLS and everything under it
2018-03-17Add environment variable (COMPlus_EnableDiagnostics) to disable debugging ↵Mike McLaughlin1-0/+1
and profiling. (#16141) This reverts commit e9985126acb0f1efd7c780faac4e66bc798b73c0.
2018-03-13Revert "Revert "Fix handling of incorrect assemblies on Unix (#16747)" ↵Jan Kotas2-2/+2
(#16790)" (#16917) This reverts commit 47bef69b68a35eafa069d08187727684a5f47901.
2018-03-10crossgen plumbing cleanup (#16883)Jan Kotas5-1127/+2
* Delete unused ForceFullTrust command line option for crossgen * Delete ALLOW_LOCAL_WORKER define * Delete Zapper::m_legacyMode * Delete ngenparser.inl
2018-03-10Fix build with Clang 6.0 and enable build with Clang 5.0 (#16855)Jan Vorlicek1-1/+1
* Fix build with Clang 6.0 * Add support for clang 5.0 too
2018-03-06Revert "Fix handling of incorrect assemblies on Unix (#16747)" (#16790)Jan Kotas2-2/+2
This reverts commit 383736b96b643ba46ad290fc86601fc2d62a9436.
2018-03-05Fix handling of incorrect assemblies on Unix (#16747)Ruben Ayrapetyan2-2/+2
* Return DPTR from PEDecoder::FindFirstSection() Change type of the function's return value to PTR_IMAGE_SECTION_HEADER instead of (IMAGE_SECTION_HEADER *) * Fix handling of incorrect assemblies on Unix This fixes the regression that was introduced by #10772 and is caused by a missing check for validity of loaded assembly file. Related issue: #15544
2018-03-02Use TARGET_POINTER_SIZE macro (#16640)Egor Chesakov1-41/+41
* Replace sizeof(void*) with TARGET_POINTER_SIZE in TYPEINFO in src/inc/cortypeinfo.h * Replace sizeof(LPVOID) with TARGET_POINTER_SIZE in DEFINEELEMENTTYPEINFO in src/vm/siginfo.cpp * Define TARGET_POINTER_SIZE as POINTERSIZE_BYTES in src/ToolBox/SOS/Strike/util.h
2018-03-01Merge pull request #16660 from echesakovMSFT/UseTarget64BitMacroEgor Chesakov1-3/+3
Use _TARGET_64BIT_ macro
2018-02-28Replace ambiguous _WIN64 and BIT64 with _TARGET_64BIT_ macroEgor Chesakov1-3/+3
2018-02-28Merge pull request #16657 from debayang/crypto_arm64_intrinsicsBrian Sullivan1-1/+1
Crypto arm64 intrinsics
2018-02-28ARM64 SHA256 Crypto intrinsics implementationDebayan Ghosh1-1/+1
2018-02-27Merge pull request #16514 from echesakovMSFT/UseTargetPointerSizeMacroEgor Chesakov1-1/+1
Replace sizeof(void*)-like expressions with TARGET_POINTER_SIZE macro
2018-02-26Replace sizeof(void*)-like expressions with TARGET_POINTER_SIZE macroEgor Chesakov1-1/+1
2018-02-26Fixed mixed mode attach/JIT debugging. (#16552)Mike McLaughlin2-2/+4
Fixed mixed mode attach/JIT debugging. The mixed mode debugging attach uses TLS slot to communicate between debugger break-in thread and the right side. Unfortunately, the __thread static variables cannot be used on debugger breakin thread because of it does not have storage allocated for them. The fix is to switch the storage for debugger word to classic TlsAlloc allocated slot that works fine on debugger break-in thread. There was also problem (that is also in 2.0) where the WINNT_OFFSETOF__TEB__ThreadLocalStoragePointer was using the define for 64/32 bit and ended up always the 32 bit Windows value. This caused the right side GetEEThreadValue, GetEETlsDataBlock unmanaged thread functions to always fail.
2018-02-22Remove relocations for MethodTable::m_pParentMethodTable for Linux ARM (#15915)gbalykov1-0/+208
2018-02-17delete unused mirror files (#16423)Sergey Andreenko1-1/+0
2018-02-14Fix ARM/ARM64 hijacking in tail calls (#16039)Jan Vorlicek3-2/+34
* Fix ARM/ARM64 hijacking in tail calls This change fixes an issue that can happen when a function that has tail calls is hijacked. There are two potential issues: 1. When a function that tail calls another one is hijacked, the LR may be stored at a different location in the stack frame of the tail call target. So just by performing tail call, the hijacked location becomes invalid and unhijacking would corrupt stack by writing to that location. 2. There is a small window after the caller pops LR from the stack in its epilog and before the tail called function pushes LR in its prolog when the hijacked return address would not be not on the stack and so we would not be able to unhijack. The fix is to prevent hijacking of functions that contain tail calls. * Enable the tailcall hijacking test for ARM64 The test JIT/Methodical/tailcall_v4/hijacking should be passing now on ARM64.
2018-02-09Debugger api to set a breakpoint on offset 0 of all methods (#16303)David Mason1-1/+17
* Debugger api to set a breakpoint on offset 0 of all methods * fix ifdef misplacement in pal cordebug.h * add IID to cordebug_i.cpp
2018-02-09Revert "Debugger api to set a breakpoint on offset 0 of all methods (#15819)"Jan Kotas1-17/+1
This reverts commit 3d689d00843618105e735c5647e1cb64e721a333.
2018-02-08Debugger api to set a breakpoint on offset 0 of all methods (#15819)David Mason1-1/+17
* Debugger api to set a breakpoint on offset 0 of all methods * code review feedback * more code review feedback * respect IsIl in CorDbFunctionBreakoint() * change SIMPLIFYING_ASSERT to SIMPLIFYING_ASSUMPTION_SUCCEEDED for hrs, it outputs a much better diagnostic message
2018-02-08Cleanup redundant stale COR header definition (#16261)Jan Kotas1-0/+3
2018-02-03Fix failfast stacktrace (#15895)Sung Yoon Whang1-0/+1
* 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
2018-02-01Memory footprint gc latency level (#15469)gbalykov1-0/+1
Starting the work on latency levels Current tuning is latency_level_balanced Added the latency_level_memory_footprint level for optimizing for memory footprint
2018-01-31Add ETL flags for ReadyToRun (#15801)Andy Ayers1-4/+8
Add flags to track the presence of ReadyToRun codegen in an assembly and module. Add jitting flags to indicate when a method is jitted because the precompiled code was rejected, either by a profiler or by ReadyToRun dependence tracking. Together these can be used to distingish between * methods jitted because their assemblies were not precompiled * methods jitted because they were not precompiled in an otherwise precompiled assembly
2018-01-31[local gc] Enable eventing (#16120)David Mason1-16/+0
* move GC etw enums to gcinterface.ee.h * add GetActiveSyncBlockCount * refactor reference to ETW::GCLog::ShouldTrackMovementForEtw() * mov g_dwHandles to gc side * enable FEATURE_EVENT_TRACE for gc
2018-01-31Merge pull request #16102 from sdmaclea/PR-CORINFO_HELP_THROW_TYPE_NOT_SUPPORTEDTanner Gooding2-5/+7
CORINFO_HELP_THROW_TYPE_NOT_SUPPORTED
2018-01-30Add COMPlus variable to control rundown. (#16109)Brian Robbins1-0/+1
2018-01-30[Local GC] FEATURE_EVENT_TRACE 4/n: Event ports for all GC-keyword events ↵Sean Gillespie1-8/+1
(#16031) * [Local GC] Event ports: GCStart and GCGenerationRange * [Local GC] Event ports: GCEnd * [Local GC] Event ports: GCHeapStats * [Local GC] Event ports: GCCreateSegment * [Local GC] Event ports: GCFreeSegment * Event ports: GCCreateConcurrentThread and GCTerminateConcurrentThread * [Local GC] Event ports: GCTriggered * [Local GC] Event ports: GCMarkWithType * [Local GC] Event ports: GCJoin_V2 * [Local GC] Event ports: GCGlobalHeapHistory_V2 * [Local GC] Event ports: GCAllocationTick_V3 * [Local GC] Event ports: GCAllocationTick_V1 * [Local GC] Event porting: PinObjectAtGCTime * one last merge conflict
2018-01-30CORINFO_HELP_THROW_TYPE_NOT_SUPPORTEDSteve MacLean2-5/+7
2018-01-25Create the concept of EventPipeSession and refactor EventPipe to use it. ↵Brian Robbins1-4/+6
Also expose COMPlus configuration variables to support session configuration and output file path. (#16018)
2018-01-25Fix Windows-Specific EventPipe Bugs (#16025)Brian Robbins1-6/+13
* Modify IsEnabled macros used on Windows. * Fix arithmetic error due to order of operations.
2018-01-25Enable tiered jitting for R2R methods (#15967)Koundinya Veluri1-0/+2
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 Keldorph1-1/+0
debugging and profiling. (#15878)" This reverts commit 5bcfde404803f85451cf0ee9fd6406734cb878ff.
2018-01-24Add "CLRJitAttachState" global export from coreclr.dll that contains the ↵Mike McLaughlin1-3/+1
CLR_DEBUGGING_PROCESS_FLAGS for VS. (#15973)
2018-01-23Delete dead code (#15990)Jan Kotas3-103/+2
2018-01-23[Local GC] FEATURE_EVENT_TRACE 1/n: Tracking Event State (#15873)Sean Gillespie1-0/+36
* [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