Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Cherrypick only test parts of below patches in public dotnet/runtime github
- be8e050a6d27040d6c249382d99d57d973e919b2 Implement instantiating and unboxing through portable stublinker code… (#106)
- 0e949491faee53d2a7ad4d5649be17e98e5d3a96 Some minor ABI stress improvements
- 3f339687a8151e989bbb4673aab9b0abcddf5642 Mark emitted types assembly as collectible in ABI stress (dotnet/coreclr#26253)
- a25dd1a45b6fdad114ffaa915550906c986aa1ca Remove redundant ABI stress tests (dotnet/coreclr#26183)
- 57945676a6395da61b61ce427a055e77d330db86 Fix GenerateShuffleArray to support cyclic shuffles (dotnet/coreclr#26169)
- 3b0ba1ee24823030a3fc7278dd064d24a49a90bb Add ABI stress tests (dotnet/coreclr#26090)
|
|
|
|
* Fail to explicitly tail call on x86 unix.
* Correctly return 100
* Correct return value
* Add noway assert in morphTailCall to avoid morphing slow tail calls on unix.
* Address feedback
|
|
This is the fix for #27924. This is a GC hole bug that was found externally, #27590.
The cause is that the JIT was using the target type of the subtract when it needed
to make a copy of the source, but it needs to use the source type.
## Customer Impact
Corruption of state that is non-deterministic and hard to track down.
## Regression?
Not a recent regression, but exposed by Unsafe.ByteOffset.
## Testing
The fix has been verified in the runtime repo.
## Risk
Low: The fix is straightfoward and only impacts 3 lines of code.
|
|
|
|
* Port the 5.0 fix for issue #1104 3.1
- Pull Request Runtime\#1734
- This change corrects a cut-and paste typo with a previous commit.
- Includes test case Runtime_1104.cs
* Updated the csproj to use 3.1 syntax
|
|
* [release/3.1] Port fix for JIT silent bad code
Release/3.1 port of https://github.com/dotnet/runtime/pull/797.
Fixes https://github.com/dotnet/runtime/issues/764
The jit might incorrectly order a read from a struct field with an operation
that modifies the field, so that the read returns the wrong value.
Silent bad code; program behaves incorrectly.
Yes, introduced in the 3.0 cycle.
Verified the user's test case now passes; no diffs seen in any existing framework
or test code.
**Low**: the jit is now spilling the eval stack entries to temps in cases where it
did not before; this should be conservatively safe.
cc: @brucefo
____
If we're appending an assignment whose LHS is is a location within a local
struct, we need to spill all references to that struct from the eval stack.
Update the existing logic for this to handle the case where the LHS is a field
of a local struct, and the field is updated by unusual means (here, `initobj`).
Fixes dotnet/runtime#764.
* Fix test
|
|
Fix for #27923
The jit might fail to locate a class handle for a ref class, leading to an
unexpected crash while jitting.
## Customer Impact
Unexpected and hard to diagnose crash/exception
## Regression?
Yes, introduced during the development 3.0 cycle. 2.x behaves correctly.
## Testing
Verified the user's test case now passes; no diffs seen in any existing
framework or test code.
## Risk
**Low**: the jit will now fall back to using the handle for System.Object if no
better option can be found.
cc @BruceForstall
____
In some cases we may end up in lvaSetClass without a valid ref class handle
from either the IR or the stack. Use the handle for object as a conservative
fallback.
|
|
* Update dependencies from https://github.com/dotnet/corefx build 20190903.6
- Microsoft.NETCore.Platforms - 3.0.0-rc1.19453.6
- Microsoft.Private.CoreFx.NETCoreApp - 4.7.0-rc1.19453.6
* Update dependencies from https://github.com/dotnet/corefx build 20190904.8
- Microsoft.NETCore.Platforms - 3.0.0-rc1.19454.8
- Microsoft.Private.CoreFx.NETCoreApp - 4.7.0-rc1.19454.8
* Update dependencies from https://github.com/dotnet/corefx build 20190906.2
- Microsoft.NETCore.Platforms - 3.1.0-preview1.19456.2
- Microsoft.Private.CoreFx.NETCoreApp - 4.7.0-preview1.19456.2
* changing the target framework for tests to 3.1
* Update dependencies from https://github.com/dotnet/corefx build 20190906.20
- Microsoft.NETCore.Platforms - 3.1.0-preview1.19456.20
- Microsoft.Private.CoreFx.NETCoreApp - 4.7.0-preview1.19456.20
* Update dependencies from https://github.com/dotnet/corefx build 20190907.5
- Microsoft.NETCore.Platforms - 3.1.0-preview1.19457.5
- Microsoft.Private.CoreFx.NETCoreApp - 4.7.0-preview1.19457.5
* Update dependencies from https://github.com/dotnet/corefx build 20190909.13
- Microsoft.NETCore.Platforms - 3.1.0-preview1.19459.13
- Microsoft.Private.CoreFx.NETCoreApp - 4.7.0-preview1.19459.13
* 3.0 -> 3.1
|
|
before the SIMDScalar handling. (#25905) (#25987)
* Ensure that we check for implicit ivals for single argument intrinsics before the SIMDScalar handling.
* Adding test template entries for the unary overloads of the Sse41.Round functions
* Regenerating the hardware intrinsic test templates.
|
|
* Do not fast tail call if caller has multislot structs
* apply patch
* Address offline feedback
|
|
|
|
* Remove IFormattable
* Hardcode characters
* Add tests
|
|
Fix Issue #25134 - AssertionProp incorrectly removes cast from uint
|
|
Fix #25245
|
|
|
|
Add additional check for the GT_UNSIGNED flag
+ Ran clang-format
+ Code review feedback, use IsUnsigned()
|
|
* Fix contained LEA handling
This adds an LEA case to both `LinearScan::BuildOperandUses` and `CodeGen::genConsumeRegs`.
Fix #25039
|
|
(#20900)
Fix an issue that is reproduced when:
1) a method requires GSSecurityCookie (e.g. when allocating unsafe buffer using localloc) and
2) one of the method parameters is "vulnerable" and requires a shadow variable to be created and used instead of the original parameter variable and
3) the method parameter has small signed integer type (i.e. int8 or int16) and
4) the value of the parameter is converted to unsigned type (e.g. uint8 or uint16).
|
|
|
|
It doesn't work on OSX and Alpine.
It shows random failures on Windows as well, that we do not want to see in our PR/CI outerloop testing.
|
|
There was a typo for Unix (it is COMPlus_GCStress, not COMPlus_GcStress, but COMPlus_GcStressOnDirectCalls was correct). That was why the test passed on OSX.
|
|
If a call site fails tail call stress validation, don't consider it for
implicit tail calling either.
In normal jitting we defer this level of validation until impImportCall
to avoid duplicating work.
This avoids an assert when we have invalid IL.
Fixes #25027.
|
|
* Extract ReplaceInstrAfterCall.
* Avoid GCStress when return multireg with pointers.
Determinate when we need to protect the second register and do not cause GCStress in such cases.
* Add a repro test.
* Reenable MethodImplOptionsTests.
* Extract IsGcCoveregeInterruptInstruction.
That changes how we do checks for arm32 in `IsGcCoverageInterrupt`.
* Tolerate direct call to JIT_RareDisableHelper.
x86 ILStubClass:IL_STUB_PInvoke(byref,ref,int,byref):int generates it like:
Generating: N119 ( 4, 7) [000118] ------------ * RETURNTRAP int REG NA
IN0021: cmp dword ptr [0F9BF9F8H], 0
New Basic Block BB10 [0009] created.
IN0022: je L_M6496_BB10
Call: GCvars=00000001 {V01}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0023: call CORINFO_HELP_STOP_FOR_GC
* Support GC stress protect return 1/2/both Unix x64.
* Fix arm64.
Do not insert GC Stress instrucitons when we can't determinate the exact return kind.
* Fix review1.
* Fix review2.
* Change the test as Andy suggested.
* Fix some typos.
* Replace all SLOT with PBYTE.
* Disable assert that can fail because of multithreading.
|
|
Fix an issue that is reproduced when
1) a register is used in the prolog for initializing GSSecurityCookie (i.e. the register contains a random non-zero value) and
2) the same register holds a must-init GC variable in the next basic block and
3) the variable is live at the beginning of this basic block.
The register was not zeroed at the end of the prolog and this was causing segmentation fault during GC.Collect().
|
|
* Cleanup block stores and test for 24846
Fix zero-length assert/bad codegen for initblk.
Remove redundant assertions in codegen and those that don't directly relate to codegen requirements.
Eliminate redundant LEA that was being generated by `genCodeForCpBlk`.
Rename `genCodeFor[Cp|Init]Blk` to `genCodeFor[Cp|Init]BlkHelper` to parallel the other forms.
Fix the test case for #24846.
|
|
the Sse41 class (#24886)
* Removing the TestAllOnes, TestAllZeros, and TestMixOnesZeros methods from the Sse41 class
* Removing JIT support for the SSE41_TestAllOnes, SSE41_TestAllZeros, and SSE41_TestMixOnesZeros intrinsics
* Removing tests for the Sse41.TestAllOnes, Sse41.TestAllZeros, and Sse41.TestMixOnesZeros methods
|
|
* Fix build-tests script for cross build and fix tests for armel
* Handle case of -skipcrossgen for cross builds
* Fix build error in case of cross builds when ROOTFS_DIR is not passed explicitly
* Fix portable build parameter setup for armel tests build
* Move force of non-portable build for armel from build.sh/build-test.sh to init-distro-rid.sh
* Fix priority1 tests build for armel
|
|
Fix #24846
|
|
Test was evidently assuming that because an object that referred to an array
was pinned, so was the array. Failure was intermittent, GC is not guaranteed
to move objects or to render their former contents inaccessible.
Fixes #24173.
Fixes #24464.
|
|
* Change outerloop timeout per collection.
We have different test collections timeouts on Alpine.38.Amd64, examples:
https://mc.dot.net/#/user/coreclr-ci/ci~2Fdotnet~2Fcoreclr~2Frefs~2Fheads~2Fmaster/test~2Ffunctional~2Fcli~2F/20190521.780/workItem/JIT.jit64.hfa/wilogs
https://mc.dot.net/#/user/coreclr-ci/ci~2Fdotnet~2Fcoreclr~2Frefs~2Fheads~2Fmaster/test~2Ffunctional~2Fcli~2F/20190521.779/workItem/PayloadGroup0/wilogs
https://mc.dot.net/#/user/coreclr-ci/ci~2Fdotnet~2Fcoreclr~2Frefs~2Fheads~2Fmaster/test~2Ffunctional~2Fr2r~2Fcli~2F/20190521.783/workItem/Loader.classloader.TypeGeneratorTests.TypeGeneratorTest0-299/wilogs
* Move _il_relthread-race to pri1 and mark as long running GC test.
|
|
This bug is a duplicate of #18522. Adding the additional repro.
Close #24657
|
|
Revert this when https://github.com/dotnet/coreclr/issues/24633 get fixed.
|
|
Add stack probing in localloc with fixed outgoing arg frames
The SP adjustment when we re-establish the outgoing argument
space after doing a localloc must be probed. This is true for
all architectures with fixed outgoing argument space, namely,
everything but x86.
Add new tests for this.
Fixes #23915
|
|
* Replace backslashes with forward slashes in tests/src/JIT/superpmi/TestProjects.txt
* Enable JIT\superpmi\superpmicollect.csproj on Linux and macOS
|
|
sandreenko/excludeTestsThatAreFailingUnderGCStress
Exclude tests that are failing under gc stress
|
|
The issue is https://github.com/dotnet/coreclr/issues/24464
|
|
This API is necessary for attaching profilers to be able to ReJIT methods and replace everything that uses the old IL.
|
|
See examples in https://dev.azure.com/dnceng/public/_build/results?buildId=186855&view=ms.vss-test-web.build-test-results-tab
|
|
* Remove OsEnvironment, PackagesDir, and CoreCLRBinDir properties
* Replace usage of __BuildArch with BuildArch
* Simplify test timing out on ARM64
|
|
Disable a tail call test when using minopts
Fixes https://github.com/dotnet/coreclr/issues/24424
|
|
Mark local struct as having overlapping fields after struct reinterpretation
|
|
* Adding some templates from which other HWIntrinsic test templates can be generated
* Regenerating the HWIntrinsic tests
|
|
Methods like System.Runtime.CompilerServices.Unsafe.As<TFrom, TTo> may
have struct reinterpretation when function signature specifies Struct1&
and the method returns Struct2& where Struct1 and Struct2 are different
structs. This may confuse jit optimizations (in particular, value
numbering) because fields of a struct of type Struct1 may be accessed
using handles of Struct2. This fix marks the source local involved in
such struct reinterpretation as having overlapping fields. That prevents
SSA builder from inserting the local into SSA.
Fixes #24159.
No diffs in framework assemblies and coreclr benchmarks.
|
|
* Update dependencies from https://github.com/dotnet/corefx build 20190506.1
- Microsoft.NETCore.Platforms - 3.0.0-preview6.19256.1
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview6.19256.1
* Use last stable version of System.Numerics.Vectors package
* Add Microsoft.Bcl.AsyncInterfaces package
* Disable Microsoft.Bcl.AsyncInterfaces
|
|
* Handle E_NOTIMPL return from CoInitializeEx.
* Remove unneeded STA attributes.
|
|
|
|
Add two additional HVA tests:
|
|
Fix GCStress for multireg returns.
|