Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Add process launch APIs to dbgshim
|
|
Add folks to private run
|
|
|
|
Fix stack walking on Unix in case of finally
|
|
Fix GC stress setup failure on Unix-like OSes
|
|
be better supported cross-plat.
|
|
Inline refactoring: move state machine into LegacyPolicy
|
|
Fix Unix exception handling in finalizers
|
|
Fix for asserting var addr on stack
|
|
Add missing parameter name to GetEra ArgumentOutOfRangeException
|
|
Move some definitions out of gcinfoencoder.h.
|
|
There are a number of macros, method bodies, and type definitions that
do not need to be in gcinfoencoder.h. Instead, these definitions have
been moved into gcinfoencoder.cpp.
|
|
Use jitstd::list in the LSRA.
|
|
The issue is that the code in the StackFrameIterator::Filter that handles cases
when a funclet frame that was already removed from the stack due to native frames
unwinding works for catch funclets only and not for finally ones.
The ExceptionTracker::GetCallerOfActualHandlingFrame is set for catch funclets
only. To make it work for the finally funclets as well, we need to use information
from the ExceptionTracker::m_EnclosingClauseInfoForGCReporting instead.
There was also another problem in the Filter method that caused the function to
spin in an infinite loop when a parent of a funclet was also a funclet. In
such case, the code in the method rechecks the current frame but the special
functionality to check the exception trackers data needs to be skipped for
the recheck.
And finally, when we find that the current frame was a parent of an unwound
funclet from the evidence in the exception trackers, we also need to set
the fSkippingFunclet.
|
|
Inliner: fix assert about repeated failing observations
|
|
This removes the only usage of ArrayList in the JIT.
|
|
Fix race condition in Pri 2 tests, and revert those tests to Pri 1
|
|
When an inlining attempt is going to fail, the jit aims to bail out of
the attempt as quickly as possible, since any further work on this
inline will just waste time and memory. The jit monitors this in part
by asserting that it only makes one failing observation.
However, there are as few places where failing fast during inlining is
not currently possible, and repeated failing observations may occur.
This change loosens the assertion check to allow repeated
`CALLSITE_TOO_MANY_LOCALS` observations. This observation is made
at a fairly deep stack in `lvaGrabTemp` with no easy route to bail
out in case of imminent failure.
Closes #3586.
|
|
Remove the the RBM_LOWINT define. Change the LsraLimitSmallIntSet to have a better representation of callee saved
Unrelated failure in Ubuntu x64 Checked Build and Test.
|
|
|
|
Fix failing test in IntPtrGetHashCode.
|
|
Fix Ubuntu 15.10 Build break
|
|
When unhandled exception happens in a finalizer thread and there are
no managed frames till the bottom of the stack,
the Thread::VirtualUnwindToFirstManagedCallFrame then fails fast.
The fix is to make the Thread::VirtualUnwindToFirstManagedCallFrame to
return even in case no managed frame is called, which is indicated by
its returning 0 as the resulting IP address. The DispatchManagedException
then checks that and rethrows the exception instead of trying to call
UnwindManagedExceptionPass1.
I have also added INSTALL_UNHANDLED_MANAGED_EXCEPTION_TRAP to the
FinalizerThread::FinalizerThreadStart so that the unhandled exception
doesn't escape the stack.
And I also needed to modify the UNINSTALL_UNHANDLED_MANAGED_EXCEPTION_TRAP
to detect case when the unhandled exception filter was already executed so
that it doesn't double-report the unhandled exception.
|
|
This fixes https://github.com/dotnet/coreclr/issues/3517.
JIT didn't cast byref to double in morph, which caused
this assertion later.
The fix is to handle such case as well.
|
|
ARM64: Fix for handling GC register for call site
|
|
Merge changes from TFS
|
|
ARM: skip generating native image for mscorlib in case of cross build
|
|
|
|
We need to skip generating native image for mscorlib in build_mscorlib()
of ./coreclr/build.sh when we do cross build for Linux/ARM on Ubuntu
14.04 x86 64bit PC.
Signed-off-by: Geunsik Lim geunsik.lim@samsung.com
Signed-off-by: Prajwal A N an.prajwal@samsung.com
Signed-off-by: MyungJoo Ham myungjoo.ham@samsung.com
|
|
The exception's parameter name is incorrectly getting set to the intended message ("Time value was out of era range.").
|
|
The state machine used to estimate callee native code size is now an
internal part of the LegacyPolicy.
During `fgFindJumpTargets` the policy determines if the state machine
is need, and if so, sets one up. `fgFindJumpTargets` then notifies the
policy of the various opcodes in the method, and the policy uses this
to drive the state machine forward.
When the IL scan is completed, the `fgFindJumpTargets` notifies the
policy, then, for the discretionary inline case, grabs the native size
estimate, and uses that to evaluate inlinability.
The knowledge of when inlines are "always", "forced", or
"discretionary" is now encapsulated by the policy instead of being
distributed in various places in the code.
|
|
representation of callee saved
register for stress mode testing on System V OSs.
Remove the RBM_LOWINT define and change the LsraLimitSmallIntSet register
mask for System V OSs to provide a good
ratio between caller and calles saved register for the purposes of stress
testing.
Fixes issue #3540.
|
|
x86 lb excludes
|
|
Test was not updated to reflect changes in GetHashCode.
Fix #3566
|
|
Inline refactoring: revise candidacy determination
|
|
Enabling LongFile Support in PAL
|
|
Merge changes from TFS
|
|
Update Linux build instructions
|
|
|
|
[tfs-changeset: 1582170]
|
|
Rework the code to determine the key aspects of candidacy up front
rather than figuring it out eventually. In particular this ensures
that the two stages of evaulation for inlines both start at the same
point for candidates.
This will help streamline subsequent work to move the state machine
into the policy, since the state machine is only needed for the
case where the candidate is a discretionary inline, and the policy
now tracks this directly.
For the `LegacyPolicy`, if an inline is both smaller than the always
inline size and marked force inline, attribute its inlining to its
small size.
Remove bulk of the of the "evaluation in progress" candidate
observations since they don't add much value. As a result `noteCandidate`
is not needed as an external API, and can be repurposed internally as
`setCandidate`.
Change how the prejit root case is tracked to make it explicit
from the context rather than a callback to the compiler.
|
|
|
|
This fixes https://github.com/dotnet/coreclr/issues/2731.
Looking at GC heap corruption, JIT incorrectly reports the live range of
GC references so GC swept the live objects.
The issue was when JIT emits call instruction, GC live register is not
processed at all, which JIT treated them as dead.
The fix is to implement this missing part for ARM64.
|
|
SuperPMI has been udpated to accommodate this change, and should no
longer crash when run using a JIT built with these changes.
[tfs-changeset: 1582144]
|
|
|
|
Update x86 lb excludes and turn on ci testing for x86 lb.
|
|
Remove a duplicate address tree consumption.
|
|
|
|
ARM: Remove Distro/OS that have not been tested
|