summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2016-04-18Merge pull request #4390 from pgavlin/JitCleanupPat Gavlin31-162/+162
Cleanup some minor JIT issues.
2016-04-18Merge pull request #4378 from krytarowski/netbsd-support-68Aditya Mandaleeka1-0/+37
Implement GetProcessIdDisambiguationKey() for NetBSD
2016-04-18Standardize on `assert` in the JIT.Pat Gavlin9-22/+22
A small amount of JIT code was using `_ASSERTE` instead of `assert`. Change that code to use `assert` instead, which operates correctly w.r.t. the JIT host.
2016-04-18Stanardize on `DEBUGARG` in the JIT.Pat Gavlin25-137/+137
The JIT uses both `DEBUGARG` (defined in jit.h) and `DEBUG_ARG` (defined in /src/inc/check.h) for debug-only arguments. This change replaces all uses of `DEBUG_ARG` with `DEBUGARG`.
2016-04-18Remove uses of LP{,C}UTF8 in the JIT.Pat Gavlin2-3/+3
Replace these with the corresponding `char*` type.
2016-04-18Merge pull request #4381 from gkhanna79/VCRTFixGaurav Khanna8-8/+12
Cleanup VCRuntime140.dll dependency from native components
2016-04-18Merge pull request #4375 from AndyAyersMS/UseBudgetAndy Ayers4-6/+107
Inliner: use time budget to avoid excessive inlining
2016-04-18Merge pull request #4376 from pgavlin/GcInfoRemoveUtilcodePat Gavlin3-5/+10
Stop including utilcode.h in the GC info encoder.
2016-04-18Implement GetProcessIdDisambiguationKey() for NetBSDKamil Rytarowski1-0/+37
Make use of the kvm(3) interface to get "struct kinfo_proc2" of the given process. struct kinfo_proc2 { ///.... uint32_t p_ustart_sec; /* STRUCT TIMEVAL: starting time. */ uint32_t p_ustart_usec; /* STRUCT TIMEVAL: starting time. */ ///... }; --- /usr/include/sys/sysctl.h
2016-04-16Cleanup VCRuntime140.dll dependency from native componentsGaurav Khanna8-8/+12
2016-04-16Merge pull request #4360 from kyulee1/fixpspKyungwoo Lee2-2/+2
ARM64: Fix Storing PSPSym for localloc
2016-04-16ARM64: Fix Storing PSPSym for locallocKyungwoo Lee2-2/+2
JIT incorrectly saves/restores PSPSym causing AVs in EH tests that have localloc with filter. The fix is to use a right opcode (Load instead of Store) when saving PSPSym.
2016-04-16Merge pull request #4357 from krytarowski/netbsd-support-63Jan Vorlicek2-0/+35
NetBSD: Add support for PAL_IsDebuggerPresent()
2016-04-15Merge pull request #4346 from LLITCHEV/Issue4276Lubomir Litchev2-3/+9
Set the lvIsMultiRegArgOrRet for a variable containing the result of in-lined multi-register return call.
2016-04-15Merge pull request #4369 from mikedn/msgboxJan Kotas1-7/+1
Always try to load user32 instead of ntuser api set
2016-04-16Merge pull request #4342 from ZhichengZhu/clrstackrJan Vorlicek1-5/+65
add sos clrstack -r option
2016-04-15Stop including utilcode.h in the GC info encoder.Pat Gavlin3-5/+10
This required two other minor changes: - A prototype for `ThrowOutOfMemory` is now defined in gcinfoencoder.h - `BitArray` now defines an overload of `operator new` that accepts an `IAllocator`.
2016-04-15Merge pull request #4372 from krytarowski/netbsd-support-66Aditya Mandaleeka1-3/+1
NetBSD has RAND_MAX = 0x7fffffff
2016-04-16The RAND_MAX value can vary by platformKamil Rytarowski1-3/+1
Noted on NetBSD where it is 0x7FFFFFFF.
2016-04-15Inliner: use time budget to avoid excessive inliningAndy Ayers4-6/+107
Use the time budget and time estimates to stop inlining once the overall jit time increase estimate for the method is 10x the initial jit time estimate. This is implemented as part of `LegacyPolicy` and so can impact the current inline behavior. The budget is intentionally set quite high so that it only kicks in for very rare cases where the call tree below the root is deep and wide with many small methods. In extended testing on desktop this limit fires in exactly two cases, both HFA tests. In CoreCLR tests 12 of the HFA tests hit this limit. I've added a directed test case here that came from the original bug report. Closes #2472.
2016-04-16NetBSD: Add support for PAL_IsDebuggerPresent()Kamil Rytarowski2-0/+35
Reuse the kvm(3) interface to grab "struct kinfo_proc". NAME kvm - kernel memory interface LIBRARY Kernel Data Access Library (libkvm, -lkvm) DESCRIPTION The kvm library provides a uniform interface for accessing kernel virtual memory images, including live systems and crash dumps. Access to live systems is via /dev/mem while crash dumps can be examined via the core file generated by savecore(8). The interface behaves identically in both cases. Memory can be read and written, kernel symbol addresses can be looked up efficiently, and information about user processes can be gathered. kvm_open() is first called to obtain a descriptor for all subsequent calls
2016-04-15Merge pull request #4347 from ramarag/zapnyiRama krishnan Raghupathy2-9/+12
Removing NYI for ZapUnwindData
2016-04-16Always try to load user32 instead of ntuser api setMike Danes1-7/+1
2016-04-15Merge pull request #4140 from myungjoo/implement/4040Jan Vorlicek5-71/+86
Implement StartUnwindingNativeFrames Linux/ARM
2016-04-15Merge pull request #3240 from krytarowski/netbsd-support-50Jan Kotas5-37/+23
Fix issue unveiled on NetBSD: Add PAL__vsnprintf shadow in PAL
2016-04-15Set the lvIsMultiRegArgOrRet for a variable containing the result ofLubomir Litchev2-3/+9
inlined multi-register return call. This change makes sure the lvIsMultiRegArgOrRet on a variable used to store the result of inlined multi-register return function is set. The way the code works today, this is not an issue since the code in fgAttachStructInlineeToAsg always uses a CopyObj/Blk to asign the return value from the registers to the var on stack. The CopyBlock/Obj gets the address of the variable making it address-exposed and that prevents struct promotion. In the future (when CopyObj/Blk is not used) not having lvIsMultiRegArgOrRet set could cause a problem. Fixes issue 4276.
2016-04-15add clrstack -r optionZhicheng Zhu1-5/+65
2016-04-15Merge pull request #4359 from gkhanna79/ROLibFix2Gaurav Khanna3-3/+13
DelayLoadAndFixWinRTInterop
2016-04-15Merge pull request #4361 from joperezr/AddServiceableAttributeJose Perez Rodriguez1-0/+7
Adding Serviceable attribute to mscorlib
2016-04-15Merge pull request #4352 from kouvel/ArmAssertFixKoundinya Veluri2-6/+6
Fix assertion failure on ARM
2016-04-15Merge pull request #4338 from pgavlin/AddJit32BuildPat Gavlin4-10/+26
Make it possible to build JIT32 in the OSS tree.
2016-04-15Adding Serviceable attribute to mscorlibJose Perez Rodriguez1-0/+7
2016-04-15DelayLoadAndFixWinRTInteropGaurav Khanna3-3/+13
2016-04-15Merge pull request #4355 from dotnet-bot/from-tfsJan Kotas2-3/+3
Merge changes from TFS
2016-04-15Implement StartUnwindingNativeFrames Linux/ARMMyungJoo Ham4-59/+86
StartUnwindingNativeFrames for Unix/Linux ARM. The code is ported from AMD64 code of the same function and OS. CONTEXT_* are moved from context2.S to asmconstants.h so that the same macros may be sharaed between multiple files. Fix #4040 Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2016-04-15Merge pull request #4260 from myungjoo/fix/4259Jan Vorlicek1-0/+3
ARM: fix build warning for unw usage
2016-04-15Fix assertion failure on ARMKoundinya Veluri2-6/+6
StompWriteBarrierEphemeral may be called on the init path, where the runtime is technically not suspended, but has not started yet. Added a check for g_fEEInit in the call.
2016-04-14Merge pull request #4340 from jkotas/equality-comparerJan Kotas2-16/+4
Use beforefieldinit field for Comparer/EqualityComparer.Default
2016-04-14Merge pull request #4353 from myungjoo/fix/4107Jan Kotas1-0/+1
ARM/Linux: Mark r0-r3 Saved
2016-04-15ARM/Linux: Mark r0-r3 SavedMyungJoo Ham1-0/+1
Without this, exception handlers (try-catch) that try to get SP of ThePreStub's caller (managed frame) mislocate the caller's SP by 4 words (0x10) and get lost while traversing managed frames. Fix #4107 Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2016-04-14Merge pull request #4343 from pgavlin/SeparateBitPositionPat Gavlin3-47/+57
Move `BitPosition` into its own file.
2016-04-14Fix razzle build breaks in bcl.winJan Kotas1-1/+1
[tfs-changeset: 1596379]
2016-04-15Style fix: remove obsolete contentsMyungJoo Ham1-12/+0
We no longer have StartUnwindingNativeFrames. Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
2016-04-14Use beforefieldinit field for Comparer/EqualityComparer.DefaultJan Kotas2-16/+4
2016-04-14Merge pull request #4326 from dotnet-bot/from-tfsMatt Ellis4-34/+25
Merge changes from TFS
2016-04-14Merge pull request #4335 from AndyAyersMS/InlineStrategyAndy Ayers9-434/+570
Inliner: introducing InlineStrategy
2016-04-14Removing NYI for ZapUnwindDataRama Krishnan Raghupathy2-9/+12
2016-04-14Make it possible to build JIT32 in the OSS tree.Pat Gavlin4-10/+26
This change adds a new argument to build.cmd, buildjit32, that configures the build to build and link JIT32 instead of RyuJIT if the sources are available in `src/jit32`.
2016-04-14Move `BitPosition` into its own file.Pat Gavlin3-47/+57
This will allow the GC info encoder and the JIT to use this function without pulling in the entire utilcode header.
2016-04-14Inliner: introducing InlineStrategyAndy Ayers9-434/+570
Create the `InlineStrategy` class to hold inline-relevant data that spans multiple inlines. It tracks the number of inline candidates, attempts, successes, last successful policy, and holds onto the root context, and so on. The strategy is responsible for creating contexts and reporting overall results for a method (either tree-based or data-based). The strategy also includes a simple jit time estimate. From various observations, post-inline jit time can be modelled acceptably by simple linear relationships on the input IL size. The strategy uses these models to estimate the initial and current jit time. Estimate units are roughly microseconds. The strategy creates a time budget to flag cases where the estimated jit time increase due to inlining is unreasonbly large. The budget is initially based on the root method size, and may increase if there are non-discretionary force inlines. Once we have a bit more vetting of the budgeting mechanism, policies will use it to limit inlining in a small number of runaway inlining cases (see for example #2472). Remove code under MEASURE_INLINING since the strategy plus the context tree (optionally extended via policies) contains all that data and more. Likewise, consolidate a number of the compiler's inlining-related member variables into the strategy.