Konstantin Baladurin [Wed, 30 Aug 2017 00:01:32 +0000 (03:01 +0300)]
callsignalhandlerwrapper: improve unwinding (dotnet/coreclr#13566)
* Fix free_stack macro for ARM
free_stack shouldn't contain unwinder annotations for stack adjustment
* callsignalhandlerwrapper: improve unwinding
For linux: make CallSignalHandlerWrapper's frame sigtramp frame
for gdb and lldb:
- Save all registers on stack
- Add sigreturn syscall after call of signal_handler_worker
It provides ability for gdb and lldb unwind frame with invalid pc
(due to jump to invalid addresss).
For non linux:
- Save r11 on stack as it also can be used as frame pointer
- Set instruction set flag (thumb / arm) for saved pc. It is
necessary for gdb because it uses lr's lsb to determine
function mode
Commit migrated from https://github.com/dotnet/coreclr/commit/
79c97d9d008e7ffc5208e0932c878357b3013ebd
William Godbe [Tue, 29 Aug 2017 21:35:36 +0000 (14:35 -0700)]
Merge pull request dotnet/coreclr#13650 from dagood/fix-BuildVersionFile
Fix dir.props BuildVersionFile override
Commit migrated from https://github.com/dotnet/coreclr/commit/
82fc9825baed6efe5d9dd3d90493850edb250087
Joseph Tremoulet [Tue, 29 Aug 2017 20:47:00 +0000 (16:47 -0400)]
Merge pull request dotnet/coreclr#13652 from JosephTremoulet/EntryNext
Check for new blocks after `entry`
Commit migrated from https://github.com/dotnet/coreclr/commit/
042187314155a518502b1fdabc23350db7b6ead9
Jan Kotas [Tue, 29 Aug 2017 16:17:31 +0000 (09:17 -0700)]
Use nameof for parse failures (dotnet/coreclr#13640)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b72a2f47c20eb108a1182467632ce29ad912d555
Carol Eidt [Tue, 29 Aug 2017 15:11:17 +0000 (08:11 -0700)]
Merge pull request dotnet/coreclr#13649 from wateret/fix-13622
[RyuJIT/armel] Fix double reg arg passing
Commit migrated from https://github.com/dotnet/coreclr/commit/
9df295f048e4c75b57ccd5f1638c8ad040d22dcd
José Rivero [Tue, 29 Aug 2017 15:08:25 +0000 (08:08 -0700)]
Fixing IlLink job leg name. (dotnet/coreclr#13646)
- CoreClr Scenario and CoreClr IlLink jobs were aliased on CI.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a58c64f250c994b44ee3af4e709fa137b08a2fde
Carol Eidt [Tue, 29 Aug 2017 05:19:05 +0000 (22:19 -0700)]
Merge pull request dotnet/coreclr#13648 from hseok-oh/ryujit/remove_regset_fieldlist
[RyuJIT/ARM32] Fix setting register of GT_FIELD_LIST for long
Commit migrated from https://github.com/dotnet/coreclr/commit/
b13b7c16a2c3cea1557f941000b9c054a7664f92
Carol Eidt [Tue, 29 Aug 2017 05:14:18 +0000 (22:14 -0700)]
Merge pull request dotnet/coreclr#13628 from CarolEidt/FixNullCheck
Fix NullCheck register modeling
Commit migrated from https://github.com/dotnet/coreclr/commit/
72a12d52d5058bc62da16230dddbfd6208d81ff5
Joseph Tremoulet [Tue, 29 Aug 2017 04:31:07 +0000 (00:31 -0400)]
Check for new blocks after `entry`
Loop construction has a check for the case that an in-loop block has a
`bbNext` block that is a new block but not visited in the loop flow
walk; make sure that check fires for `entry` as well as other loop
blocks.
Fixes dotnet/coreclr#13507.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3111c1ac90c0ff556e62f4c7266f43d3530adeb1
Davis Goodin [Tue, 29 Aug 2017 02:07:57 +0000 (21:07 -0500)]
Fix dir.props BuildVersionFile override
The override needs to be before the Build.Common.props import, because BuildVersion.targets is in Build.Common.props and it's what's responsible for importing BuildVersionFile if it exists.
Commit migrated from https://github.com/dotnet/coreclr/commit/
18df98fdb8ed23b05e3e4a5566860b7d6203de84
Hanjoung Lee [Tue, 29 Aug 2017 01:51:40 +0000 (10:51 +0900)]
[RyuJIT/armel] Fix double reg arg passing
Fix reg count for double arg reg
Fix dotnet/coreclr#13622
Commit migrated from https://github.com/dotnet/coreclr/commit/
2a2ffa5556c6e5a9623683452c28d4514cdae197
Hyeongseok Oh [Tue, 29 Aug 2017 01:48:23 +0000 (10:48 +0900)]
[RyuJIT/ARM32] Fix setting register of GT_FIELD_LIST for long
Remove setting gtRegNum of GT_FIELD_LIST in LowerArg()
gtRegNum of GT_FIELD_LIST is reset in NewPutArg()
Commit migrated from https://github.com/dotnet/coreclr/commit/
9fdc8393816b209f496a710f71a313b4ee2d1958
Daniel Podder [Tue, 29 Aug 2017 01:20:15 +0000 (20:20 -0500)]
Replace ghprbTriggerAuthorEmail -> ghprbPullAuthorEmail (dotnet/coreclr#13647)
Perf smoke tests have been broken since dotnet/coreclr#13638. The issue appears to be
that `ghprbTriggerAuthorEmail` is an empty string in most cases, so its
value is not expanded.
The attempted fix is to use `ghprbPullAuthorEmail` instead, which is
always defined (since there's always an owner to a PR).
Commit migrated from https://github.com/dotnet/coreclr/commit/
39f12b4136b8c0c636c481550295a44d6a6cafc2
Sergey Andreenko [Tue, 29 Aug 2017 01:14:50 +0000 (18:14 -0700)]
SuperPMI replay: fix enviroment variables initialization. (dotnet/coreclr#13596)
SuperPMI replay: fix enviroment variables initialization.
If we have mch with mc files with different ENV_variables, we ran them
with the set for the first mc.
Commit migrated from https://github.com/dotnet/coreclr/commit/
64694c2301605594d9a1d5b5b7fa4165302d4e78
Brian Sullivan [Tue, 29 Aug 2017 00:53:06 +0000 (17:53 -0700)]
Merge pull request dotnet/coreclr#13643 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
af1615dcf7002477353f738a569fe9a904a3bd93
Pat Gavlin [Tue, 29 Aug 2017 00:21:56 +0000 (17:21 -0700)]
Merge pull request dotnet/coreclr#13627 from pgavlin/TagPri1Lst
Tag Pri1+ tests as such in the ARM32/64 LST files.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d6fa796f416020fee8df7344ec658e05d79aa5cd
Brian Sullivan [Mon, 28 Aug 2017 23:31:08 +0000 (16:31 -0700)]
Fix for clang-format issue with previous Changeset
(previous CS is dotnet/coreclr#1672052)
[tfs-changeset: 1672055]
Commit migrated from https://github.com/dotnet/coreclr/commit/
116772eb8198aa87975a87c3254db6cf4561fdb5
Brian Sullivan [Mon, 28 Aug 2017 23:00:53 +0000 (16:00 -0700)]
Fixes VSO 469476 - Check for the MARSHAL_BYREF class attribute before performing tail recursion optimization
[tfs-changeset: 1672052]
Commit migrated from https://github.com/dotnet/coreclr/commit/
317fc163ac3aab8fac9ec92b090cbbe13868d59a
Michelle McDaniel [Mon, 28 Aug 2017 22:21:16 +0000 (15:21 -0700)]
Merge pull request dotnet/coreclr#13638 from adiaaida/updatePerfUser
User the PR trigger email for benchview submit
Commit migrated from https://github.com/dotnet/coreclr/commit/
913e55c6a1c096872f6fe9bf49cccd18692c5292
Michelle McDaniel [Mon, 28 Aug 2017 21:41:27 +0000 (14:41 -0700)]
Use the PR trigger email for benchview submit
When users trigger perf runs for PRs, the alias used to submit in
submission-metadata.json should be that user's email. We should only
use dotnet-bot for official runs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dbbfebca010df9889e35f38925cf5171e509d1cd
Jan Kotas [Mon, 28 Aug 2017 20:04:24 +0000 (13:04 -0700)]
Fix build breaks - delete parse tests that are redundant with CoreFX
Commit migrated from https://github.com/dotnet/coreclr/commit/
272f640378ebcc0fe9a7e2a82453fa160595f081
dotnet-maestro-bot [Mon, 28 Aug 2017 01:29:24 +0000 (18:29 -0700)]
Update CoreClr, CoreFx to preview2-25628-01, preview2-25628-01, respectively
Commit migrated from https://github.com/dotnet/coreclr/commit/
7bf6686e042d49db54e059d212b4035694f5d3ee
Pat Gavlin [Mon, 28 Aug 2017 21:23:32 +0000 (14:23 -0700)]
Remove "Pri0" tags.
Commit migrated from https://github.com/dotnet/coreclr/commit/
06c8f9c6afcfbe55ea31f2a2e0bfee3719bb6053
Matt Mitchell [Mon, 28 Aug 2017 21:13:31 +0000 (14:13 -0700)]
Remove FreeBSD 10.1 (dotnet/coreclr#13633)
10.1 has been EOL'd, and the image is not upgradeable. This image will become unusable in newer versions of Jenkins. Eliminating from CI. If needed, new versions of BSD could be prepped and re-added to CI.
Commit migrated from https://github.com/dotnet/coreclr/commit/
59d059c1fdeee785cda8a82474a628f7085df687
Stephen Toub [Mon, 28 Aug 2017 20:36:03 +0000 (16:36 -0400)]
Merge pull request dotnet/coreclr#13616 from KooKiz/binaryreader_span
Add BinaryReader Span-based APIs
Commit migrated from https://github.com/dotnet/coreclr/commit/
77071c0964c3f9832441bdb9d94da0963f51f34c
Stephen Toub [Mon, 28 Aug 2017 20:35:39 +0000 (16:35 -0400)]
Merge pull request dotnet/coreclr#13619 from stephentoub/timespan_span
Add span-based TimeSpan {Try}Parse{Exact} and TryFormat methods
Commit migrated from https://github.com/dotnet/coreclr/commit/
eddd5899f9987e0f8c934b19480b596e68f1d92e
Carol Eidt [Mon, 28 Aug 2017 19:54:39 +0000 (12:54 -0700)]
Fix NullCheck register modeling
NullCheck is currently tagged with `isLocalDefUse` on all targets. However, for XARCH it is implemented with a compare (no target), and for ARM64 it is implemented with a load to REG_ZR, so neither of those require a target register.
Only on ARM is a target register required, and it is a localDefUse because the result is not used.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b318e2a3273fb2e25c316c3c1fe1751e9c95215a
Pat Gavlin [Mon, 28 Aug 2017 19:09:07 +0000 (12:09 -0700)]
Tag Pri1+ tests as such in the ARM32/64 LST files.
Just what it says on the tin.
Commit migrated from https://github.com/dotnet/coreclr/commit/
80d97cb9a5f1039fc385b13a81f621acd0bc4d19
Konstantin Baladurin [Mon, 28 Aug 2017 19:02:12 +0000 (22:02 +0300)]
EventPipe: fix memory leaks (dotnet/coreclr#12476)
Commit migrated from https://github.com/dotnet/coreclr/commit/
cee0eff305d988452c589a5868bbf7dbb618aa40
Justin Van Patten [Mon, 28 Aug 2017 18:01:42 +0000 (11:01 -0700)]
Delete dead PAL functions (dotnet/coreclr#13613)
* Remove duplicate define
* Remove unused wincon.h defines
* Delete unused LockFile/UnlockFile
* Remove unused WszCryptGetDefaultProvider define
* Remove unused defines
* Remove unused defines
* Delete unused GetDiskFreeSpace
* Delete unused RegisterEventSource\DeregisterEventSource\ReportEvent
* Remove unused defines
* Delete unused AreFileApisANSI
* Delete unused MoveFileW
* Delete unused SetFileTime
* Delete unused GetFileTime
* Delete unused FileTimeToDosDateTime
* Delete unused GetFileType
* Delete unused GetConsoleCP
* Delete unused GetExitCodeThread
* Delete unused FlushViewOfFile
* Delete unused RtlZeroMemory
* Delete unused MoveFileA
Commit migrated from https://github.com/dotnet/coreclr/commit/
c440335be80ee0762856d0be6e91ec3ea2f90504
mikedn [Mon, 28 Aug 2017 17:59:02 +0000 (20:59 +0300)]
Fix bad cast morphing (dotnet/coreclr#13429)
fgMorphCast thinks that casting a i1 value to i2 via conv.ovf.i2.un is a widening conversion and removes the overflow check. But this is in fact a narrowing conversion because i1 is implicitly sign extended to i4 and then i4 is treated as u4. Going from i4 to u4 overflows for negative values so we can't treat the source type of the cast as i1, it has to be u4.
Of course, the existing code works fine if the source type is unsigned. Going from u1 to i4 and then to u4 never overflows so it's safe to treat the source type as u1.
Commit migrated from https://github.com/dotnet/coreclr/commit/
68e7669cf9cc6ad64fa0393339dbebafd03612e9
Carol Eidt [Mon, 28 Aug 2017 17:46:34 +0000 (10:46 -0700)]
Merge pull request dotnet/coreclr#13617 from CarolEidt/Fix13603
An unused long needs to have dstCount of 0
Commit migrated from https://github.com/dotnet/coreclr/commit/
fa386c89370cd4ed6811afe48343a51b6fda3a05
Stephen Toub [Mon, 28 Aug 2017 15:37:29 +0000 (11:37 -0400)]
Clean up code formatting as corert had done
And some more beyond that.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8fcb2e3bd39f80d491d168b8a1239f8f01b848c3
Stephen Toub [Mon, 28 Aug 2017 13:17:23 +0000 (09:17 -0400)]
Implement an IntToString equivalent
corert doesn't have ParseNumbers, and both corert and coreclr were allocating a new string for the rendered Int32 (corert was also allocating a string of '0's). Replace this with a non-allocating helper that works in both places just appends directly to the StringBuilder.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d3d9c107247369e91745ab9c61760a44324a45d
Stephen Toub [Mon, 28 Aug 2017 13:07:07 +0000 (09:07 -0400)]
Move TimeSpanFormat.cs and TimeSpanParse.cs to shared
Commit migrated from https://github.com/dotnet/coreclr/commit/
48ac19343b134dbce1bbb55bdbbaea73197e7b01
Stephen Toub [Mon, 28 Aug 2017 04:26:45 +0000 (00:26 -0400)]
Compensate for perf regressions in string-to-span parsing
When changing the implementation of TimeSpan parsing from string-based to span-based, throughput of some parsing regressed upwards of 15%. Some of this is due to more stack-based memory needing to be zero'd out, but it's not entirely clear to me at the moment where the rest went. To compensate, I optimized various portions of the TimeSpan parsing implementation enough to fully counteract the regressions; while there's still more that can be optimized if desired, all of the inputs/formats I tested are now as fast or faster than they were before, and on top of that, the span-based implementation is allocation-free whereas the string-based implementation would allocate a non-trivial amount of memory per parsing operation.
Note that there was a fair bit of dead code, which I removed. I think there's actually some more, but it was harder to prove, and so I left it as-is (the goal of this commit not being to clean up but to improve perf enough).
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9421de69c3384592fb125eb78e931f04bab95e5
Stephen Toub [Mon, 28 Aug 2017 04:02:43 +0000 (00:02 -0400)]
Add span-based TimeSpan {Try}Parse{Exact} and TryFormat methods
The existing string-based {Try}Parse{Exact} methods are reimplemented in terms of spans and slices rather than strings and substrings, and then new span-based {Try}Parse{Exact} methods exposed on the same implementation. The existing ToString implementation is based on StringBuilder, and that same implementation is reused to implement TryFormat, just copying the contents of the StringBuilder to the span rather than calling ToString on it.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e2ef169c683ce226e42378815c4a2be27d533971
Bruce Forstall [Mon, 28 Aug 2017 16:45:08 +0000 (09:45 -0700)]
Merge pull request dotnet/coreclr#13605 from BruceForstall/ScopeEnvSettings
Scope build script environment variable setting
Commit migrated from https://github.com/dotnet/coreclr/commit/
b00ff25327a7ea2d9381aa2741b71a2fdede1afe
Carol Eidt [Mon, 28 Aug 2017 15:11:39 +0000 (08:11 -0700)]
Merge pull request dotnet/coreclr#13624 from alpencolt/ryu-arm-fix-multireg-decl
[RyuJIT/ARM32] Fix MultiRegOp declaration
Commit migrated from https://github.com/dotnet/coreclr/commit/
3758e847988cf8d0e950205657dd0bbdd6818fe6
Jan Kotas [Mon, 28 Aug 2017 06:29:23 +0000 (23:29 -0700)]
Fix WinRT build breaks (dotnet/corertdotnet/coreclr#4398)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
aabfe1617aef41497aa17fe11e4b4f29bd78680f
Alexander Soldatov [Mon, 28 Aug 2017 12:54:47 +0000 (15:54 +0300)]
[RyuJIT/ARM32] Fix MultiRegOp declaration
According to last changes in OperIsMultiRegOp() declaration of MultiRegOp
is needed of some changes.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8b00aceb16e0201f196a9889989d78f3e0f922f6
Dan Moseley [Mon, 28 Aug 2017 06:51:22 +0000 (23:51 -0700)]
Remove always defined FEATURE_RANDOMIZE_STRING_HASHING define (dotnet/coreclr#13491)
* Remove always defined FEATURE_RANDOMIZE_STRING_HASHING
* Fully remove randomized hashing
* Leftovers
* Remove additionalEntropy from HashSortKey as it was always 0
* Remove additionalEntropy from HashString as it was always 0
* Change to private, as not in fact called by reflection in .NET Core
* Fix build break due to FCDECLn
* Revert removed QCALL
* Remove unused strlen parameter
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c07c5aa98f8a088bf25099f1ab2d38b59ea5478
Dan Moseley [Mon, 28 Aug 2017 06:41:56 +0000 (23:41 -0700)]
Remove dead HResults.cs (dotnet/coreclr#13611)
* Fix old copy paste mistake
* Remove dead HResults.cs
* Rename __HResults to HResults
* Rename other two __HResults classes
* Combine into single HResults class, to match CoreRT
* Make hex consistently uppercase
* Sort HResults
Commit migrated from https://github.com/dotnet/coreclr/commit/
0db6d91ec163eb2ddc005d141fe13ee0df267af0
Carol Eidt [Mon, 28 Aug 2017 03:48:39 +0000 (20:48 -0700)]
Merge pull request dotnet/coreclr#13543 from hseok-oh/ryujit/fix_13451
[RyuJIT/ARM32] Simplify lowering long argument
Commit migrated from https://github.com/dotnet/coreclr/commit/
a07fc39829f32960abee1fdc36b639afda7f2433
Adrian Godong [Mon, 28 Aug 2017 03:24:02 +0000 (20:24 -0700)]
Refactor AsSpan to AsReadOnlySpan (dotnet/coreclr#13608)
* Refactor AsSpan to AsReadOnlySpan
* Updated usages.
* Renamed test methods.
* Bring back AsSpan as obsolete method.
Commit migrated from https://github.com/dotnet/coreclr/commit/
02f0853126d690910fc378a672dd008c69f5bbbe
Hyeongseok Oh [Mon, 28 Aug 2017 01:03:07 +0000 (10:03 +0900)]
Remove SetContained for GT_FIELD_LIST
Remove SetContained for GT_FIELD_LIST: already set when it is generated
Add comment
Commit migrated from https://github.com/dotnet/coreclr/commit/
74bccdaec4699cc4baac3f8f882532c99aa6471c
Carol Eidt [Mon, 28 Aug 2017 00:31:09 +0000 (17:31 -0700)]
Merge pull request dotnet/coreclr#13597 from CarolEidt/InfoLinearScan
Move TreeNodeInfoInit to LinearScan
Commit migrated from https://github.com/dotnet/coreclr/commit/
fbba195bb3ed4f0e52e63abe8fa61181bd6afab7
Carol Eidt [Sun, 27 Aug 2017 23:49:18 +0000 (16:49 -0700)]
An unused long needs to have dstCount of 0
Fix dotnet/coreclr#13603
Commit migrated from https://github.com/dotnet/coreclr/commit/
88210b1891eb96a2ea2aa8e4764800b02baa7b2a
Noah Falk [Sun, 27 Aug 2017 22:46:53 +0000 (15:46 -0700)]
Merge pull request dotnet/coreclr#13581 from noahfalk/fix_corefx_testing
Fix running corefx tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
79825ebc61479687e70b5d1041553d28756d1668
Kevin Gosse [Sun, 27 Aug 2017 14:22:58 +0000 (16:22 +0200)]
Add BinaryReader Span-based APIs
Commit migrated from https://github.com/dotnet/coreclr/commit/
7b2ff46d36f80f56ccbc4c5dbf8b0f0de99f5856
Pat Gavlin [Sat, 26 Aug 2017 17:34:40 +0000 (10:34 -0700)]
Merge pull request dotnet/coreclr#13411 from pgavlin/RepriTests
Reprioritize tests to improve inner-loop throughput.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1596d06b6180a58782cf831b435dbe0046b5be9c
Santiago Fernandez Madero [Sat, 26 Aug 2017 04:39:19 +0000 (23:39 -0500)]
Use CreateFile2 instead of CreateFile2FromApp (dotnet/coreclr#13595) (dotnet/coreclr#13607)
* Use CreateFile2 instead of CreateFile2FromApp
* Feedback fixes
Commit migrated from https://github.com/dotnet/coreclr/commit/
c636e4bd0ea07c01be6d600ababc12103f9ac4c8
Bruce Forstall [Sat, 26 Aug 2017 00:12:07 +0000 (17:12 -0700)]
Scope environment variable setting
The product and test build scripts invoke Visual Studio environment
setting scripts several times during the build process. If doing a full
cross architecture build including test build, it's as many as five times.
These environment changes are cumulative. For the PATH variable, in
particular, they can lead to a failure by exceeding the variable
length limit. This seems to have been exacerbated by VS2017, which
has very long paths, and for which many things are added to the PATH.
Fix this by adding "setlocal" / "endlocal" around various sections
of the scripts, so that the multiple calls to the environment script
are not cumulative.
(There is still some cumulative environment setting, as build.cmd
calls VsDevCmd.bat, then if tests are being built, calls build-test.cmd,
which also calls VsDevCmd.bat, and then possibly in addition calls
vcvarsall.bat.)
In addition, I simplified the code that sets up the msbuild logging
parameters, so it is more readable, regular, and doesn't have so
much repeated text.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fdc8bc20e453c928e0c2c4f4fb64c8003fcc0647
Carol Eidt [Sat, 26 Aug 2017 00:05:10 +0000 (17:05 -0700)]
Merge pull request dotnet/coreclr#13579 from CarolEidt/RemoveDupLowerBlockStore
Arm Containment Cleanup
Commit migrated from https://github.com/dotnet/coreclr/commit/
18ee973ffcc068e64f31f4c2b3d0c342c661c259
Jan Kotas [Fri, 25 Aug 2017 23:51:45 +0000 (16:51 -0700)]
Delete superfluous check in funceval.cpp (dotnet/coreclr#13598)
Func-eval'ing BCL methods with the DynamicSecurityMethod attribute causes an ArgumentException.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8820701cb4f41744557fa7557606578694cf0262
José Rivero [Fri, 25 Aug 2017 23:26:45 +0000 (16:26 -0700)]
Minor performance infrastructure changes. (dotnet/coreclr#13557)
- IlLink scenario will run on a VM (currently it is only measuring MSIL size)
- Updated the patterns of files to search for on scenario runs
- Updated the JitBench commit hash being used ()
- Disable min_opt from the PR correctness mode.
- String was not being interpolated.
Commit migrated from https://github.com/dotnet/coreclr/commit/
35dc8bbd313d82d56d81e3ffac79b16605c90183
Michal Strehovský [Fri, 25 Aug 2017 23:09:47 +0000 (16:09 -0700)]
Fix generic context passed to resolved constrained method calls (dotnet/coreclr#13577)
If the EE was able to resolve a constrained call, the instantiating
parameter to use is the type by which the call was constrained with. We
embed pConstrainedResolvedToken as the extra argument because
pResolvedToken is an interface method and interface types make a poor
generic context.
The CLR doesn't hit this path because these types of constrained method
calls go through an instantiating stub. We don't do instantiating stubs
in CoreRT.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c539df9eda6e8221c132f003f0266bf18b5a2499
Steve MacLean [Fri, 25 Aug 2017 22:10:50 +0000 (18:10 -0400)]
[Arm64/Unix] Add JIT_Stelem_Ref helper (dotnet/coreclr#13588)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f2bbee2ec637c7e2c87d9ab547f3e5ba7d6977e7
Matt Warren [Fri, 25 Aug 2017 21:46:55 +0000 (22:46 +0100)]
Create deep-dive-blog-posts.md (dotnet/coreclr#13336)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff3be834b81ee76736e0ddc1b292b7b2440848ff
Carol Eidt [Fri, 25 Aug 2017 21:33:49 +0000 (14:33 -0700)]
PR Feedback and formatting
Commit migrated from https://github.com/dotnet/coreclr/commit/
97a5627d7e6227320dfdb83a745caa1be5bd03b0
Carol Eidt [Fri, 25 Aug 2017 20:36:43 +0000 (13:36 -0700)]
Move TreeNodeInfoInit to LinearScan
In preparation for computing the TreeNodeInfo on the fly, move all the TreeNodeInfoInit and related methods to the LinearScan class.
Commit migrated from https://github.com/dotnet/coreclr/commit/
98e481e86a17b2119a1cec17bd336d47c9fa0be4
Koundinya Veluri [Fri, 25 Aug 2017 20:14:59 +0000 (13:14 -0700)]
Don't multiply YieldProcessor count by proc count (dotnet/coreclr#13556)
Related to issue mentioned in https://github.com/dotnet/coreclr/issues/13388
- Multipying the YieldProcessor count by proc count can cause excessive delays that are not fruitful on machines with a large number of procs. Even on a 12-proc machine (6-core), the heuristics as they are without the multiply seem to perform much better.
- The issue above also mentions that the delay of PAUSE on Intel Skylake+ processors have a significantly larger delay (140 cycles vs 10 cycles). Simulating that by multiplying the YieldProcessor count by 14 shows that in both tests tested, it begins crawling at low thread counts.
- I did most of the testing on ManualResetEventSlim, and since Task is using the same spin heuristics, applied the same change there as well.
Commit migrated from https://github.com/dotnet/coreclr/commit/
29d740ebb3cdf4ab301c574ef3fd9b76182c34e3
Carol Eidt [Fri, 25 Aug 2017 18:10:32 +0000 (11:10 -0700)]
PR Feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
22ca4e0c4a662d828bd23314ca8cecc1180072b7
Ahson Ahmed Khan [Fri, 25 Aug 2017 17:29:31 +0000 (10:29 -0700)]
Remove Span(T[], int) ctor (dotnet/coreclr#13575)
* Remove Span(T[], int) ctor - from issue dotnet/coreclr#23471
Commit migrated from https://github.com/dotnet/coreclr/commit/
5371352ac14424f9c0367705e04c637f0ca4058c
Stephen Toub [Fri, 25 Aug 2017 17:28:19 +0000 (13:28 -0400)]
Use Span-based TryParse in several globalization types (dotnet/coreclr#13582)
Commit migrated from https://github.com/dotnet/coreclr/commit/
57e55e3d1aae07500b9d533f4ea14d9cee80cadc
Bruce Forstall [Fri, 25 Aug 2017 17:20:34 +0000 (10:20 -0700)]
Merge pull request dotnet/coreclr#13586 from parjong/fix/ClrStack_full
[ARM/Linux] Enable clrstack -f
Commit migrated from https://github.com/dotnet/coreclr/commit/
568330c4498ea371bb5c8bc2ca1faa36a2cacf6a
Michal Strehovský [Fri, 25 Aug 2017 16:28:21 +0000 (09:28 -0700)]
Do not devirtualize indirect calls (dotnet/coreclr#13561)
I'm seeing the affected code take the `impDevirtualizeCall` code path
with `CT_INDIRECT` calls. `gtCallMethHnd` is a `GenTreePtr` in that case
(it's a union) and passing that as as `CORINFO_METHOD_HANDLE` leads
to bad things.
Commit migrated from https://github.com/dotnet/coreclr/commit/
06fc72a6205ce5c25631782c543a5e2f5e45b809
Pat Gavlin [Fri, 25 Aug 2017 16:18:30 +0000 (09:18 -0700)]
Merge pull request dotnet/coreclr#13245 from pgavlin/NoExpandIndex
Use a smaller expansion of GT_INDEX in MinOpts.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a7ffdeca6fed927dbd457293d97b07237db95e82
Carol Eidt [Thu, 24 Aug 2017 20:21:28 +0000 (13:21 -0700)]
Arm Containment Cleanup
- Fix a couple of issues with TreeNodeInfoInit for struct arguments
- Remove duplicate calls to LowerBlockStore from TreeNodeInfoInit for arm and arm64
- Eliminate duplicative isMultiReg method from GenTree and fix condition for OperIsMultiRegOp()
Commit migrated from https://github.com/dotnet/coreclr/commit/
388660ba7feb581d7763c8980dfd8ec3c309ab2b
Carol Eidt [Fri, 25 Aug 2017 14:46:09 +0000 (07:46 -0700)]
Merge pull request dotnet/coreclr#13584 from wateret/fix-armel-treenodeinfoinit
[RyuJIT/armel] Fix ifdef block in TreeNodeInfoInit
Commit migrated from https://github.com/dotnet/coreclr/commit/
f5f622db2a00d7687f256c0d1cdda5e6f6da7ad4
Jonghyun Park [Fri, 25 Aug 2017 07:42:44 +0000 (16:42 +0900)]
Enable clrstack -f in ARM/Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
0c2d29591e7af20bd96cda9051f6637a5568ea57
Hanjoung Lee [Fri, 25 Aug 2017 06:49:38 +0000 (15:49 +0900)]
[RyuJIT/armel] Fix ifdef block in TreeNodeInfoInit
Commit migrated from https://github.com/dotnet/coreclr/commit/
62a8d935e78109d5ea9e5fb4c8ae8a4126a72e10
Carol Eidt [Fri, 25 Aug 2017 04:54:56 +0000 (21:54 -0700)]
Merge pull request dotnet/coreclr#13506 from mikedn/switch-un
Fix switch unsigned cast
Commit migrated from https://github.com/dotnet/coreclr/commit/
e9e3a69fe00d5e75ed09971b346f3529beba36f6
Ahson Ahmed Khan [Fri, 25 Aug 2017 04:46:45 +0000 (21:46 -0700)]
Remove uses of the {RO}Span ctor that takes an array and offset (dotnet/coreclr#13578)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0af62c1b9c031623b1389079464d59c0f75fef97
noahfalk [Fri, 25 Aug 2017 04:02:41 +0000 (21:02 -0700)]
Fix running corefx tests
Running CoreFX tests was supposed to use a batch file (env_script) to run CoreFX tests under different environment configurations. However due to subtlties in how the command line is parsed none of the environment variables set by this script would actually persist for the execution of the tests. As best I can tell prior to this fix specifying a env_script had no effect whatsoever on windows, and our CI corefx test stress scenarios weren't actually testing the scenario they claimed to be testing.
cmd /c "Set.bat&&Check.bat" will propagate env vars set in Set.bat so that they are visible in Check.bat because both batch files execute within the context of the newly invoked cmd.exe process. However cmd /c Set.bat&&Check.bat (no quotes) will run Set.bat in its own cmd.exe process, then exit that process and run Check.bat in the parent shell process. The parent process does not have any environment variable changes that were made by Set.bat.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0f58337cbdc1a890c3ab15d0aae6ba306ad41923
Hyeongseok Oh [Fri, 25 Aug 2017 02:35:53 +0000 (11:35 +0900)]
Remove clearing regnum in LowerArg
Remove clearing regnum in LowerArg
Revert changing in gentree.h
Commit migrated from https://github.com/dotnet/coreclr/commit/
4928bcd4c5632d1d82bb24ef2d011f80f1098c88
Victor "Nate" Graf [Thu, 24 Aug 2017 22:13:49 +0000 (15:13 -0700)]
Remove unnecessary buffer copy from EventPipe::WriteEvent pipeline (dotnet/coreclr#13347)
* [WIP] Eliminate extra buffer copy with new api path
* Copy blobs to a flat buffer is Rundown is on
* Refactor to use payload class and dedupe code
* Add contracts
* Fix many small errors
* Make names unambiguous
* Add EventPipe::WriteEventBlob to ecalllist.h
* Address code review
* Add test and fix a buffer copy bug
* Copy data instead of data pointer
* Add optional output file arg to tests
* Change failure return code
* Renamed variables for clarity
Commit migrated from https://github.com/dotnet/coreclr/commit/
421f9e7c64b05c71db6ef71791998c06249953f6
Noah Falk [Thu, 24 Aug 2017 21:47:18 +0000 (14:47 -0700)]
Merge pull request dotnet/coreclr#13573 from noahfalk/add_ci_logging
Makes sure the CI archiving runs even on failure
Commit migrated from https://github.com/dotnet/coreclr/commit/
970c41b10cca6f0f4bc6c6524c6733ac2c5011ba
noahfalk [Thu, 24 Aug 2017 21:19:45 +0000 (14:19 -0700)]
Makes sure the archiving runs even on failure
Commit migrated from https://github.com/dotnet/coreclr/commit/
cb32b0d7b70665b1734792c4292b568b8f45bf52
Mike Danes [Mon, 21 Aug 2017 20:21:52 +0000 (23:21 +0300)]
Fix switch unsigned cast
Commit migrated from https://github.com/dotnet/coreclr/commit/
ed9dc1f5173fa538de6c9fd9ec8d57399ff24497
Pat Gavlin [Thu, 24 Aug 2017 19:25:08 +0000 (12:25 -0700)]
Address PR feedback.
Commit migrated from https://github.com/dotnet/coreclr/commit/
71b9152b70b0627087bbba679386bcbf880cc8af
Steve MacLean [Thu, 24 Aug 2017 17:54:37 +0000 (13:54 -0400)]
mscorlib cache padding for 128 byte lines (dotnet/coreclr#13102)
* mscorlib ConcurrentQueue pad for 128B cache lines
* Add Padding.cs
Commit migrated from https://github.com/dotnet/coreclr/commit/
ad29b87442d8132f5c3a6fd3844e5e00989b2b47
Carol Eidt [Thu, 24 Aug 2017 13:15:45 +0000 (06:15 -0700)]
Merge pull request dotnet/coreclr#11589 from mikedn/gen-am
Fix improper handling of GenTreeAddrMode offset
Commit migrated from https://github.com/dotnet/coreclr/commit/
8e2d570c730419d2f8610a8d01b0a3e0da6cb29f
Hyeongseok Oh [Thu, 24 Aug 2017 01:27:18 +0000 (10:27 +0900)]
Fix regeression with Containment
- SetContained for GT_FIELD_LIST
- OperIsMultiRegOp return true for armel only
- Simplify lowering long argument and fix type
Commit migrated from https://github.com/dotnet/coreclr/commit/
de3b59386e92e94f9246e197c20500f27b0ebf83
Carol Eidt [Thu, 24 Aug 2017 07:28:58 +0000 (00:28 -0700)]
Merge pull request dotnet/coreclr#13470 from CarolEidt/Fix13451
Fix ARM issues with Containment
Commit migrated from https://github.com/dotnet/coreclr/commit/
5bf1eeaac88b05f4f903a0db09b876035024e755
Mike Danes [Sat, 10 Jun 2017 07:39:41 +0000 (10:39 +0300)]
Fix improper handling of GenTreeAddrMode offset
For unknown reasons GenTreeAddrMode::gtOffset is unsigned rather than
int. On 32 bit hosts this doesn't really matter but on 64 bit hosts we
end up zero extending instead of sign extending it, GetTreeIndir::Offset()
does that by casting from unsigned to size_t.
It doesn't appear possible for this to cause correctness issues (because
the address mode displacement is 32 bit anyway) but it's confusing and
hurts CQ because the emitter can't recognize small negative displacements
that can be encoded in a single byte.
It's worth noting that CodeGen::genCreateAddrMode uses ssize_t internally
to represent the offset but then returns it as unsigned the emitter works
with either int or ssize_t displacements (e.g. emitIns_R_ARX & co. have
int disp arguments, emitNewInstrAmd has ssize_t dsp argument).
Change steps:
Access GenTreeAddrMode's gtOffset via Offset() - Offset() returns the correct
type - int instead of unsigned. All non-legacy uses of gtOffset were replaced
with Offset() and casts were added where necessary. gtOffset was made private
in non-legacy builds to ensure it is not used directly.
Rename GenTreeIndir's Offset() to Address() - This function is problematic,
it returns size_t which is suitable for representing addresses but not
offsets. Rename it and then figure out where offsets are needed and where
addresses are needed.
Add back Offset() with the correct return type - All usages of
GenTreeIndir::Address() (e.g. emitNewInstrAmd) expect ssize_t, not size_t.
Fix the bug - GenTreeIndir::Offset() return ssize_t and
GenTreeAddrMode::Offset() returns int. It doesn't make sense to have a
cast to unsigned.
Fix ARM's handling of GenTreeAddrMode offset - Various pieces of code
(e.g. emitIns_valid_imm_for_ldst_offset) already treat the offset as
signed, they use int, INT64, ssize_t. More importantly, emitarm64's
emitInsLoadStoreOp treats the offset as signed while TreeNodeInfoInitIndir
treates it as unsigned. The later is wrong.
Commit migrated from https://github.com/dotnet/coreclr/commit/
518e10bb494530cb1004b9bc44ad4d8da1c07b30
Mike McLaughlin [Thu, 24 Aug 2017 04:13:36 +0000 (21:13 -0700)]
Add unwind info to core dumps. (dotnet/coreclr#13547)
The createdump utility now enumerates all the native stack frames (with
some help from the managed stack walker) for all the threads adding all
the ELF unwind info needed.
On a different machine and without any of the native modules loaded when
the crashdump was generated all the thread stacks can still be unwound
with lldb/gdb.
Change the PAL_VirtualUnwindOutOfProc read memory adapter in DAC
to add the memory to instances manager.
Some misc. cleanup.
Commit migrated from https://github.com/dotnet/coreclr/commit/
94a67752ace5236cb6228c4cbc6e6c2976895f2a
Tijoy Tom [Thu, 24 Aug 2017 03:44:00 +0000 (20:44 -0700)]
Merge pull request dotnet/coreclr#13553 from tijoytom/master
Revert incorrect change from commit 16fc300
Commit migrated from https://github.com/dotnet/coreclr/commit/
a3e884a062607ac296fc3943796627e2209a95ea
Carol Eidt [Fri, 18 Aug 2017 19:12:40 +0000 (12:12 -0700)]
Fix ARM issues with Containment
These are changes that should have been part of PR dotnet/coreclr#13198:
- Correctly contain struct arguments
- Correctly get number of source registers
- Clear register assignments on `GT_FIELD_LIST` nodes (thanks @hseok-oh).
- Remove now-redundant `ContainCheck` methods for armarch targets.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5495b89a1368ecb279f2d1b39e69fdab96b9faa4
Pat Gavlin [Thu, 24 Aug 2017 00:33:19 +0000 (17:33 -0700)]
Merge pull request dotnet/coreclr#13550 from pgavlin/DevDiv482577
Type `lea [this + delegateObject]` as `TYP_BYREF`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
90d0a3e00eab850b2bac5e685a6ce2aba96f290f
William Godbe [Thu, 24 Aug 2017 00:16:46 +0000 (17:16 -0700)]
Merge pull request dotnet/coreclr#13529 from wtgodbe/ParameterizeRids
Parameterize RIDs for package restore
Commit migrated from https://github.com/dotnet/coreclr/commit/
c486926a6a85bb61e516f69e900812d3294e69a0
Noah Falk [Thu, 24 Aug 2017 00:15:15 +0000 (17:15 -0700)]
Merge pull request dotnet/coreclr#13559 from noahfalk/add_ci_logging
Add more logging to corefx test CI runs
Commit migrated from https://github.com/dotnet/coreclr/commit/
dac0a16bbc7fa9f3ceb1181c208ca27a9777678d
noahfalk [Thu, 24 Aug 2017 00:08:36 +0000 (17:08 -0700)]
Add more logging to corefx test CI runs
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c5830c5b64e132c136401ade41b8d9748fa3915
Roman Artemev [Thu, 24 Aug 2017 00:01:44 +0000 (17:01 -0700)]
Merge pull request dotnet/coreclr#13548 from rartemev/revert_12469_fix
Revert "Fixed misconception between FP register allocator and RyuJIT's CSE phase"
Commit migrated from https://github.com/dotnet/coreclr/commit/
2cb3585470b973fda3ba950e295cc3e936a71cde
William Godbe [Wed, 23 Aug 2017 23:23:10 +0000 (16:23 -0700)]
Merge pull request dotnet/coreclr#13533 from wtgodbe/buildNumber
Disable default BuildNumberMajor
Commit migrated from https://github.com/dotnet/coreclr/commit/
6aed5a155a60aafa591a7d9bbe9864074469f54a
tijoytk [Wed, 23 Aug 2017 22:40:13 +0000 (15:40 -0700)]
This reverts
https://github.com/dotnet/coreclr/commit/dotnet/coreclr@
16fc3005c085212f6e700a0df8ff7f36c1ea535b
The PR was trying to fix an incorrect test , we should be passing
in !fForWinRT.See https://github.com/dotnet/coreclr/issues/13460#issuecomment-
324456870
for more info.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3d777c6b864dfdbde9db823ccdc27f087725f45c
Jim Ma [Wed, 23 Aug 2017 22:32:15 +0000 (10:32 +1200)]
Fixed Equals/GetHashCode bug for struct. (dotnet/coreclr#13164)
Other than `ContainsPointers` and `IsNotTightlyPacked`, added two new conditions for checking whether a valuetype can go to fast path or not. Following are the details of these 2 conditions:
- Check whether a valuetype contains a Single/Double field. If it does, we cannot go to fast path. Floating point numbers have special `Equals` and `GetHashCode` implementation. We cannot simply compare floating point numbers via bits (e.g. +0.0 should equal to -0.0, but their underlying bits are different).
- Check whether an user-defined valuetype overrides `Equals` or `GetHashCode`. If it does, we cannot go to fast path. Because `Equals` or `GetHashCode` result may be different to bit comparison.
To find Single/Double fields and overridden `Equals`/`GetHashCode`, we start a DFS to go through the whole hierachy of the source valuetype, and cache the result to `MethodTable`.
Fix dotnet/coreclr#11452
Commit migrated from https://github.com/dotnet/coreclr/commit/
495ece4abd2204e1fc79f34cf3ea7fe5ecf90ad3
Pat Gavlin [Wed, 23 Aug 2017 21:45:49 +0000 (14:45 -0700)]
Add "long GC" jobs to the pri1 build set.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8ee75ed15ff078034e449a9bb605a9d9f4db8688
Pat Gavlin [Wed, 23 Aug 2017 20:31:39 +0000 (13:31 -0700)]
Type `lea [this + delegateObject]` as `TYP_BYREF`.
This node was incorrectly typed as `TYP_GCREF`, which was causing an
assertion during GC stress in internal testing.
Fixes VSO 482577.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6025fd00f0c86359817d5b09470120c177e4a124
wtgodbe [Tue, 22 Aug 2017 21:20:01 +0000 (14:20 -0700)]
Parameterize RIDs for package restore
Commit migrated from https://github.com/dotnet/coreclr/commit/
6c0e0abf7c7b2ab48671ec2e37ff925fb5ca9c80