Jarret Shook [Thu, 2 Nov 2017 21:04:57 +0000 (14:04 -0700)]
Merge pull request #14827 from jashook/wrong_eq
Invert eq
jashook [Thu, 2 Nov 2017 21:04:17 +0000 (14:04 -0700)]
Invert eq
Koundinya Veluri [Thu, 2 Nov 2017 20:49:11 +0000 (13:49 -0700)]
Remove invalid assert in CLRLifoSemaphore (#14805)
After https://github.com/dotnet/coreclr/pull/14535, the assert is no longer valid. A thread that times out does not decrement the count of waiters signaled to wake because a timed-out thread does not observe a signal to the object that was waited upon. If there were no other waiters to observe the signal, the count of waiters signaled to wake can become greater than the waiter count. This is valid, and tracks how many signals are pending. I don't think there is a good way to update the assert to reflect this, removed the assert.
Jarret Shook [Thu, 2 Nov 2017 20:41:41 +0000 (13:41 -0700)]
[Build Pipeline] Add ability to skip testing (#14813)
JC Aguilera [Thu, 2 Nov 2017 20:20:16 +0000 (13:20 -0700)]
Merge pull request #14804 from dotnet/tfUrlUpdate
TransportFeed URL update
刘雨培 [Thu, 2 Nov 2017 20:06:00 +0000 (04:06 +0800)]
Switch to /utf-8 for MSVC (#14822)
* Add /source-charset:utf-8 to force MSVC to compile source as UTF-8.
* Fix the illegal character in siginfo.cpp.
Bruce Forstall [Thu, 2 Nov 2017 18:08:11 +0000 (11:08 -0700)]
Merge pull request #14797 from BruceForstall/FixBuildCmdPriorityHandling
Fix handling of `-priority=N` argument in build.cmd
Jan Kotas [Thu, 2 Nov 2017 16:22:19 +0000 (09:22 -0700)]
Move Dictionary to shared CoreLib partition (#14795)
Michelle McDaniel [Thu, 2 Nov 2017 16:20:26 +0000 (09:20 -0700)]
Add perf pipeline job full groovy (#14397)
This change converts our perf testing to use pipeline jobs. Pipeline
jobs allow us to do the following:
1) Test on the same commit for each of the test legs
2) Parallelize the build and test steps.
3) Separate the build and test steps from one another. This gives us the
ability to use the same build assets for all of the test legs of the
same configuration. It also allows us to build on virtual machines and
test on perf machines, so we only use the perf resources for testing.
4) Have different test scenarios for PRs and rolling. This isn't
strictly a benefit of pipeline jobs, but certainly is made easier by
them.
5) Allows us to have one trigger for PR jobs which will get us all the
perf testing scenarios.
This change also cleans up the groovy scripting for perf testing.
Carol Eidt [Thu, 2 Nov 2017 14:34:54 +0000 (07:34 -0700)]
Merge pull request #14791 from sdmaclea/PR-ARM64-impSIMDSelect
[Arm64] Fix impSIMDSelect
Jarret Shook [Thu, 2 Nov 2017 05:00:52 +0000 (22:00 -0700)]
Fix sync's location. (#14817)
Bruce Forstall [Wed, 1 Nov 2017 23:37:09 +0000 (16:37 -0700)]
Merge pull request #14808 from sdmaclea/PR-ARM64-genSIMDIntrinsicDotProduct
[Arm64] Fix genSIMDIntrinsicDotProduct
Bruce Forstall [Wed, 1 Nov 2017 23:27:55 +0000 (16:27 -0700)]
Merge pull request #14812 from BruceForstall/AddPeriodicAltjitTriggers
Enable periodic triggers for `x86_arm_altjit` and `x64_arm64_altjit` jobs
Sean Gillespie [Wed, 1 Nov 2017 23:16:23 +0000 (16:16 -0700)]
[Local GC] Fix (another) ScanContext layout issue when building without FEATURE_REDHAWK (#14777)
Bruce Forstall [Wed, 1 Nov 2017 22:42:44 +0000 (15:42 -0700)]
Enable periodic triggers for x86_arm_altjit and x64_arm64_altjit jobs
These jobs are getting clean enough where having them regularly run
will be valuable.
Andy Ayers [Wed, 1 Nov 2017 22:29:16 +0000 (15:29 -0700)]
JIT: fix overly aggressive box-unbox.any assert (#14799)
A recently added assert was trying to ensure that `compareTypesForEqualty`
caught all the box-unbox.any cases we got before by direct handle comparison.
But there are cases where identical handles cannot resolve equality
comparisons, eg when the handles represent shared types like __Canon, and
the assert was not screening for those.
Seems simplest just to remove the assert, it was really only of value when
coding up the new jit interface method.
Closes #14780.
Andy Ayers [Wed, 1 Nov 2017 22:17:40 +0000 (15:17 -0700)]
JIT: convert fixed-sized locallocs to locals, enable inlining (#14623)
Optimize fixed sized locallocs of 32 bytes or less to use local buffers,
if the localloc is not in a loop.
Also "optimize" the degenerate 0 byte case.
Allow inline candidates containing localloc, but fail inlining if any
of a candidate's locallocs do not convert to local buffers.
The 32 byte size threshold was arrived at empirically; larger values did
not enable many more cases and started seeinge size bloat because of
larger stack offsets.
We can revise this threshold if we are willing to reorder locals and see
fixed sized cases larger than 32 bytes.
Closes #8542.
Also add missing handler for the callsite is in try region, this was
an oversight.
Steve MacLean [Tue, 31 Oct 2017 19:13:59 +0000 (15:13 -0400)]
[Arm64] Fix genSIMDIntrinsicDotProduct
Karthik Rajasekaran [Wed, 1 Nov 2017 21:00:43 +0000 (14:00 -0700)]
Revert sync test sync binaries (#14807)
José Rivero [Wed, 1 Nov 2017 20:11:04 +0000 (13:11 -0700)]
Updating xUnit Benchmark Scenarios to capture Etw with Pmc support. (#14734)
- Adding 'tiered' jitting
- Enable JitBench to capture Pmc data (Profile=On)
- Fixed some xUnit performance warnings
- Enforce DOTNET_MULTILEVEL_LOOKUP environment to be turned off
- Specify `dotnet publish` output directory.
JC Aguilera [Wed, 1 Nov 2017 19:45:09 +0000 (12:45 -0700)]
Publishing to the transport feed main feed
Supporting publishing to the main feed where the relative path is empty
Bruce Forstall [Wed, 1 Nov 2017 19:29:27 +0000 (12:29 -0700)]
Merge pull request #14792 from sdmaclea/PR-SIMD-negative-get_Item
SIMD Handle negative indicies in get_Item
Bruce Forstall [Wed, 1 Nov 2017 19:26:55 +0000 (12:26 -0700)]
Merge pull request #14788 from sdmaclea/PR-ARM64-9b-INSTR
[Arm64] Instruction requires 9 bits now
Bruce Forstall [Wed, 1 Nov 2017 19:25:32 +0000 (12:25 -0700)]
Merge pull request #14781 from fiigii/x86reg
[RyuJIT/X86] Limit byte register candidates for CRC32
JC Aguilera [Wed, 1 Nov 2017 19:11:27 +0000 (12:11 -0700)]
TransportFeed URL update
Updating URL to point to the new main feed
Sergey Andreenko [Wed, 1 Nov 2017 19:06:26 +0000 (12:06 -0700)]
[RyuJit/ARMARCH] lower arg with list of float fields. (#14753)
apply bitcast on reg fields
rename ReplaceArgWithPutArgOrBitcast
Carol Eidt [Wed, 1 Nov 2017 18:28:51 +0000 (11:28 -0700)]
Merge pull request #14761 from hseok-oh/ryujit/fix_13746
[RyuJIT/ARM32] Fix double type PutArgStk check bug on LSRA init
Bruce Forstall [Wed, 1 Nov 2017 18:05:25 +0000 (11:05 -0700)]
Fix handling of `-priority=N` argument in build.cmd
This argument is intended to be passed through directly to msbuild,
but CMD doesn't handle `=` well, so using `-priority=N` with
`build all` didn't work, for instance.
Add special handling for the `-priority` argument to get around
this problem.
Sergey Andreenko [Wed, 1 Nov 2017 17:58:22 +0000 (10:58 -0700)]
Fix (#14778)
skip commas and nops.
Bruce Forstall [Wed, 1 Nov 2017 17:36:39 +0000 (10:36 -0700)]
Merge pull request #14779 from fiigii/fixclone
Fix #14773
Bruce Forstall [Wed, 1 Nov 2017 16:59:31 +0000 (09:59 -0700)]
Merge pull request #14629 from sdmaclea/PR-ARM64-SIMD-CODEGEN
[Arm64] Add SIMD codegen
Bruce Forstall [Wed, 1 Nov 2017 16:51:08 +0000 (09:51 -0700)]
Merge pull request #14616 from sdmaclea/PR-ARM64-SIMDINTRINSICLIST
[Arm64] Implement simdintrinsiclist.h
Steve MacLean [Wed, 1 Nov 2017 14:59:54 +0000 (10:59 -0400)]
[Arm64] Fix impSIMDSelect
Bruce Forstall [Wed, 1 Nov 2017 16:35:32 +0000 (09:35 -0700)]
Merge pull request #14790 from sdmaclea/PR-ARM64-insEncodeDatasizeLS
[Arm64] Revise insEncodeDatasizeLS
Steve MacLean [Wed, 1 Nov 2017 16:22:49 +0000 (12:22 -0400)]
SIMD Handle negative indicies in get_Item
Steve MacLean [Tue, 31 Oct 2017 18:20:35 +0000 (14:20 -0400)]
[Arm64] Revise insEncodeDatasizeLS
Steve MacLean [Tue, 31 Oct 2017 23:26:40 +0000 (19:26 -0400)]
[Arm64] Instruction requires 9 bits now
Andy Ayers [Wed, 1 Nov 2017 07:23:31 +0000 (00:23 -0700)]
Update URLs to use for formatter job (#14785)
Need 2.0 SDK now. Not sure of the best URLs but these seem to work.
Also shorten path so we don't run into windows pathlength issues.
Fei Peng [Tue, 31 Oct 2017 23:43:36 +0000 (16:43 -0700)]
Limit byte register candidates for CRC32
Carol Eidt [Wed, 1 Nov 2017 04:56:14 +0000 (21:56 -0700)]
Merge pull request #14767 from CarolEidt/Fix14373
Fix checking for reg in use
Karthik Rajasekaran [Wed, 1 Nov 2017 03:44:27 +0000 (20:44 -0700)]
Remove intermediate sync for test build (#14775)
Hyeongseok Oh [Wed, 1 Nov 2017 01:41:59 +0000 (10:41 +0900)]
Fix slot size for transformed long
Fix slot size as 2 for transformed long from double
Use expected slot size for assertion check
Fei Peng [Tue, 31 Oct 2017 22:42:16 +0000 (15:42 -0700)]
fix #14773
Carol Eidt [Tue, 31 Oct 2017 21:04:11 +0000 (14:04 -0700)]
PR feedback & fix an error in `isRegInUse`
Bruce Forstall [Tue, 31 Oct 2017 20:37:37 +0000 (13:37 -0700)]
Merge pull request #14705 from hseok-oh/ryujit/fix_14666
[RyuJIT/ARMARCH] Use ActualType for PutArgStk size
Steve MacLean [Fri, 20 Oct 2017 20:38:18 +0000 (16:38 -0400)]
[Arm64] Add SIMD codegen
Koundinya Veluri [Tue, 31 Oct 2017 19:04:44 +0000 (12:04 -0700)]
Clean up YieldProcessorNormalized (#14739)
Move YieldProcessorNormalized into separate files
Clean up YieldProcessorNormalized
Viktor Hofer [Tue, 31 Oct 2017 15:06:35 +0000 (16:06 +0100)]
Make NonRandomizedStringEqualityComparer serialize into GenericEqualityComparer<string> (#14756)
Carol Eidt [Tue, 31 Oct 2017 14:49:51 +0000 (07:49 -0700)]
Fix checking for reg in use
Combine the check for an inactive but not-yet-freed interval, with the check for other cases of a register that is in use at the current location. This simplifies the code and fixes the assert condition for double registers.
Fix #14373
Carol Eidt [Tue, 31 Oct 2017 14:25:33 +0000 (07:25 -0700)]
Merge pull request #14614 from hqueue/arm/ryujit/issue_14374_pr2
[RyuJIT/ARM32] Fix resolving TYP_DOUBLE and TYP_FLOAT intervals
Dan Seefeldt [Tue, 31 Oct 2017 14:17:39 +0000 (09:17 -0500)]
Merge pull request #14748 from dseefeld/addRetryInInitTools
Add retry logic for setup of dotnet cli
Jan Kotas [Tue, 31 Oct 2017 10:34:45 +0000 (03:34 -0700)]
Change leading bracked to char as well
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Stephen Toub [Tue, 31 Oct 2017 12:30:29 +0000 (08:30 -0400)]
Merge pull request #14759 from stephentoub/gettaskforresult_inlining
Don't inline GetTaskForResult when await'ing ValueTask
Jan Kotas [Tue, 31 Oct 2017 10:15:14 +0000 (03:15 -0700)]
Move System.Tuple to shared CoreLib partition (#14762)
dotnet-maestro-bot [Tue, 31 Oct 2017 10:14:43 +0000 (03:14 -0700)]
Update BuildTools, PgoData to prerelease-02131-01, master-
20171031-0018, respectively (#14764)
dotnet-maestro-bot [Tue, 31 Oct 2017 06:43:37 +0000 (23:43 -0700)]
Update CoreFx to preview1-25831-01 (#14760)
Hyeongseok Oh [Tue, 31 Oct 2017 05:14:25 +0000 (14:14 +0900)]
[RyuJIT/ARM32] Fix double type PutArgStk check bug on LSRA init
Fix to handle hardfp/softfp all
Hyung-Kyu Choi [Fri, 20 Oct 2017 08:23:32 +0000 (17:23 +0900)]
[RyuJIT/ARM32] Fix resolving TYP_DOUBLE and TYP_FLOAT intervals
- When generating fromReg to toReg move to resolve edges,
we have to consider either of fromReg and toReg can contain double type.
- Add a new helper, i.e. addResolutionForDouble()
- Fix bug when reserving temp reigster for TYP_DOUBLE by introducing tempRegDbl.
There was a bug when it can't find a double reg, but find a even-numbered float reg,
because we check validness of tempFltReg with register number only.
We found that it is not easy to check validness of tempRegFlt,
if we use tempRegFlt for both TYP_DOUBLE for TYP_FLOAT.
Therefore we decide to introduce tempRegDbl to reserve a temp double reigster separately.
- Apply review feedback
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
dseefeld [Mon, 30 Oct 2017 20:28:22 +0000 (20:28 +0000)]
Add retry logic for setup of dotnet cli
Stephen Toub [Tue, 31 Oct 2017 01:39:28 +0000 (21:39 -0400)]
Don't inline GetTaskForResult when await'ing ValueTask
When await'ing a ValueTask, we should only ever end up calling AwaitUnsafeOnCompleted when the ValueTask wraps a non-null _task; if its _task were null, IsCompleted would have returned true due to treating the _result as the successful result. However, the value task's AsTask() is currently used via an inlined interface invocation in AwaitUnsafeOnCompleted to get the _task from the ValueTask, and AsTask ends up inlining the _task==null branch that inlines AsyncTaskMethodBuilder'1.GetTaskForResult, which ends up bloating the asm unnecessarily. We can simply change the interface implementation used by AwaitUnsafeOnCompleted to not inline GetTaskForResult. In a simple example, this cuts the asm for AwaitUnsafeOnCompleted by ~50%.
Andy Ayers [Tue, 31 Oct 2017 01:34:02 +0000 (18:34 -0700)]
Add wrapper support for getUnboxedEntry (#14752)
Karthik Rajasekaran [Tue, 31 Oct 2017 00:49:45 +0000 (17:49 -0700)]
Set toolset dir only for ARM64 (#14755)
Bruce Forstall [Tue, 31 Oct 2017 00:41:07 +0000 (17:41 -0700)]
Merge pull request #14730 from fiigii/SSE4
[RyuJIT] Rename and Simplify SSE3_4 flag
Sean Gillespie [Tue, 31 Oct 2017 00:18:55 +0000 (17:18 -0700)]
[Local GC] Fix an issue where the size of ScanContext differs between EE and GC (#14747)
Jan Kotas [Tue, 31 Oct 2017 00:18:09 +0000 (17:18 -0700)]
Fix build warning (#14751)
dotnet-maestro-bot [Tue, 31 Oct 2017 00:03:52 +0000 (17:03 -0700)]
Update BuildTools to prerelease-02130-03 (#14750)
Wes Haggard [Mon, 30 Oct 2017 22:06:18 +0000 (15:06 -0700)]
Merge pull request #14683 from weshaggard/MergeDevRelease200
Merge changes from dev/release/2.0.0
Andy Ayers [Tue, 24 Oct 2017 21:39:29 +0000 (14:39 -0700)]
Update code in AwaitUnsafeOnCompleted to use interface matching
Given that the jit can now avoid boxing on some interface calls to value types,
generalize the patterns introduced in AwaitUnsafeOnCompleted in #14718 by
using interfaces instead of checking for specific types.
Also move the catch-all processing back in line as the jit can now fold the
interface tests early and not pull in the EH portion of the method unless it is
needed.
Andy Ayers [Tue, 24 Oct 2017 00:46:41 +0000 (17:46 -0700)]
JIT: optimize calls on boxed objects
For calls with boxed this objects, invoke the unboxed entry point if available
and modify the box to copy the original value or struct to a local. Pass the
address of this local as the first argument to the unboxed entry point.
Defer for cases where the unboxed entry point requires an extra type parameter.
This may enable subsequent inlining of the method, and if the method has other
boxed parameters, may enable undoing those boxes as well.
The jit is not yet as proficient at eliminating the struct copies, but they
are present with or without this change, and some may even be required when the
methods mutate the fields of `this`.
Closes #14213.
Carol Eidt [Mon, 30 Oct 2017 20:34:48 +0000 (13:34 -0700)]
Merge pull request #14677 from CarolEidt/Fix14626
Avoid allocating IP0 and IP1
Wes Haggard [Wed, 25 Oct 2017 00:09:55 +0000 (17:09 -0700)]
Update dependencies to latest with new property names
Wes Haggard [Fri, 27 Oct 2017 18:38:23 +0000 (11:38 -0700)]
Update dependency properties used in PerfHarness project
Wes Haggard [Fri, 27 Oct 2017 17:11:35 +0000 (10:11 -0700)]
Add RoslynIncompatibleMsbuildVersion condition on Roslyn import
Due to merge conflict this condition got removed so adding it back
to allow for older msbuild versions to work (at least temporarily).
Wes Haggard [Fri, 27 Oct 2017 00:26:57 +0000 (17:26 -0700)]
Add blob feed to the restore sources
Merge the blob feed restore source added in
https://github.com/dotnet/coreclr/pull/14709
Wes Haggard [Thu, 26 Oct 2017 16:31:31 +0000 (09:31 -0700)]
Switch to sourcing in init-tools to enable the return statements to work
Wes Haggard [Wed, 25 Oct 2017 16:02:45 +0000 (09:02 -0700)]
Move CoreCLRPackageVersion property useage
Also did some small clean-up:
Fix missing tag from bad merge
Fix spacing in init-tools.sh
Wes Haggard [Tue, 24 Oct 2017 23:46:07 +0000 (16:46 -0700)]
Use restore with no --source for optdata proj feed
This lets dotnet pick up RestoreSources hierarchically rather than only use what's predefined in DotnetRestoreCommand (in dir.props).
Wes Haggard [Tue, 24 Oct 2017 23:44:37 +0000 (16:44 -0700)]
Implement auto dependency flow Repo API (#14518)
Wes Haggard [Tue, 24 Oct 2017 23:38:17 +0000 (16:38 -0700)]
Pass overridden packages directory to CMake
Wes Haggard [Tue, 24 Oct 2017 23:36:03 +0000 (16:36 -0700)]
Align init-tools scripts with other source-build repos
Wes Haggard [Tue, 24 Oct 2017 23:22:45 +0000 (16:22 -0700)]
Normalize the alpine and rhel RIDs
See: https://github.com/dotnet/core-setup/commit/
c8a27076f93c3107759b8a86a02ea4f40d100b67
We need to strip the last part of the version number for alpine and rhel because
they are compatible and we don't want the specific versions.
Wes Haggard [Tue, 24 Oct 2017 23:21:08 +0000 (16:21 -0700)]
Remove coreclr patches from source-build repo
Updates the branch to include patches that were applied in source-build:
0001-Respect-NUGET_PACKAGES-if-it-is-set.patch
0002-Unify-CLI-and-BuildTools-Versions.patch
0003-Add-clear-to-NuGet.config.patch
0004-PATCH-Use-clang-3.9-by-default.patch
dotnet-maestro-bot [Mon, 30 Oct 2017 19:35:42 +0000 (12:35 -0700)]
Update BuildTools, CoreClr, CoreFx, PgoData to prerelease-02130-01, preview1-25829-02, preview1-25830-02, master-
20171030-0047, respectively (#14714)
Steve MacLean [Fri, 20 Oct 2017 16:02:06 +0000 (12:02 -0400)]
[Arm64] Implement simdintrinsiclist.h
Fei Peng [Mon, 30 Oct 2017 18:32:08 +0000 (11:32 -0700)]
Rename and simplify SSE3_4 to SSE4
Petr Bred [Mon, 30 Oct 2017 18:08:34 +0000 (21:08 +0300)]
Fix gtNewStringLiteralNode (#14744)
- there is IAT_VALUE case from constructStringLiteral(CoreRT)
Signed-off-by: Petr Bred <bredpetr@gmail.com>
Jan Kotas [Mon, 30 Oct 2017 18:03:48 +0000 (11:03 -0700)]
Simplify Comparer/EqualityComparers (#14737)
- Make EnumEqualityComparer sealed. This helps with JIT optimizations.
- Delete SByteEnumEqualityComparer and ShortEnumEqualityComparer because of they are not needed anymore. The optimization that they were introduced for is done by the JIT now.
- Deleted ForwardedFrom attributes on types that do not need them
Vance Morrison [Mon, 30 Oct 2017 17:50:17 +0000 (10:50 -0700)]
Fix spelling error in comment (#14745)
Sergey Andreenko [Mon, 30 Oct 2017 17:45:53 +0000 (10:45 -0700)]
delete unused functions and arguments in lower. (#14726)
* move putArg inside
* delete unused function
LowerPutArgStk with two arguments was never used.
* delete extra argument
Carol Eidt [Mon, 30 Oct 2017 17:33:27 +0000 (10:33 -0700)]
Merge pull request #14456 from fiigii/crc32
Enable Crc32 , Popcnt, Lzcnt intrinsics
Bruce Forstall [Mon, 30 Oct 2017 16:26:49 +0000 (09:26 -0700)]
Merge pull request #14712 from BruceForstall/VS2017Arm64
Allow building arm64 using VS2017 tools
Vance Morrison [Mon, 30 Oct 2017 15:49:36 +0000 (08:49 -0700)]
Fix for issue EventSource MultiEnable bug (#14729)
Fixes issue #14728
Carol Eidt [Mon, 30 Oct 2017 04:16:46 +0000 (21:16 -0700)]
Merge pull request #14733 from CarolEidt/Fix14732
Fix another overly agressive assert
Carol Eidt [Sun, 29 Oct 2017 22:16:30 +0000 (15:16 -0700)]
Formatting & typo
Andrew Anikin [Sun, 29 Oct 2017 14:22:39 +0000 (17:22 +0300)]
Update Hashtable.cs (#14741)
Fix little misspelling.
Carol Eidt [Sat, 28 Oct 2017 01:59:55 +0000 (18:59 -0700)]
Fix another overly agressive assert
Fix #14732
Carol Eidt [Sat, 28 Oct 2017 01:50:20 +0000 (18:50 -0700)]
Merge pull request #14717 from CarolEidt/Fix14624
Fix FixedReg assert
Maoni Stephens [Sat, 28 Oct 2017 00:36:57 +0000 (17:36 -0700)]
Don't wake up other GC threads when we decide to not proceed with the GC (#14719)
Vance Morrison [Sat, 28 Oct 2017 00:00:17 +0000 (17:00 -0700)]
Enable Portable Pdb generation (#14721)
When https://github.com/dotnet/corefx/pull/24025 goes through to change coreFX over to use portable PDBs we want to do the same for System.private.Corelib.pdb in CoreCLR. This change does this.
Jan Kotas [Fri, 27 Oct 2017 23:08:24 +0000 (16:08 -0700)]
Delete dead code (#14703)