Carol Eidt [Sat, 15 Dec 2018 00:00:36 +0000 (16:00 -0800)]
Merge pull request #21535 from CarolEidt/Fix21500
Update var life for multireg local
Tanner Gooding [Fri, 14 Dec 2018 21:41:07 +0000 (13:41 -0800)]
Simplifying the emitter handling of 4-byte encoded SSE instructions (#21528)
dotnet-maestro-bot [Fri, 14 Dec 2018 12:06:12 +0000 (04:06 -0800)]
Update CoreClr, CoreFx, CoreSetup to preview-27213-02, preview.18613.4, preview-27213-01, respectively (master) (#21503)
* Update CoreClr, CoreFx, CoreSetup to preview-27213-02, preview.18613.4, preview-27213-01, respectively
* Add System.Threading.AccessControl to CoreFX test deps
Michal Strehovský [Fri, 14 Dec 2018 11:21:45 +0000 (12:21 +0100)]
Implement two pass algorithm for variant interface dispatch (#21355)
Fixes #20452.
Andrew Au [Fri, 14 Dec 2018 06:29:46 +0000 (22:29 -0800)]
Setting the m_willBlockOnGarbageCollectionEvent earlier and only when we will block to avoid the async break deadlock (#21319)
Setting the m_willBlockOnGarbageCollectionEvent earlier and only when we will block to avoid the async break deadlock
Matt Warren [Fri, 14 Dec 2018 01:37:45 +0000 (01:37 +0000)]
'mscorlib' link returns 404 -> 'System.Private.CoreLib' (#34086)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Egor Chesakov [Fri, 14 Dec 2018 04:05:38 +0000 (20:05 -0800)]
Running and visualizing tests in AzureDevOps (Part 1) (#21502)
* Enable Azure Pipelines reporter so the test results can be seen at one place (i.e. "Tests" tab) - TestRunNamePrefix should encode all the needed information for a test run to be identifiable.
* Scenarios property should use comma (not semi-colon) to work correctly on non-Windows.
* Specify timeout to test jobs (the numbers are taken from netci.groovy) - we would adjust them as soon as we get this running in each PR.
* Specify timeout for Helix work items (the number is taken from buildpipeline) - same as above.
* Specify helixType and helixRepo properties to the job and use _HelixType and _HelixSource variables in MSBuild project instead of defining them manually.
* Limit Pri0 Checked test jobs to running against pull requests. This also should be limited in the future to "default" build definition name - so when we have PR workload selection feature working we can distinguish between default PR validation and user triggered jobs.
* Remove "Prepare tests for helix" step - instead of archiving Core_Root and tests folders ourselves - directly specify them as correlation payload and work item payload directories and let the archiving be handled by Helix Sdk.
Carol Eidt [Thu, 13 Dec 2018 23:46:40 +0000 (15:46 -0800)]
Update var life for multireg local
When a multi-reg var is defined by a call, but doesn't currently reside in a register,
we must still update liveness.
Fix #21500
Mike McLaughlin [Thu, 13 Dec 2018 23:37:21 +0000 (15:37 -0800)]
Fixes issue #21485 and #21484 (#21526)
Issue #21485: fix EnumProcessModules hPseudoCurrentProcess bug.
Added handle reference.
Issue #21484: createdump segfaults with ASP.NET app
The problem is the ClrDataModule Request faulted on a dynamic module
getting the file layout flag.
Fixed the Request code not get the file layout and in the crash dump
code skip any dynamic modules.
Andy Ayers [Thu, 13 Dec 2018 23:03:34 +0000 (15:03 -0800)]
JIT: avoid folding operations with relocatable immediates (#21511)
In general, don't fold operations on relocatable immediates. Only allow EQ/NE folding, since relocation should preserve identity but not bit values or relative comparisons.
Closes #21483.
Aaron Robinson [Thu, 13 Dec 2018 22:41:08 +0000 (14:41 -0800)]
Minor cleanup of the interoputil.h API (#21476)
Aaron Robinson [Thu, 13 Dec 2018 22:36:24 +0000 (14:36 -0800)]
Suppress warning of obsolete API (#21529)
Carol Eidt [Thu, 13 Dec 2018 21:18:29 +0000 (13:18 -0800)]
Merge pull request #21527 from CarolEidt/FixIfdef
Fix HWIntrinsics ifdef
Carol Eidt [Thu, 13 Dec 2018 18:12:19 +0000 (10:12 -0800)]
Fix HWIntrinsics ifdef
Fei Peng [Thu, 13 Dec 2018 17:00:16 +0000 (09:00 -0800)]
Fix hardware intrinsc API XML comments (#21515)
* Fix AVX2 and SSE2 XML comments
* Fix ARM intrinsic XML comments
Tanner Gooding [Thu, 13 Dec 2018 15:48:10 +0000 (07:48 -0800)]
Fixing up configEnableISA and Compiler::compSetProcessor to be consistent with EEJitManager::SetCpuInfo in how ISA support checks are done (#21499)
Carol Eidt [Thu, 13 Dec 2018 05:23:46 +0000 (21:23 -0800)]
Merge pull request #21304 from CarolEidt/NonObjSIMD
Don't require BLK nodes for SIMD
Stephen Toub [Thu, 13 Dec 2018 04:29:47 +0000 (23:29 -0500)]
Suppress unused warnings for events raised by the VM (#21520)
Brian Sullivan [Thu, 13 Dec 2018 01:11:35 +0000 (17:11 -0800)]
Merge pull request #21512 from briansull/fix_750014
Fix for PMI assert: 'vnWx != NoVN'
Andy Ayers [Thu, 13 Dec 2018 00:56:07 +0000 (16:56 -0800)]
JIT: optimize unbox/unbox.any when type is known (#21501)
Optimize away the unbox type test when the jit knows the type of object
being unboxed and can resolve the type comparison at jit time.
Closes #14473.
Andy Ayers [Thu, 13 Dec 2018 00:54:08 +0000 (16:54 -0800)]
JIT: handle byref-typed immediates in encoding (#21477)
We may now retype some immediates (for instance RVA statics feeding into Spans)
as byrefs. These need to be tracked as such during encoding so that the encoder
GC liveness tracking stays current.
Fixes the assert seen in #21466.
Brian Sullivan [Wed, 12 Dec 2018 23:22:49 +0000 (15:22 -0800)]
Merge branch 'master' into fix_750014
Brian Sullivan [Wed, 12 Dec 2018 22:42:43 +0000 (14:42 -0800)]
Fix for PMI assert: 'vnWx != NoVN'
Pent Ploompuu [Wed, 12 Dec 2018 14:47:16 +0000 (16:47 +0200)]
Optimize number parsing (#21365)
dotnet-maestro[bot] [Wed, 12 Dec 2018 13:02:42 +0000 (13:02 +0000)]
Update dependencies from https://github.com/dotnet/arcade build 708 (#21487)
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18610.4
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18610.4
Oded Hanson [Wed, 12 Dec 2018 00:42:17 +0000 (02:42 +0200)]
Added support for debugging a sandboxed app on Mac (#21068)
* Fixed bug in StackString where the size is not initialized correctly to STACK_COUNT
* Added CharString and WCharString template classes and a generic CharStringFromLPCWSTR method
* Added support for debugging a sandboxed app on Mac
This change fixes the usage of IPC while debugging while running in a sandbox. When running in a sandbox, the temporary folder for each process will be different. Thus the pipes being created in TwoWayPipe right now would be created in different directories in the debugger process and the process being debugged.
This change configures the folder to be used based on the application group ID that the sandboxed app belongs to.
For the same reasons, the names sempahores being used to synchronize the debugger attach need to be prefixed with the application group ID. This change was abit more involved since the name of the semaphore is limited to 31 characters, so we had to encode the semaphore names differently to make them shorter.
Last, new APIs to the debugger shim were added to support this new feature. This change only handles the runtime side and the dbgshim. An additional change to vsdbg needs to be done to use the new APIs.
fixes #21066
* Fixed build breaks on non Mac Unix platforms
* Fixed usage of gApplicationGroupId in non apple environments
* Fixed bug in semaphore names
* Got rid of usage of StackString
* Made PAL_GetApplicationGroupId Apple specific
* Added comment about pragma pack
* Fixed comment
* Added exported symbols
* Duplicated applicationGroupId so it can be used from another thread during register complete callback
* Renamed BitNum2ByteNum to GetExtraEncodedAreaSize to make intent clearer
* Fixed nit comments
* Removed redundant changes in StackString
* Fixed windows build break
* Fixed compilation switch from __APPLE to __APPLE__
* Added missing exports
Andy Ayers [Tue, 11 Dec 2018 22:59:29 +0000 (14:59 -0800)]
JIT: capture failing inline observation in more cases (#21471)
We were not capturing failing inline observations for failed inlines
that got reported by the runtime directly. Move the point of capture
up in the jitted code so it always happens regardless of reporting
obligations.
Tanner Gooding [Tue, 11 Dec 2018 21:11:00 +0000 (13:11 -0800)]
Moving the remaining Vector128/256 helper intrinsics to be implemented using other intrinsics (#21451)
* Updating Vector256.Create(V128, V128) to be implemented using other intrinsics
* Updating Vector128.Create(T, ...) and Vector256.Create(T, ...) to be implemented using other intrinsics
* Renaming CreateSoftware to SoftwareFallback and adding clarifying comments to the helper method code
* Fixing Vector128.Create(int, int, int, int) to properly consume the elements for the Sse2 codepath
dotnet-maestro-bot [Tue, 11 Dec 2018 18:21:12 +0000 (10:21 -0800)]
Update CoreClr to preview-27211-02 (#21488)
dotnet-maestro-bot [Tue, 11 Dec 2018 12:14:52 +0000 (04:14 -0800)]
Update CoreClr to preview-27211-01 (#21481)
Jan Kotas [Tue, 11 Dec 2018 12:12:12 +0000 (07:12 -0500)]
Delete unnecessary struct initialization (#21482)
Sung Yoon Whang [Tue, 11 Dec 2018 06:49:18 +0000 (22:49 -0800)]
make GC/GCHandle tracing pay-for-play (#21479)
Sung Yoon Whang [Tue, 11 Dec 2018 06:49:03 +0000 (22:49 -0800)]
Fix for SetGCHandle event not getting emitted when running under Standalone GC (#21478)
Julius R Friedman [Tue, 11 Dec 2018 05:42:06 +0000 (00:42 -0500)]
Eliminate GenTreeRegVar and GT_REG_VAR and RegVar (#18317)
Issue #18201 / Hackathon
Tanner Gooding [Tue, 11 Dec 2018 01:41:21 +0000 (17:41 -0800)]
Adding support for the 2-byte VEX encoding to the emitter (#21453)
* Adding support for the 2-byte VEX encoding to the emitter
* Relocating and expanding the comment which explains the two-byte VEX encoding check
Brian Sullivan [Tue, 11 Dec 2018 01:24:10 +0000 (17:24 -0800)]
Merge pull request #21386 from briansull/issue_19925
Preserve the exception sets from child nodes when we create a new unique value number
Egor Chesakov [Tue, 11 Dec 2018 00:53:40 +0000 (16:53 -0800)]
Specify HelixTargetQueues in yaml (#21443)
* Parametrize test-job with helixQueues(Public|Internal) in eng/test-job.yml and specify them in eng/platform-matrix.yml
* Remove HelixTargetQueues property in tests/helixpublishwitharcade.proj
* Fix the error "unknown os: linux2" with Python script
Carol Eidt [Sat, 17 Nov 2018 01:48:46 +0000 (17:48 -0800)]
Don't require BLK nodes for SIMD
Eliminate most cases where an OBJ or BLK node is required for SIMD
values. The exception is the case where a value produced by an intrinsic
(SIMD or HWIntrinsic) is used as an argument but the argument is of a
different SIMD type (e.g. a different baseType),
Jan Kotas [Mon, 10 Dec 2018 14:47:48 +0000 (06:47 -0800)]
Fix warnings as errors
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jan Kotas [Mon, 10 Dec 2018 21:34:03 +0000 (13:34 -0800)]
Refactor internal System.AppDomain out of CoreLib (#21460)
Fixes #21028
Brian Sullivan [Mon, 10 Dec 2018 21:26:13 +0000 (13:26 -0800)]
Renamed VNCollectExc to VNUnionExcSet
Brian Sullivan [Mon, 10 Dec 2018 21:18:11 +0000 (13:18 -0800)]
Merge branch 'master' into issue_19925
Aaron Robinson [Mon, 10 Dec 2018 20:21:48 +0000 (12:21 -0800)]
Instead of using Win8+ api-sets use forwarder DLL to support downlevel versions of Windows. (#21469)
dotnet-maestro-bot [Mon, 10 Dec 2018 16:20:17 +0000 (08:20 -0800)]
Update CoreClr to preview-27210-02 (#21467)
Jan Kotas [Mon, 10 Dec 2018 15:52:15 +0000 (07:52 -0800)]
Add support for RVA fields to crossgen/R2R (#21463)
* Add support for RVA fields to crossgen/R2R
RVA fields are became more common with pre-inititialized ReadOnlySpan<byte>. Fix crossgen to deal with them for R2R.
* Fix tests, map new JIT helper for R2R
dotnet-maestro[bot] [Mon, 10 Dec 2018 14:42:58 +0000 (14:42 +0000)]
Update dependency files (#21448)
* Update dependencies from https://github.com/dotnet/arcade build 677
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18607.6
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18607.6
* Update dependencies from https://github.com/dotnet/arcade build 679
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18608.1
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18608.1
* Update dependencies from https://github.com/dotnet/arcade build 679
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18608.1
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18608.1
dotnet-maestro-bot [Mon, 10 Dec 2018 11:43:04 +0000 (03:43 -0800)]
Update CoreClr, PgoData to preview-27210-01, master-
20181210-0037, respectively (#21452)
Nick Craver [Mon, 10 Dec 2018 11:01:52 +0000 (06:01 -0500)]
Fix for #21456 (Regressions in attribute allocations for non-generic attributes) (#21462)
* Fix for #21456 - restrict increased generic attribute allocations to only generic attributes
This is a trivial quick-fix for #21456 where regressions between 2.1 and 3.0 were discovered on most attibute pathways due to the allocation overhead in the generic-supporting pathways. The workaround is to simply not take that slow/expensive path for non-generics.
While I'd like to optimize `RuntimeModule.ResolveMethod` further, there's a public surface area in play there that makes the changes non-trivial. There, we'll have to choose overhead on the public path (which may still be a net win), or duplication in code for another path.
* Update comments
Jan Kotas [Mon, 10 Dec 2018 10:57:57 +0000 (02:57 -0800)]
Delete vm/context.* (#21459)
* Delete vm/context.*
Leftover from remoting
Oded Hanson [Mon, 10 Dec 2018 09:51:48 +0000 (11:51 +0200)]
Added Close On Exec Attribute for Mutex files (#21455) (#21458)
* Added Close On Exec Attribute for mutex files (#21455)
Oded Hanson [Mon, 10 Dec 2018 09:49:39 +0000 (11:49 +0200)]
Fixed bug where "DCI_NUMA" was missing from debug channel names (#21454) (#21457)
In additional to adding "DCI_NUMA" to dbg_channel_names, a static assertion was added to verify that dbg_channel_names length is valid. Also added some comments to help developpers not to forget to add corresponding entries in dbg_channel_names.
FIxes #21454
dotnet-maestro-bot [Sun, 9 Dec 2018 01:02:09 +0000 (17:02 -0800)]
Update CoreClr, CoreFx, CoreSetup, PgoData to preview-27208-01, preview.18606.1, preview-27206-02, master-
20181208-0038, respectively (#21374)
Michal Strehovský [Sat, 8 Dec 2018 21:48:06 +0000 (22:48 +0100)]
Fix regression in fat calls (#21446)
This seems to fix an AV in RyuJIT.
Tarek Mahmoud Sayed [Sat, 8 Dec 2018 20:40:13 +0000 (12:40 -0800)]
Leap Seconds Support (#21420)
* Leap Seconds Support
* Address Feedback
* More feedback addressing
Bastian Schmidt [Sat, 8 Dec 2018 18:45:34 +0000 (19:45 +0100)]
Invalid setting csharp_new_line_within_query_expression_clauses in .editorconfig (#21449)
Same as in https://github.com/dotnet/corefx/issues/25991.
Roslyn doesn't support csharp_new_line_within_query_expression_clauses.
But Roslyn does support csharp_new_line_between_query_expression_clauses and it's missing from .editorconfig.
I also removed the comment "# Trim trailing whitespace" because that option is not set.
Aaron Robinson [Sat, 8 Dec 2018 18:41:29 +0000 (10:41 -0800)]
Remove `TryGetGuid()` and `GetDefaultInterfaceForCoclass()` from the (#21447)
* Remove `TryGetGuid()` and `GetDefaultInterfaceForCoclass()` from the
stdinterfaces API surface.
Jeremy Koritzinsky [Sat, 8 Dec 2018 05:36:01 +0000 (21:36 -0800)]
Add PNSE CustomMarshaler tests (for Tlbimp compat) (#21438)
Stephen Toub [Sat, 8 Dec 2018 04:49:29 +0000 (23:49 -0500)]
Use string.Create in ConvertFromUtf32 (#21409)
* Use string.Create in ConvertFromUtf32
Removes the unsafe code from the method. Also happens to make it a bit faster.
* Improve Rune.ToString performance
Stephen Toub [Sat, 8 Dec 2018 02:14:44 +0000 (21:14 -0500)]
Remove some unnecessary spinning (#21437)
Most of the use of SpinWait in CoreLib involves waiting for some short-lived operation to complete on another thread, in which case the spinning thread should backoff as it's unable to make forward progress until the other operation completes. In a few cases, however, SpinWait is being used just around CompareExchange operations, such that at least one thread running this code path is guaranteed to make forward progress, and the backoff in the spinning doesn't actually help (in theory it could help to reduce contention if lots of threads were all trying to CompareExchange concurrently, but in such cases you'd actually want more randomized backoff, as otherwise it's likely all the threads would re-attempt at around the same time and similarly re-encounter contention).
Tanner Gooding [Fri, 7 Dec 2018 23:01:23 +0000 (15:01 -0800)]
Moving various Vector128/256 helper method to be implemented using other intrinsics (#21432)
* Updating Vector128.CreateScalar and Vector256.CreateScalar to be implemented using other intrinsics
* Updating Vector128.Equals and Vector256.Equals to be implemented using other intrinsics
* Updating Vector256.WithLower, Vector256.GetUpper, and Vector256.WithUpper to be implemented using other intrinsics
* Updating Vector128.Create(T) and Vector256.Create(T) to be implemented using other intrinsics
* Fixing the `NI_Base_Vector256_As` intrinsics to only fold the cast if AVX is supported and add a clarifying comment to the Vector128/256.Equals code
* Changing the various `*Software()` local functions in Vector128/256 to be `SoftwareFallback()`
Aaron Robinson [Fri, 7 Dec 2018 22:31:24 +0000 (14:31 -0800)]
Add support for loading registered TLBs (#21430)
* Add support for loading registered TLBs
Davis Goodin [Thu, 6 Dec 2018 23:16:49 +0000 (17:16 -0600)]
Build Microsoft.NET.Sdk.IL in source-build
Tanner Gooding [Fri, 7 Dec 2018 21:00:35 +0000 (13:00 -0800)]
Adding a note to the genBaseIntrinsic function header about operand assumptions (#21439)
Jan Vorlicek [Fri, 7 Dec 2018 19:13:43 +0000 (20:13 +0100)]
Fix some SOS commands after SharedDomain removal (#21401)
The recent removal of SharedDomain has broken some SOS commands, like
Name2EE or bpmd. There was a code that was enumerating domains and
obtaining some information on them. And the shared domain pointer from
DacpAppDomainStoreData was being included in the list of domains. As it
is NULL now, we have failed to get the information and the domain
iteration loop was exited prematurely.
I have made SOS resilient to the possibility of missing shared domain.
On older runtimes, the shared domain is still being reported.
Stephen Toub [Fri, 7 Dec 2018 18:56:32 +0000 (13:56 -0500)]
Add CancellationToken parameter to GetAsyncEnumerator (#21397)
Stephen Toub [Fri, 7 Dec 2018 18:55:53 +0000 (13:55 -0500)]
Factor new AsyncIteratorStateMachineAttribute into TryResolveStateMachineMethod (#21396)
Carol Eidt [Fri, 7 Dec 2018 18:11:30 +0000 (10:11 -0800)]
Merge pull request #21361 from fiigii/x64tests
Improve hardware intrinsic tests
Jeremy Koritzinsky [Fri, 7 Dec 2018 17:55:37 +0000 (09:55 -0800)]
Add PNSE implementations of unsupported built-in custom marshalers to enable good error messages on PIAs that could possibly directly use them. (#21429)
Bruce Forstall [Fri, 7 Dec 2018 16:10:00 +0000 (08:10 -0800)]
Disable ObjectStackAllocationTests for ARM32 (#21421)
Issue #21376
Stephen Toub [Fri, 7 Dec 2018 09:56:40 +0000 (04:56 -0500)]
Fix Microsoft.IO.Redist compilation string.Create compilation failure
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
dotnet-maestro[bot] [Fri, 7 Dec 2018 14:48:12 +0000 (14:48 +0000)]
Update dependency files (#21403)
* Update dependencies from https://github.com/dotnet/arcade build 626
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18605.14
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18605.14
* Update dependencies from https://github.com/dotnet/arcade build 650
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.18606.9
- Microsoft.DotNet.Helix.Sdk - 1.0.0-beta.18606.9
Carol Eidt [Fri, 7 Dec 2018 14:20:49 +0000 (06:20 -0800)]
Merge pull request #21431 from fiigii/fixbmi
Fix a bug that disabled Bmi1/2.X64
Michal Strehovský [Fri, 7 Dec 2018 10:46:27 +0000 (11:46 +0100)]
Work around an MCG bug (dotnet/corert#6658)
This is blocking TFS integrations.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jan Vorlicek [Fri, 7 Dec 2018 09:32:59 +0000 (10:32 +0100)]
Fix SOS thread statics display (#21426)
I've noticed that when dumping an object with thread locals using SOS
dumpobj command, I never get the thread locals. I've stepped through the
code in SOS that displays thread statics and found that for some strange
reason, it dismisses threads where DomainLocalModule doesn't have
"initialized" flag set for the given class. However, when runtime
accesses thread statics, it just checks "allocated" flag set for the
given class in the ThreadLocalModule. Removing the extra check for
DomainLocalModule fixed the problem and now thread statics are displayed
properly.
Jan Vorlicek [Fri, 7 Dec 2018 09:20:48 +0000 (10:20 +0100)]
Disable obsolete collectible corefx tests (#21428)
Now that the COM interop support for collectible classes is in, we need
to disable couple of corefx tests that were checking that it fails.
Andy Ayers [Fri, 7 Dec 2018 08:12:04 +0000 (00:12 -0800)]
JIT: block general cloning of candidate calls (#21418)
Follow-up from #21270 and #21414.
Block general cloning from inadvertently cloning a candidate call.
Add a separate path for cloning calls that are inline and guarded
devirtualization candidates for use by guarded devirtualization.
Callers need to take extra steps after cloning one of these calls
to properly fix everything up.
Also fix up some issues in the large comment for the fat calli
transformation.
Fei Peng [Fri, 7 Dec 2018 01:42:17 +0000 (17:42 -0800)]
Fix a bug that disabled Bmi1/2.X64
Tanner Gooding [Fri, 7 Dec 2018 01:15:03 +0000 (17:15 -0800)]
Moving CreateScalarUnsafe, ToScalar, Vector128.ToVector256Unsafe, and Vector256.GetLower to be intrinsics (#21351)
* Moving CreateScalarUnsafe, ToScalar, Vector128.ToVector256Unsafe, and Vector256.GetLower to be intrinsics
* Adding containment support to the helper intrinsics
Carol Eidt [Thu, 6 Dec 2018 21:50:19 +0000 (13:50 -0800)]
Merge pull request #21314 from CarolEidt/DontPromoteHwVector
Don't struct-promote opaque vectors
Michelle McDaniel [Thu, 6 Dec 2018 21:18:28 +0000 (13:18 -0800)]
Revert "Move the perf jobs to Windows.10.Amd64.ClientRS4.DevEx.15.8.Open (#21258)" (#21412)
This reverts commit
5bb1b41dd19bca8f25b6d048c27d6708b86326cb.
Stephen Toub [Thu, 6 Dec 2018 21:11:49 +0000 (16:11 -0500)]
Use Span instead of manual copy in MetadataImport.GetUserString (#21405)
* Use Span instead of manual copy in MetadataImport.GetUserString
* Address PR feedback
Stephen Toub [Thu, 6 Dec 2018 21:11:33 +0000 (16:11 -0500)]
Remove char[] allocation from EventPipePayloadDecoder for strings (#21407)
Stephen Toub [Thu, 6 Dec 2018 21:11:09 +0000 (16:11 -0500)]
Use string.Create in Path.GetRandomFilePath (#21410)
* Use string.Create in Path.GetRandomFilePath
Removes a good chunk of the unsafe code.
* Address PR feedback
Andy Ayers [Thu, 6 Dec 2018 20:58:48 +0000 (12:58 -0800)]
JIT: move indirect call transformations to a new source file (#21414)
Follow-up from a review comment in #21270.
Stephen Toub [Thu, 6 Dec 2018 19:27:42 +0000 (14:27 -0500)]
Replace a few new string(char, 1) with char.ToString(char) (#21406)
Slightly cleaner, slightly faster.
Russ Keldorph [Wed, 5 Dec 2018 23:58:32 +0000 (15:58 -0800)]
Work around apparent bug in CMD's FOR /L
Hopefully this will mean that official build failures during the actual build
phase will correctly be reported as failures. There could be other places that
need to change, but this is all we know of right now.
Fixes #18788 (at least part of it)
Stephen Toub [Thu, 6 Dec 2018 18:41:54 +0000 (13:41 -0500)]
Fix CancellationTokenRegistration.Token after CTS.Dispose (#21394)
CTR.Token should never throw, but it's currently throwing an ObjectDisposedException if the associated CancellationTokenSource has been disposed.
Egor Chesakov [Thu, 6 Dec 2018 18:22:50 +0000 (10:22 -0800)]
Run MSBuild in parallel when submitting jobs to Helix (#21390)
Jeremy Koritzinsky [Thu, 6 Dec 2018 17:56:21 +0000 (09:56 -0800)]
Port CustomMarshalers.dll to C# and .NET Core (#21343)
* Import CustomMarshalers from corefx PR.
* Add tests for marshalling IEnumerator and IEnumerable using the System.Runtime.InteropServices.CustomMarshalers.
* Verify that the marshaller is used in the managed -> native direction in the tests.
* Remove #if's
* PR Feedback.
* Move ComHelpers.h into interop common headers.
* Add some template machinery to ensure that we don't accidentally pass in an incorrect type into DoQueryInterface.
* Add VariantClear
* Make marshalers internal and root them in ILLinkTrim.xml
* Revert enable-if machinery.
* Add tests for the pass-through unwrapping done by the EnumeratorToEnumVariantMarshaler.
* Remove some of my helper code.
* Added todo about exposing EnumerableToDispatchMarshaler.
* PR Feedback.
* Removed the last placement new.
* Use the runtime hooks to enable us to not have to publically expose the custom marshalers.
* Remove out of date comments.
Andy Ayers [Thu, 6 Dec 2018 17:03:31 +0000 (09:03 -0800)]
Guarded devirtualization foundations (#21270)
Lay the groundwork for guarded devirtualization of virtual and interface
calls in the jit.
Introduce the notion of a guarded devirtualization candidate and identify
these if regular devirtualization fails. Use simple heuristics to produce
a class to guess for. Require that the method that would be invoked if the class
guess is correct be a plausible inline candidate.
Generalize the calli transformer to become an indirect call transformer.
This runs after importation because it needs to introduce control flow and
runs before inlining so that the new direct calls it introduces can be inlined.
Implement the transformation to duplicate the call site, devirtualize on the side
where the class is now known exactly, and turn the resulting direct call into an
inline candidate.
Add a motivation and design document.
Egor Chesakov [Thu, 6 Dec 2018 03:41:47 +0000 (19:41 -0800)]
Use array syntax in eng/test-job.yml (#21393)
Update eng/test-job.yml to use array syntax after changing from phase schema to job schema
Brian Sullivan [Thu, 6 Dec 2018 01:46:49 +0000 (17:46 -0800)]
Added NullChk exceptions for GT_ARR_LENTH, GT_ARR_ELEM and GT_ARR_OFFSET
Jan Kotas [Thu, 6 Dec 2018 01:39:33 +0000 (17:39 -0800)]
Delete FEATURE_TREAT_NI_AS_MSIL_DURING_DIAGNOSTICS (#21387)
Always defined in .NET Core
Jan Vorlicek [Thu, 6 Dec 2018 00:21:43 +0000 (01:21 +0100)]
Disable native image usage for collectible assemblies (#21378)
* Disable native image usage for collectible assemblies
There are couple of issues with using native images as collectible
assemblies. The most important one is that statics handling is different
for collectible and non-collectible classes. Collectible classes have
statics stored in per class allocated blocks while the non-collectible ones
are all stored per module. So the code that accesses them needs to use
different offsets relative to a statics base address in each of these cases.
The crossgen generates just a single form of code that corresponds to the
non-collectible case and so such code cannot be used when a module is
loaded as collectible.
To mitigate that, we disable using the native code from crossgen-ed
assemblies and JIT all the code instead.
We may want to revisit this in the future and e.g. unify the statics
handling for collectible and non-collectible classes.
Brian Sullivan [Wed, 5 Dec 2018 23:33:52 +0000 (15:33 -0800)]
Merge branch 'master' into issue_19925
Brian Sullivan [Wed, 5 Dec 2018 23:32:22 +0000 (15:32 -0800)]
Use fgValueNumberAddExceptionSetForIndirection to calculate the base address for the VNF_NullPtrExc
Egor Chesakov [Wed, 5 Dec 2018 23:29:48 +0000 (15:29 -0800)]
Refactor genAllocLclFrame into two architecture-specific functions (#21074)
Michelle McDaniel [Wed, 5 Dec 2018 23:02:57 +0000 (15:02 -0800)]
Move the perf jobs to Windows.10.Amd64.ClientRS4.DevEx.15.8.Open (#21258)
Brian Sullivan [Wed, 5 Dec 2018 22:26:55 +0000 (14:26 -0800)]
Merge pull request #21322 from mikedn/div-small-int
Fix lclvar "cloning" in const division lowering
Jarret Shook [Wed, 5 Dec 2018 22:00:32 +0000 (14:00 -0800)]
Change from phases to jobs (#21384)
* Initial change to use jobs/jobs.yml
* Fix If syntax
* Hopefully fix more syntax
* Change from jobs to job
* change from queue to pool
* change scope of container name
* Change build to sync and init tools inside build.sh
* Add workspace