Age | Commit message (Collapse) | Author | Files | Lines |
|
* Share arg validation runtest and run-pmi-diff
Use the same arg validation in runtests.py and run-pmi-diffs.py
* Add valid arches to ci_arch
|
|
Several recently added virtuals to TextWriter were missing overrides on SyncTextWriter.
We were missing overrides of the synchronous `Write(ReadOnlySpan<char>)` and `WriteLine(ReadOnlySpan<char>)` overloads. The impact here is primarily performance, though it'll still be an observable change in corner-case scenarios: rather than using the base implementation which would copy the span to an array and then invoke the properly overridden array-based Write{Line} methods, it'll now just delegate to the wrapped span methods. So it calls the correct overload now on the wrapped instance, and saves some cost in the process.
We were also missing overrides for the async `WriteLineAsync()`, `WriteAsync(ReadOnlyMemory<char>, CancellationToken)`, WriteLineAsync(ReadOnlyMemory<char>, CancellationToken)` overloads. Fixing these doesn't change the overload that's invoked on the wrapped writer, but it does cause the calls to become synchronous rather than queue a task that in turn calls the synchronized overload. Whether the new behavior is better is arguable, but it keeps it consistent with every other XxAsync method on SyncTextWriter, which in my opinion is more important... if we wanted to alter the behavior for all of the XxAsync methods, we should do it for all of them.
Also, in the StringBuilder-based overrides, we were ignoring cancellation. And in the recently added DisposeAsync, we should follow-suit with the rest of the async APIs and make it synchronous.
|
|
* Add test verifying behavior in dotnet/coreclr#19676.
* Clean up test code.
* Test what happens if we enable returning structures by value.
* Use braced initializer.
* Update Decimal tests to expect that returning a decimal by LPStruct or Currency works.
* Change handle-in-struct marshalling to expect a NotSupportedException thrown at marshal time instead of expecting a MarshalDirectiveException at signature time.
* Update Decimal Reverse-PInvoke tests.
* Disable some previously disabled return marshalling types and add a nice comment block explaining why they're disabled.
* Enable marshalling DateTime return values and add a test.
* Rename IsUnuspportedValueTypeReturn
* Add return test for ArrayWithOffset
* Remove extraneous P/Invoke.
* Fix spelling.
* Add test for successfully returning a struct that has one field of a type that is return-type blocked.
* Add explicit struct return test.
* Clean up tests.
* Fix grammer.
* Add test for struct whose managed layout doesn't require a stdcall return buffer but whose native layout does.
* Add test verifying HandleRef behavior.
* Clean up IsUnsupportedTypedefReturn per PR feedback.
|
|
|
|
This will reduce lock contention with other repos due to
https://github.com/dotnet/arcade/issues/1175.
|
|
|
|
The TypeIDMap is stored in the AppDomain and contains two hash maps -
id to MethodTable and MethodTable to id. We were missing removing
entries for MethodTables that belong to a LoaderAllocator that's being
destroyed. Thus we were leaking some memory, but also causing potential
issue. When at some point after the LoaderAllocator destruction a
MethodTable gets the same address as one of the MethodTables that was
destroyed in the past and was also recorded in the TypeIDMap, we would
incorrectly reuse the id. That is problematic in case the old
MethodTable didn't require fat id and the new does or vice versa.
I've hit assert due to that while running System.Numerics.Vectors.Tests
inside an unloadable AssemblyLoadContext.
The implementation of the fix is very primitive. It is expected that we
will be able to get rid of the TypeIDMap in a near future and so it is
not worth optimizing.
|
|
Fix issue with devirtualization and tailcalls
|
|
(#21927)
|
|
|
|
Don't optimize MultiplyNoFlags away
|
|
Range is -128 to 127, not -127 to 128.
|
|
Normalize a few more spin-wait loops
- Fixed a few more spin-waits to normalize the spin-wait duration between processors
- These spin-waits have so far not needed to be retuned to avoid unreasonably long spin-wait durations. They can be retuned as necessary in the future.
- Added a version of YieldProcessorNormalized() that normalizes based on spin-wait counts tuned for pre-Skylake processors for spin-wait loops that have not been retuned.
- Moved some files around to make YieldProcessorNormalized() and the like available in more places. Initialization is still only done in the VM. Uses outside the VM will use the defaults, where there would be no significant change from before.
- Made YieldProcessor() private outside of the GC and added System_YieldProcessor() for when the system-defined implementation is intended to be used
|
|
Expand GT_JCC/SETCC condition support
|
|
Remove altjit jobs in CI
|
|
Change test priority to 0
|
|
|
|
|
|
|
|
|
|
* Move COMException to shared partition
* Review feedback
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
Fix CRC32 instruction encoding on containment form
|
|
(#21914)
|
|
We have full native jobs for arm32 and arm64 for all scenarios, which
is a superset of everything we've run using altjit. So the altjit
jobs are no longer necessary. In addition, the altjit jobs,
especially the corefx jobs, have never run cleanly, for reasons
that have never been investigated or understood. Since we have
full native corefx runs, there is no reason to look into the altjit
failures.
|
|
[x86] Make copies of odd-size struct arguments
|
|
* Run on Debian.9.Amd64.* instead of Debian.8.Amd64.* since it's the minimum supported version of Debian
* Temporary remove Windows.10.Nano.Amd64.Open and Windows.7.Amd64.Open blocked by #21693 #21796
* Don't need a non-portable RHEL7 build and continue using centos7_x64_build_image for building linux-x64 packages (the same way as buildpipeline does)
* Skip submission to Helix if there is are queues to submit to
* Use static string for Helix Сreator property
* Increase timeout for official build test jobs
|
|
Fix VZEROUPPER for HW intrinsic
|
|
|
|
"brew update" before "brew install"
To work around https://github.com/dotnet/coreclr/issues/21910
|
|
|
|
* Move restoring ExecutionContext out of generic methods
* Move one back
|
|
trimmed (#21920)
|
|
master-20190109.7, respectively (#21905)
|
|
|
|
AndyAyersMS/ReconcileInlineBudgetUsingSizeOfImportedIL
JIT: modify inline budget update to use estimated imported IL size
|
|
Check the optimize settings of JIT test projects.
|
|
|
|
|
|
* Implementation of ComponentDependencyResolver
PInvokes into hostpolicy.dll (which should live next to the runtime and thus always be reachable).
If the PInvoke fails (missing hostpolicy.dll) we will fail for now.
Adds tests for the API into CoreCLR repo. The main reason is that with corerun
we can easily mock the hostpolicy.dll since there's none to start with.
Writing the same tests in CoreFX or any other place which starts the runtime through
hostpolicy would require test-only functionality to exist in either the class itself
or in the hostpolicy.
* Fix test project file to work outside of VS
* Better test cleanup to not leave artifacts on disk.
* CDR native resolution tests
Add native resolution tests
* Implements detailed error reporting for ComponentDependencyResolver.
Registers error writer with the hostpolicy to receive detailed errors. Uses that in the exception.
Modifications to the mock and the tests to be able to verify the functionality.
* Revert overly eager cleanup
* Change public API surface naming to match the approved API surface.
* Fix nits.
* Fix renames.
|
|
and a tail call optimization
Explicit tail calls are now checked for and blocked from performing an unboxing operation in impDevirtualizeCall
If late devirtualization calls impDevirtualizeCall with an IMPLICIT_TAILCALL we will clear this flag if we
decide to perform the unboxing operation.
|
|
|
|
* Pass the minimum supported version of macOS option to both compile and link stages in configurecompiler.cmake
* Enable OSX.1012.Amd64.* open and internal queues and add OSX.1014.Amd64 queue in eng/platform-matrix.yml
|
|
* Add simple test for the LayoutClassMarshaler (most of the code is already covered by the struct marshalling tests).
* Add test for blittable layout class.
* Apparently layout classes are passed by value when passed as struct fields instead of byref.
|
|
This is the first step to moving OperationStatus from corefx into coreclr. It'll be used by the transcoding APIs which live in System.Private.CoreLib.
|
|
- Increase the polling interval to 20 seconds.
- Provide an opt-out option to the EventPipe file polling.
|
|
The DynamicMethodTable::AddMethodsToList was incorrectly allocating the
MethodDescChunk from the domain's LoaderAllocator instead of the context
specific one. Thus the allocated memory was leaking after a collectible
AssemblyLoadContext was collected.
There was also a problem with the DynamicMethodDesc::Destroy being
called twice for collectible classes - once by
RuntimeMethodHandle::Destroy() and once when the DomainFile destructor
was called. Due to the primary issue, this problem was not visible,
since the domain's LoaderAllocator is never unmapped. But it started to
cause AV after the primary issue was fixed.
|
|
|
|
For the release branches, we need to specify the branch name when pulling down coreclr test artifacts, and not just pull down from master. This change modifies perf-prep.sh to allow us to specify the branch name, which we will then port to the release branches.
|
|
Some IR cleanup
|
|
* Remove extraneous eightbytes check and add tests.
* Interger -> Integer
* Missed Helper.cs
* Handle field sizes larger than 8 bytes in AssignClassifiedEightByteTypes
* Move CoreFX test case into CoreCLR. Fix the SystemV eightbyte classifier to correctly classify the second eightbyte when a single field crosses the eightbyte boundary (such as an in-place array of three 4-byte enums).
* Enable passing user defined structs in in-place arrays in a structure if SystemV ABI expects it.
* Correctly handle a field spanning two full eightbytes.
* Just directly assign 0 to accumulatedSizeForEightByte
* Change multi-eightbyte field handling to be a loop as per PR feedback.
* Remove extraneous whitespace.
|