Age | Commit message (Collapse) | Author | Files | Lines |
|
* first cut of multiple candidates
* new positive case for diamond shape
* Add proper missing implementation detection and positive diamond shape scenario support. Untested
* fix bug and get test to pass
* Add more diamond shape pos/neg tests
* Fix bad I8
* Add GVM tests to diamond shape
* GVM working
* Change test case to better match diamondshape scenario
* Fix MethodImpl::Iterator::GetMethodDesc and optimize no-method impl scenario
* Update methodimpl test to include multiple slots and fix a bug
* Temporarily disable incremental build in this branch
* Update methodimpl to include multiple methodipml overriding scenario. This is triggering some bugs and need to investigate
* Fix a buffer overrrun bug with interface methodimpl
* Update after self-review
* Add proper methodImpl validation for methods
* Address feedback. Refactoring pending
|
|
CoreCLR (#13172)
|
|
* Update dependencies and use live/packaged ilasm
* Fix ilasm excessive stack usage when deleting lots of generic parameters
|
|
* Support protected methods
* add a test for diamond shape scenario and tentatively throw exception when that happens
|
|
* allow non-zero RVA on abstract interface method in ilasm
* Revert "allow non-zero RVA on abstract interface method in ilasm"
This reverts commit eecb8024e58f14a20e5e49359f38019f5768ac41.
* add a test case and allow virtual non-abstract method in ilasm
* allow non-abstract methods in the loader
* fixup dispatch map
* support for simple default interface method scenario
* fix a bug with incorrect usage of MethodIterator skpping the first method. add a test case for overriding but it may not be what we want
* add another simple test case for base class
* allow private/internal methods in ilasm and add a explict impl test
* update reference to mscorlib in il test
* add shared generics and variance case
* allow interface dispatch to return instantiating stubs with the right PARAM_TYPE calling conv
* simple factoring and add a valuetype test case
* add a test case for generic virtual methods
* a bit more refactoring by moving the CALLCONV_PARAMTYPE logic inside getMethodSigInternal
* support explicit methodimpl and remove implicit methodimpl test case
* update test cases to give more clear output
* Fix a bug where GetMethodDescForSlot chokes on interface MethodDesc without precode. This is accdentally discovered by methodimpl test case when iterating methods on a default interface method that has already been JITted
* cleanup code after review and add a bit more comments
* update comments
* only use custom ILAsm for default interface methods tests - some tests are choking on CoreCLR ilasm for security related stuff
* address comments and allow instance methods, and add a constraint value type call test scenario
* disable the failing protected method scenario
|
|
Mark shift helpers that produce an unused value as such.
|
|
Disable StringJoin test14
|
|
Fixes VSO 462274.
|
|
|
|
Add VC Runtime binaries to Core_Root for ARM tests
|
|
|
|
|
|
Tail recursion elimination transforms a tail call into a loop.
If compInitMem is set, we may need to zero-initialize some locals. Normally it's done in the prolog
but the loop we are creating can't include the prolog. The fix is to insert zero-initialization
for all non-parameter non-temp locals in the loop. Liveness phase will remove unnecessary initializations.
We never hit this case with normal C# code since C# definite assignment rules ensure that there are
no uninitialized locals in the generated msil. In the repro the method with tail recursion is a dynamic method
and it has an uninitialized local.
|
|
* Fix GitHub_3449 test
This test was looking for one answer for ARM and ARM64 but another
for other architectures. This didn't work for ARM32 on Windows
(compared to ARM32 on Linux).
Instead, simply allow either answer. This doesn't seem like a
terrible loss of precision, since we already allowed different
answers based on the platform.
* Update comment
|
|
Do not copy bin subdirectories to test core_root
|
|
|
|
Fix the package restore for arm64 and arm32
|
|
|
|
See dotnet/corefx#21673 for motivation. This test fails on CoreRT.
|
|
|
|
* Replace ScriptGenerator project.json with csproj
* Update project.json occurrences in docs
Fix few typos.
* Remove project.json comments
|
|
|
|
MethodTable-based and TypeDesc-based helpers. (#12475)
Related issue: #12463
|
|
|
|
fgMorphRecognizeBoxNullable doesn't work correctly when called during re-morphing. In particular it can't handle late args in the call to CORINFO_HELP_BOX_NULLABLE. The test case results in several asserts (the first one in lsra) followed by an infinite loop in the jit.
The reason the optimization is not performed during global morph is that only patterns with GT_EQ and GT_NE are handled. Some versions of csc generate
...
ldnull
cgt.un
ret
for
this C# line
null != this.value
so we get GT_GT instead.
The fix has two parts:
1. Don't attempt to perform the optimization when called during re-morph and the struct parameter is a late arg.
2. Call fgMorphRecognizeBoxNullable for GT_GT nodes with GTF_UNSIGNED set. This allows the optimization to fire during global morph.
|
|
Enable the Musicstore tests, since the failure in JitBench is
now fixed.
|
|
This change adds regression test for EH getting stuck in an infinite
loop when NullReferenceException happens inside a handler of another
NullReferenceException.
|
|
|
|
|
|
|
|
* Fix a COMDouble::Round() issue
fixes https://github.com/dotnet/coreclr/issues/12137
* Add a couple tests for Math.Round(double)
based on https://github.com/dotnet/coreclr/issues/12137
* Use G17 format specifier for printing double values
|
|
The __arglist version of varargs is not supported on CoreCLR
Fixes issue #12146 - crossgen warning - Vararg calling convention not supported.
Added a new test case for String Concat
Added <DebugType>None
Fixed src\JIT\Directed\Misc\gettype csproj as well
|
|
Explicitly download correct version of CoreDisTools package
|
|
|
|
Fix SuperPMI collection script to allow passing arch/flavor args
|
|
Use roslyn common props in test build
|
|
Previously, runtest would always be invoked with the default
args, meaning x64 debug.
This script is not used in the coreclr test run.
|
|
Need to workaround compiler bug https://github.com/dotnet/roslyn/issues/14785
so disabling some test cases in the JIT isisnt tests.
|
|
|
|
This will enable unix arm64 testing in CI. Currently there are no
default tirggers; however, anyone will be able to request the jobs.
|
|
Fixed files encoding to utf8 (issue #12182)
|
|
|
|
Lowering::LowerFastTailCall has code that handles the case when the caller and the callee both have parameters
passed on the stack and the callee has register arguments that are computed from the caller's stack-passed arguments.
In that case the stack arguments of the callee are set up in the caller's incoming argument area so they override
the caller's arguments. Lowering::LowerFastTailCall creates temps for any caller's arguments passed on the stack that are
used to compute callee's register arguments. That code had a bug where it was converting GT_LCL_FLD nodes into
GT_LCL_VAR nodes. That's problematic both for the case of a single-field struct with a double field and for multi-field structs.
In the former case we were getting LSRA asserts in checked builds and SBCG in release builds. In the latter case we were getting SBCG
both in checked and release builds.
The fix is not to convert GT_LCL_FLD nodes into GT_LCL_VAR nodes and mark the new temps as not-enregisterable if the
local is not-enregisterable.
An alternative fix would be to create multiple register temps for each GT_LCL_FLD or GT_LCL_VAR targeting the local but that
would complicate the code and I decided to go with a simlper solution for this uncommon case.
|
|
Fix TestNugetRuntimeId.
|
|
This change updates the iteration behavior for the following benchmarks, so that
they generally run for about 1 second per iteration:
* Inline/InlineGCStruct
* Inline/NoThrowInline
* Span/IndexerBench/Indexer4
* Functions/MathTests/*
It also removes the length 1, 10, and 1000 variants of the Span/SpanBench
tests, leaving just the length 100 variants. Analysis has shown that there
is no need to test varying lengths here. Iteration counts for these tests
have been left as is and will be fixed subsequently.
Partially addresses #11654.
|
|
Stop extraneously setting tail call stress
|
|
Tests GitHub_10780 and GitHub_11689 are repro cases for issues that don't
have anything to do with tail calls; the bit of code in their csproj's
that sets COMPlus_TailCallStress was an accidental copy-paste inclusion
from GitHub_11408. Remove that extra code.
|
|
|
|
Disable tail call stress in GH_11689 if ZapDisable is enabled.
|
|
|