platform/upstream/coreclr.git
6 years agoCleanup CoreLib defines (#13713)
Jan Kotas [Thu, 31 Aug 2017 14:36:39 +0000 (07:36 -0700)]
Cleanup CoreLib defines (#13713)

6 years agoUpdate optdata to version 20170830-0123 (#13717)
Daniel Podder [Thu, 31 Aug 2017 14:20:03 +0000 (09:20 -0500)]
Update optdata to version 20170830-0123 (#13717)

6 years agoMerge pull request #13394 from shimingsg/v-shige/add-perftc-0816
Shiming Ge [Thu, 31 Aug 2017 10:23:17 +0000 (18:23 +0800)]
Merge pull request #13394 from shimingsg/v-shige/add-perftc-0816

Add perf test (making cards) to coreclr

6 years agoMerge pull request #13690 from CarolEidt/NullcheckNotContained
Carol Eidt [Thu, 31 Aug 2017 04:34:52 +0000 (21:34 -0700)]
Merge pull request #13690 from CarolEidt/NullcheckNotContained

Assert that Nullcheck child is not contained

6 years agoSpelling and grammar corrections - M through Z (#13698)
Brian Chavez [Thu, 31 Aug 2017 04:00:22 +0000 (21:00 -0700)]
Spelling and grammar corrections - M through Z (#13698)

6 years agoMerge pull request #13701 from pgavlin/IndexAddr2
Pat Gavlin [Thu, 31 Aug 2017 03:56:13 +0000 (20:56 -0700)]
Merge pull request #13701 from pgavlin/IndexAddr2

Restore `GT_INDEX_ADDR` after #13682.

6 years agoRandom span-based API (#13708)
Maggie Tsang [Thu, 31 Aug 2017 03:08:40 +0000 (20:08 -0700)]
Random span-based API (#13708)

* Span NextBytes

* int fixes

* undo ints

6 years agoPR feedback.
Pat Gavlin [Thu, 31 Aug 2017 01:36:32 +0000 (18:36 -0700)]
PR feedback.

6 years agoMerge pull request #13704 from pgavlin/PerfTestsPri0
Pat Gavlin [Thu, 31 Aug 2017 01:27:15 +0000 (18:27 -0700)]
Merge pull request #13704 from pgavlin/PerfTestsPri0

Move performance tests back into Priority 0.

6 years agoJIT: don't reuse box temps when optimizing (#13703)
Andy Ayers [Thu, 31 Aug 2017 00:36:07 +0000 (17:36 -0700)]
JIT: don't reuse box temps when optimizing (#13703)

The importer reuses temps for different box operations that do not overlap.
This keeps the number of temps to a minimum and reduces prolog zeroing if the
temps end up untracked. But reuse prevents the importer from accurately typing
the temp.

So now, when optimizing, allocate a new temp for each box operation, and type
the temp with the type of the box.

This, along with a small update in `gtGetClassHandle` to obtain the box type,
enables some devirtualization of interface calls on boxes and will facilitate
future changes to optimize away boxes entirely (eg #5626).

6 years agoPreemptively adding a resource string. (#13705)
Atsushi Kanamori [Wed, 30 Aug 2017 23:33:28 +0000 (16:33 -0700)]
Preemptively adding a resource string. (#13705)

Adding this now to save time later as
the CoreCLR/CoreRT bot will soon be
porting over a big feature change
and the only thing blocking the bot
from a green CI is this one new error string.

6 years agoError out if specified testBinLoc path does not exist. (#13700)
José Rivero [Wed, 30 Aug 2017 20:51:23 +0000 (13:51 -0700)]
Error out if specified testBinLoc path does not exist. (#13700)

6 years agoMove performance tests back into Priority 0.
Pat Gavlin [Wed, 30 Aug 2017 20:25:23 +0000 (13:25 -0700)]
Move performance tests back into Priority 0.

Just what it says on the tin. Should fix #13697.

6 years agoMerge pull request #13684 from hseok-oh/ci/set_xml_file
Jarret Shook [Wed, 30 Aug 2017 19:55:38 +0000 (12:55 -0700)]
Merge pull request #13684 from hseok-oh/ci/set_xml_file

Use --xunitOutputPath option in runtest.sh

6 years agoFix `INDEX_ADDR` codegen on ARM for large element sizes.
Pat Gavlin [Mon, 28 Aug 2017 22:45:15 +0000 (15:45 -0700)]
Fix `INDEX_ADDR` codegen on ARM for large element sizes.

We were attempting to generate `base + index * size` using `MADD`, but
had the registers in the wrong order and were generating
`base * index + size`. This change fixes the register order s.t. the
expected instruction is generated.

Fixes #13593.

6 years agoFix `gtCloneExpr` for `GT_IND(GT_INDEX_ADDR)`.
Pat Gavlin [Wed, 30 Aug 2017 19:44:27 +0000 (12:44 -0700)]
Fix `gtCloneExpr` for `GT_IND(GT_INDEX_ADDR)`.

This function does not need to update the array info map when cloning
a `GT_IND` if the address is a `GT_INDEX_ADDR`.

6 years agoFix the GC info for `INDEX_ADDR` codegen.
Pat Gavlin [Wed, 30 Aug 2017 19:25:30 +0000 (12:25 -0700)]
Fix the GC info for `INDEX_ADDR` codegen.

`genConsumeReg` marks the consumed register as not a GC pointer, as it
assumes that the input register  dies at the first instruction
generated by the node. This is not the case for `INDEX_ADDR`, however,
as the base register is multiply-used. As such, we need to mark the base
regsiter as containing a GC pointer until we are finished generating the
code for this node.

Fixes

6 years agoRevert commit bec6ac10f3968a8f699aad6233657ac59df37a73.
Pat Gavlin [Wed, 30 Aug 2017 19:41:25 +0000 (12:41 -0700)]
Revert commit bec6ac10f3968a8f699aad6233657ac59df37a73.

This restores the `GT_INDEX_ADDR` changes.

6 years agoRemove EOL openSuSE 42.1 (#13693)
Matt Mitchell [Wed, 30 Aug 2017 18:48:52 +0000 (11:48 -0700)]
Remove EOL openSuSE 42.1 (#13693)

6 years agoChange FinalizerThreadCreate location to after profiler is initialized (#13663)
Sung Yoon Whang [Wed, 30 Aug 2017 17:45:52 +0000 (10:45 -0700)]
Change FinalizerThreadCreate location to after profiler is initialized (#13663)

* Change FinalizerThreadCreate location to after profiler is initialized to ensure finalizer creation notification to profilerAPI

* Fixes issue #13499

6 years agoRevert #13647 and #13638 (#13666)
Daniel Podder [Wed, 30 Aug 2017 16:56:09 +0000 (11:56 -0500)]
Revert #13647 and #13638 (#13666)

#13638 and #13647 attempted to replace the generic 'dotnet-bot' e-mail
address with PR authors' e-mail addresses when uploading perf data to
BenchView. Unfortunately, these changes are still broken for some users
(specifically, if a user's e-mail address is not published/visible on
their GitHub profile).

There is no clean way to implement the proper fix, and the right fix
will change once pipeline support is available. Rather than putting in
something hacky now, I'm reverting these changes to unblock PRs. We
should revisit these changes after pipeline jobs are available.

6 years agoAssert that Nullcheck child is not contained
Carol Eidt [Wed, 30 Aug 2017 16:03:18 +0000 (09:03 -0700)]
Assert that Nullcheck child is not contained

TreeNodeInfoInit doesn't call `TreeNodeInfoInitIndir on `GT_NULLCHECK`, though it does an indirection, because we never create an LEA for these. Assert that the child is not contained.

6 years agoJIT: allow nulls in gtCanOptimizeTypeEquality (#13680)
Andy Ayers [Wed, 30 Aug 2017 16:01:51 +0000 (09:01 -0700)]
JIT: allow nulls in gtCanOptimizeTypeEquality (#13680)

This is a follow-on to #13657. I looked at the remaining calls to
`Type::op_Equality` in the jit-diffs output and saw many of the calls had a
null pointer argument. This pattern comes about from explicit null checks in
the sources, often as part of argument validation.

Such calls can also be optimized into simple pointer equality checks, so
add another clause to `gtCanOptimizeTypeEquality` to look for nulls.

6 years agoMerge pull request #13677 from hseok-oh/ryujit/fix_13675
Carol Eidt [Wed, 30 Aug 2017 15:09:44 +0000 (08:09 -0700)]
Merge pull request #13677 from hseok-oh/ryujit/fix_13675

[RyuJIT/ARMARCH] TreeNodeInfoInit for GT_NULLCHECK

6 years agoRevert "Merge pull request #13245 from pgavlin/NoExpandIndex" (#13682)
Jan Kotas [Wed, 30 Aug 2017 13:35:44 +0000 (06:35 -0700)]
Revert "Merge pull request #13245 from pgavlin/NoExpandIndex" (#13682)

This reverts commit a7ffdeca6fed927dbd457293d97b07237db95e82, reversing
changes made to f5f622db2a00d7687f256c0d1cdda5e6f6da7ad4.

6 years agoRemove -sequential build-flag (#13658)
Omair Majid [Wed, 30 Aug 2017 09:15:42 +0000 (05:15 -0400)]
Remove -sequential build-flag (#13658)

The flag is not implemented anywhere and is completely ignored. Remove
it form various help notices too.

Fixes #12035

6 years agoUse --xunitOutputPath option in runtest.sh
Hyeongseok Oh [Wed, 30 Aug 2017 08:40:23 +0000 (17:40 +0900)]
Use --xunitOutputPath option in runtest.sh

Fix to be used --xunitOutputPath in runtest.sh
This option was useless because xunitOutputPath was always set as default

6 years agoJIT: rework gtCanOptimizeTypeEquality (#13657)
Andy Ayers [Wed, 30 Aug 2017 02:48:40 +0000 (19:48 -0700)]
JIT: rework gtCanOptimizeTypeEquality (#13657)

Instead of looking at the verifier type for a local (which is currently never
set for ref classes in CoreCLR), use the new utilties for finding ref type
class handles.

Since the utility works on all tree types, also remove the restriction that
the tree must be a local.

Closes #13555.

6 years agoFix comment
Hyeongseok Oh [Wed, 30 Aug 2017 02:28:58 +0000 (11:28 +0900)]
Fix comment

Fix comment for TreeNodeInfoInitIndir

6 years ago[RyuJIT/ARMARCH] TreeNodeInfoInit for GT_NULLCHECK
Hyeongseok Oh [Wed, 30 Aug 2017 02:06:45 +0000 (11:06 +0900)]
[RyuJIT/ARMARCH] TreeNodeInfoInit for GT_NULLCHECK

Change dstCount, internalcount for GT_NULLCHECK on ARM32
Remove calling TreeNodeInfoInitIndir() for GT_NULLCHECK on ARM32, ARM64

6 years agoIlLink perf stopped running because the VM pool name does not exist. (#13672)
José Rivero [Wed, 30 Aug 2017 01:10:32 +0000 (18:10 -0700)]
IlLink perf stopped running because the VM pool name does not exist. (#13672)

6 years agocallsignalhandlerwrapper: improve unwinding (#13566)
Konstantin Baladurin [Wed, 30 Aug 2017 00:01:32 +0000 (03:01 +0300)]
callsignalhandlerwrapper: improve unwinding (#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

6 years agoMerge pull request #13650 from dagood/fix-BuildVersionFile
William Godbe [Tue, 29 Aug 2017 21:35:36 +0000 (14:35 -0700)]
Merge pull request #13650 from dagood/fix-BuildVersionFile

Fix dir.props BuildVersionFile override

6 years agoMerge pull request #13652 from JosephTremoulet/EntryNext
Joseph Tremoulet [Tue, 29 Aug 2017 20:47:00 +0000 (16:47 -0400)]
Merge pull request #13652 from JosephTremoulet/EntryNext

Check for new blocks after `entry`

6 years agoUse nameof for parse failures (#13640)
Jan Kotas [Tue, 29 Aug 2017 16:17:31 +0000 (09:17 -0700)]
Use nameof for parse failures (#13640)

6 years agoMerge pull request #13649 from wateret/fix-13622
Carol Eidt [Tue, 29 Aug 2017 15:11:17 +0000 (08:11 -0700)]
Merge pull request #13649 from wateret/fix-13622

[RyuJIT/armel] Fix double reg arg passing

6 years agoFixing IlLink job leg name. (#13646)
José Rivero [Tue, 29 Aug 2017 15:08:25 +0000 (08:08 -0700)]
Fixing IlLink job leg name. (#13646)

- CoreClr Scenario and CoreClr IlLink jobs were aliased on CI.

6 years agoMerge pull request #13648 from hseok-oh/ryujit/remove_regset_fieldlist
Carol Eidt [Tue, 29 Aug 2017 05:19:05 +0000 (22:19 -0700)]
Merge pull request #13648 from hseok-oh/ryujit/remove_regset_fieldlist

[RyuJIT/ARM32] Fix setting register of GT_FIELD_LIST for long

6 years agoMerge pull request #13628 from CarolEidt/FixNullCheck
Carol Eidt [Tue, 29 Aug 2017 05:14:18 +0000 (22:14 -0700)]
Merge pull request #13628 from CarolEidt/FixNullCheck

Fix NullCheck register modeling

6 years agoCheck for new blocks after `entry`
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 #13507.

6 years agoFix dir.props BuildVersionFile override
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.

6 years ago[RyuJIT/armel] Fix double reg arg passing
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 #13622

6 years ago[RyuJIT/ARM32] Fix setting register of GT_FIELD_LIST for long
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()

6 years agoReplace ghprbTriggerAuthorEmail -> ghprbPullAuthorEmail (#13647)
Daniel Podder [Tue, 29 Aug 2017 01:20:15 +0000 (20:20 -0500)]
Replace ghprbTriggerAuthorEmail -> ghprbPullAuthorEmail (#13647)

Perf smoke tests have been broken since #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).

6 years agoSuperPMI replay: fix enviroment variables initialization. (#13596)
Sergey Andreenko [Tue, 29 Aug 2017 01:14:50 +0000 (18:14 -0700)]
SuperPMI replay: fix enviroment variables initialization. (#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.

6 years agoMerge pull request #13643 from dotnet-bot/from-tfs
Brian Sullivan [Tue, 29 Aug 2017 00:53:06 +0000 (17:53 -0700)]
Merge pull request #13643 from dotnet-bot/from-tfs

Merge changes from TFS

6 years agoMerge pull request #13627 from pgavlin/TagPri1Lst
Pat Gavlin [Tue, 29 Aug 2017 00:21:56 +0000 (17:21 -0700)]
Merge pull request #13627 from pgavlin/TagPri1Lst

Tag Pri1+ tests as such in the ARM32/64 LST files.

6 years agoFix for clang-format issue with previous Changeset
Brian Sullivan [Mon, 28 Aug 2017 23:31:08 +0000 (16:31 -0700)]
Fix for clang-format issue with previous Changeset
(previous CS  is #1672052)

[tfs-changeset: 1672055]

6 years agoFixes VSO 469476 - Check for the MARSHAL_BYREF class attribute before performing...
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]

6 years agoMerge pull request #13638 from adiaaida/updatePerfUser
Michelle McDaniel [Mon, 28 Aug 2017 22:21:16 +0000 (15:21 -0700)]
Merge pull request #13638 from adiaaida/updatePerfUser

User the PR trigger email for benchview submit

6 years agoUse the PR trigger email for benchview submit
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.

6 years agoFix build breaks - delete parse tests that are redundant with CoreFX
Jan Kotas [Mon, 28 Aug 2017 20:04:24 +0000 (13:04 -0700)]
Fix build breaks - delete parse tests that are redundant with CoreFX

6 years agoUpdate CoreClr, CoreFx to preview2-25628-01, preview2-25628-01, respectively
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

6 years agoRemove "Pri0" tags.
Pat Gavlin [Mon, 28 Aug 2017 21:23:32 +0000 (14:23 -0700)]
Remove "Pri0" tags.

6 years agoRemove FreeBSD 10.1 (#13633)
Matt Mitchell [Mon, 28 Aug 2017 21:13:31 +0000 (14:13 -0700)]
Remove FreeBSD 10.1 (#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.

6 years agoMerge pull request #13616 from KooKiz/binaryreader_span
Stephen Toub [Mon, 28 Aug 2017 20:36:03 +0000 (16:36 -0400)]
Merge pull request #13616 from KooKiz/binaryreader_span

Add BinaryReader Span-based APIs

6 years agoMerge pull request #13619 from stephentoub/timespan_span
Stephen Toub [Mon, 28 Aug 2017 20:35:39 +0000 (16:35 -0400)]
Merge pull request #13619 from stephentoub/timespan_span

Add span-based TimeSpan {Try}Parse{Exact} and TryFormat methods

6 years agoFix NullCheck register modeling
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.

6 years agoTag Pri1+ tests as such in the ARM32/64 LST files.
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.

6 years agoEventPipe: fix memory leaks (#12476)
Konstantin Baladurin [Mon, 28 Aug 2017 19:02:12 +0000 (22:02 +0300)]
EventPipe: fix memory leaks (#12476)

6 years agoDelete dead PAL functions (#13613)
Justin Van Patten [Mon, 28 Aug 2017 18:01:42 +0000 (11:01 -0700)]
Delete dead PAL functions (#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

6 years agoFix bad cast morphing (#13429)
mikedn [Mon, 28 Aug 2017 17:59:02 +0000 (20:59 +0300)]
Fix bad cast morphing (#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.

6 years agoMerge pull request #13617 from CarolEidt/Fix13603
Carol Eidt [Mon, 28 Aug 2017 17:46:34 +0000 (10:46 -0700)]
Merge pull request #13617 from CarolEidt/Fix13603

An unused long needs to have dstCount of 0

6 years agoClean up code formatting as corert had done
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.

6 years agoImplement an IntToString equivalent
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.

6 years agoMove TimeSpanFormat.cs and TimeSpanParse.cs to shared
Stephen Toub [Mon, 28 Aug 2017 13:07:07 +0000 (09:07 -0400)]
Move TimeSpanFormat.cs and TimeSpanParse.cs to shared

6 years agoCompensate for perf regressions in string-to-span parsing
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).

6 years agoAdd span-based TimeSpan {Try}Parse{Exact} and TryFormat methods
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.

6 years agoMerge pull request #13605 from BruceForstall/ScopeEnvSettings
Bruce Forstall [Mon, 28 Aug 2017 16:45:08 +0000 (09:45 -0700)]
Merge pull request #13605 from BruceForstall/ScopeEnvSettings

Scope build script environment variable setting

6 years agoMerge pull request #13624 from alpencolt/ryu-arm-fix-multireg-decl
Carol Eidt [Mon, 28 Aug 2017 15:11:39 +0000 (08:11 -0700)]
Merge pull request #13624 from alpencolt/ryu-arm-fix-multireg-decl

[RyuJIT/ARM32] Fix MultiRegOp declaration

6 years agoFix WinRT build breaks (dotnet/corert#4398)
Jan Kotas [Mon, 28 Aug 2017 06:29:23 +0000 (23:29 -0700)]
Fix WinRT build breaks (dotnet/corert#4398)

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years ago[RyuJIT/ARM32] Fix MultiRegOp declaration
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.

6 years agoRemove always defined FEATURE_RANDOMIZE_STRING_HASHING define (#13491)
Dan Moseley [Mon, 28 Aug 2017 06:51:22 +0000 (23:51 -0700)]
Remove always defined FEATURE_RANDOMIZE_STRING_HASHING define (#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

6 years agoRemove dead HResults.cs (#13611)
Dan Moseley [Mon, 28 Aug 2017 06:41:56 +0000 (23:41 -0700)]
Remove dead HResults.cs (#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

6 years agoMerge pull request #13543 from hseok-oh/ryujit/fix_13451
Carol Eidt [Mon, 28 Aug 2017 03:48:39 +0000 (20:48 -0700)]
Merge pull request #13543 from hseok-oh/ryujit/fix_13451

[RyuJIT/ARM32] Simplify lowering long argument

6 years agoRefactor AsSpan to AsReadOnlySpan (#13608)
Adrian Godong [Mon, 28 Aug 2017 03:24:02 +0000 (20:24 -0700)]
Refactor AsSpan to AsReadOnlySpan (#13608)

* Refactor AsSpan to AsReadOnlySpan
* Updated usages.
* Renamed test methods.
* Bring back AsSpan as obsolete method.

6 years agoRemove SetContained for GT_FIELD_LIST
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

6 years agoMerge pull request #13597 from CarolEidt/InfoLinearScan
Carol Eidt [Mon, 28 Aug 2017 00:31:09 +0000 (17:31 -0700)]
Merge pull request #13597 from CarolEidt/InfoLinearScan

Move TreeNodeInfoInit to LinearScan

6 years agoAn unused long needs to have dstCount of 0
Carol Eidt [Sun, 27 Aug 2017 23:49:18 +0000 (16:49 -0700)]
An unused long needs to have dstCount of 0

Fix #13603

6 years agoMerge pull request #13581 from noahfalk/fix_corefx_testing
Noah Falk [Sun, 27 Aug 2017 22:46:53 +0000 (15:46 -0700)]
Merge pull request #13581 from noahfalk/fix_corefx_testing

Fix running corefx tests

6 years agoAdd BinaryReader Span-based APIs
Kevin Gosse [Sun, 27 Aug 2017 14:22:58 +0000 (16:22 +0200)]
Add BinaryReader Span-based APIs

6 years agoMerge pull request #13411 from pgavlin/RepriTests
Pat Gavlin [Sat, 26 Aug 2017 17:34:40 +0000 (10:34 -0700)]
Merge pull request #13411 from pgavlin/RepriTests

Reprioritize tests to improve inner-loop throughput.

6 years agoUse CreateFile2 instead of CreateFile2FromApp (#13595) (#13607)
Santiago Fernandez Madero [Sat, 26 Aug 2017 04:39:19 +0000 (23:39 -0500)]
Use CreateFile2 instead of CreateFile2FromApp (#13595) (#13607)

* Use CreateFile2 instead of CreateFile2FromApp

* Feedback fixes

6 years agoScope environment variable setting
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.

6 years agoMerge pull request #13579 from CarolEidt/RemoveDupLowerBlockStore
Carol Eidt [Sat, 26 Aug 2017 00:05:10 +0000 (17:05 -0700)]
Merge pull request #13579 from CarolEidt/RemoveDupLowerBlockStore

Arm Containment Cleanup

6 years agoDelete superfluous check in funceval.cpp (#13598)
Jan Kotas [Fri, 25 Aug 2017 23:51:45 +0000 (16:51 -0700)]
Delete superfluous check in funceval.cpp (#13598)

Func-eval'ing BCL methods with the DynamicSecurityMethod attribute causes an ArgumentException.

6 years agoMinor performance infrastructure changes. (#13557)
José Rivero [Fri, 25 Aug 2017 23:26:45 +0000 (16:26 -0700)]
Minor performance infrastructure changes. (#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.

6 years agoFix generic context passed to resolved constrained method calls (#13577)
Michal Strehovský [Fri, 25 Aug 2017 23:09:47 +0000 (16:09 -0700)]
Fix generic context passed to resolved constrained method calls (#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.

6 years ago[Arm64/Unix] Add JIT_Stelem_Ref helper (#13588)
Steve MacLean [Fri, 25 Aug 2017 22:10:50 +0000 (18:10 -0400)]
[Arm64/Unix] Add JIT_Stelem_Ref helper (#13588)

6 years agoCreate deep-dive-blog-posts.md (#13336)
Matt Warren [Fri, 25 Aug 2017 21:46:55 +0000 (22:46 +0100)]
Create deep-dive-blog-posts.md (#13336)

6 years agoPR Feedback and formatting
Carol Eidt [Fri, 25 Aug 2017 21:33:49 +0000 (14:33 -0700)]
PR Feedback and formatting

6 years agoMove TreeNodeInfoInit to LinearScan
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.

6 years agoDon't multiply YieldProcessor count by proc count (#13556)
Koundinya Veluri [Fri, 25 Aug 2017 20:14:59 +0000 (13:14 -0700)]
Don't multiply YieldProcessor count by proc count (#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.

6 years agoPR Feedback
Carol Eidt [Fri, 25 Aug 2017 18:10:32 +0000 (11:10 -0700)]
PR Feedback

6 years agoRemove Span(T[], int) ctor (#13575)
Ahson Ahmed Khan [Fri, 25 Aug 2017 17:29:31 +0000 (10:29 -0700)]
Remove Span(T[], int) ctor (#13575)

* Remove Span(T[], int) ctor - from issue #23471

6 years agoUse Span-based TryParse in several globalization types (#13582)
Stephen Toub [Fri, 25 Aug 2017 17:28:19 +0000 (13:28 -0400)]
Use Span-based TryParse in several globalization types (#13582)

6 years agoMerge pull request #13586 from parjong/fix/ClrStack_full
Bruce Forstall [Fri, 25 Aug 2017 17:20:34 +0000 (10:20 -0700)]
Merge pull request #13586 from parjong/fix/ClrStack_full

[ARM/Linux] Enable clrstack -f

6 years agoDo not devirtualize indirect calls (#13561)
Michal Strehovský [Fri, 25 Aug 2017 16:28:21 +0000 (09:28 -0700)]
Do not devirtualize indirect calls (#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.

6 years agoMerge pull request #13245 from pgavlin/NoExpandIndex
Pat Gavlin [Fri, 25 Aug 2017 16:18:30 +0000 (09:18 -0700)]
Merge pull request #13245 from pgavlin/NoExpandIndex

Use a smaller expansion of GT_INDEX in MinOpts.

6 years agoArm Containment Cleanup
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()