summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-01-11Share arg validation runtest and run-pmi-diff (#20812)Jarret Shook3-218/+424
* 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
2019-01-11Add missing overrides to SyncTextWriter (#21956)Stephen Toub1-6/+54
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.
2019-01-11Enable returning more complex structures via PInvoke returns. (#21470)Jeremy Koritzinsky23-70/+304
* 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.
2019-01-11Remove the Smarty lst files from CoreCLR (#21962)Jarret Shook2-155842/+0
2019-01-11Use a blob feed specifically for coreclr (#21947)Sven Boemer1-1/+1
This will reduce lock contention with other repos due to https://github.com/dotnet/arcade/issues/1175.
2019-01-11Flowing the nativeCodeVersion to DebuggerJitInfo (#21925)Andrew Au14-82/+98
2019-01-11Add cleanup of the TypeIDMap at unload time (#21943)Jan Vorlicek5-0/+60
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.
2019-01-10Merge pull request #21804 from briansull/fix-unbox-optBrian Sullivan7-8/+206
Fix issue with devirtualization and tailcalls
2019-01-10Update CoreFx, PgoData to preview.19060.1, master-20190110.3, respectively ↵dotnet-maestro-bot1-5/+5
(#21927)
2019-01-10Add WithCancellation for async enumerables (#21939)Stephen Toub4-51/+90
2019-01-10Merge pull request #21928 from fiigii/fixMulxCarol Eidt4-0/+146
Don't optimize MultiplyNoFlags away
2019-01-10JIT: fix byte range used by RangeCheck (#21915)Andy Ayers3-1/+144
Range is -128 to 127, not -127 to 128.
2019-01-10Normalize a few more spin-wait loops (#21586)Koundinya Veluri21-194/+275
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
2019-01-10Merge pull request #17733 from mikedn/cc-cond2Brian Sullivan16-935/+562
Expand GT_JCC/SETCC condition support
2019-01-10Merge pull request #21937 from BruceForstall/RemoveAltJitJobsBruce Forstall1-87/+4
Remove altjit jobs in CI
2019-01-10Code Review feedbackBrian Sullivan3-7/+7
Change test priority to 0
2019-01-10Don't optimize BMI2 MultiplyNoFlags awayFei Peng4-0/+146
2019-01-10disable dynamo test on arm32/64 (#21940)Sung Yoon Whang1-0/+6
2019-01-10New test for DevDiv_754566Brian Sullivan3-0/+172
2019-01-10Move public interface ISymDocumentWriter to shared location (#21931)Marek Safar4-32/+13
2019-01-10Move COMException to shared partition (dotnet/corert#6803)Marek Safar3-17/+17
* Move COMException to shared partition * Review feedback Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2019-01-10Merge pull request #21864 from fiigii/fixscalarmemCarol Eidt6-23/+381
Fix CRC32 instruction encoding on containment form
2019-01-10Add an exclusion for hugeexpr1 on arm32 under `JitOptimizationSensitive` . ↵Sergey Andreenko1-2/+3
(#21914)
2019-01-10Remove altjit jobs in CIBruce Forstall1-87/+4
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.
2019-01-10Merge pull request #21815 from CarolEidt/Fix752890Carol Eidt2-4/+10
[x86] Make copies of odd-size struct arguments
2019-01-10Disable what fails and blocks transitioning to Azure DevOps (#21926)Egor Chesakov4-24/+24
* 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
2019-01-10Merge pull request #21888 from fiigii/fixVzeropperCarol Eidt2-8/+14
Fix VZEROUPPER for HW intrinsic
2019-01-10Moves EnvironmentVariableTarget enum to shared partition (#21930)Marek Safar3-7/+14
2019-01-10Work around OSX native dependency install issue (#21913)Sven Boemer1-1/+5
"brew update" before "brew install" To work around https://github.com/dotnet/coreclr/issues/21910
2019-01-10Re-enable publishing of transport packages (#21922)Sven Boemer1-10/+3
2019-01-10Move restoring ExecutionContext out of generic methods (#21909)Ben Adams2-62/+25
* Move restoring ExecutionContext out of generic methods * Move one back
2019-01-09Prevent AsyncIteratororMethodBuilder.ObjectIdForDebugger from gettingg ↵Chuck Ries1-0/+3
trimmed (#21920)
2019-01-09Update CoreClr, CoreFx, PgoData to preview-27309-02, preview.19059.7, ↵dotnet-maestro-bot2-8/+8
master-20190109.7, respectively (#21905)
2019-01-09PR FeedbackCarol Eidt1-3/+1
2019-01-09Merge pull request #21893 from ↵Andy Ayers5-18/+85
AndyAyersMS/ReconcileInlineBudgetUsingSizeOfImportedIL JIT: modify inline budget update to use estimated imported IL size
2019-01-09Merge pull request #21779 from mazong1123/fix-19166-checkproj-optAndy Ayers12-36/+87
Check the optimize settings of JIT test projects.
2019-01-09Added ifdef for FEATURE_TAILCALL_OPTBrian Sullivan1-0/+2
2019-01-09jit formatBrian Sullivan3-6/+7
2019-01-09Implement AssemblyDependencyResolver (#21896)Jeremy Koritzinsky13-0/+1516
* 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.
2019-01-09When performing devirtualization we can not do both an unboxing optimization ↵Brian Sullivan4-7/+30
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.
2019-01-09Fix CRC32 instruction encoding on containment formFei Peng6-23/+381
2019-01-09Specify the minimum supported version of macOS (#21816)Egor Chesakov2-3/+10
* 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
2019-01-09Add tests for our layout-class marshalling (#20867)Jeremy Koritzinsky5-0/+351
* 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.
2019-01-09Move OperationStatus into shared source (#21912)Levi Broderick2-0/+35
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.
2019-01-09Addressing https://github.com/dotnet/coreclr/issues/21461 (#21771)José Rivero2-10/+19
- Increase the polling interval to 20 seconds. - Provide an opt-out option to the EventPipe file polling.
2019-01-09Fix DynamicMethodDesc memory leak (#21891)Jan Vorlicek4-63/+47
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.
2019-01-09Change CoreLib native image to be R2R by default on all platforms (#21497)Fadi Hanna2-22/+7
2019-01-09Fix perf-prep to pass the branch name (#21911)Michelle McDaniel1-4/+9
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.
2019-01-09Merge pull request #20772 from mikedn/ir-cleanupBruce Forstall19-300/+77
Some IR cleanup
2019-01-09Remove extraneous eightbytes check for native structures and add tests. (#21590)Jeremy Koritzinsky9-86/+371
* 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.