platform/upstream/coreclr.git
6 years agoMerge pull request #18032 from sdmaclea/PR-ARM64-LSE-ATOMICS
Bruce Forstall [Mon, 21 May 2018 21:37:54 +0000 (14:37 -0700)]
Merge pull request #18032 from sdmaclea/PR-ARM64-LSE-ATOMICS

[Arm64] Add basic ARMv8.1 Atomics

6 years agoReduce the number of days to keep artifacts for perf (#18073)
Michelle McDaniel [Mon, 21 May 2018 20:17:18 +0000 (13:17 -0700)]
Reduce the number of days to keep artifacts for perf (#18073)

We are still seeing issues with running out of space on the archive
machines due to the size of the perf archives. This change reduces the
number of days we store the archives to 14 and the number of archives to
keep to 100.

6 years ago Implement ICorDebugILFrame3::GetReturnValueForILOffset on arm32 (#18050)
Chris Sienkiewicz [Mon, 21 May 2018 19:24:06 +0000 (12:24 -0700)]
 Implement ICorDebugILFrame3::GetReturnValueForILOffset on arm32 (#18050)

*Implements CorDebugILFrame3::GetReturnValueForILOffset for arm32 on both windows and linux
*Fixes CordbNativeCode::GetCallInstructionLength to ensure it accounts for both 32/16 bit instructions
*Adds some asm to do float conversion
*Adds some logic to the cmake files to ensure the respective asm files get assembled correctly for both platforms

6 years agoMerge pull request #18058 from dotnetrt/gh18041
Carol Eidt [Mon, 21 May 2018 18:37:57 +0000 (11:37 -0700)]
Merge pull request #18058 from dotnetrt/gh18041

Fix codegen for HW intrinsic Sse2.ConvertToInt32WithTruncation

6 years agoUpdate Tizen CI docker image (#17814)
Gleb Balykov [Mon, 21 May 2018 15:33:40 +0000 (18:33 +0300)]
Update Tizen CI docker image (#17814)

* Update Tizen CI docker image

* Revert "Remove Tizen armel automatic PR triggered jobs"

This reverts commit 462e2b59c67b0b6d25985a7284616539f348cbfc.

* Update Tizen CI docker image in netci

* Update links required for generation of Tizen rootfs

* Remove -rebuild from arm32 CI docker build

6 years agoFix ConvertToInt32WithTruncation tests
Jacek Blaszczynski [Fri, 18 May 2018 23:15:50 +0000 (01:15 +0200)]
Fix ConvertToInt32WithTruncation tests

6 years agoUpdate PgoData to master-20180520-0038 (#18065)
dotnet-maestro-bot [Sun, 20 May 2018 19:44:47 +0000 (12:44 -0700)]
Update PgoData to master-20180520-0038 (#18065)

6 years agoUpdate PgoData to master-20180519-0051 (#18062)
dotnet-maestro-bot [Sat, 19 May 2018 19:01:44 +0000 (12:01 -0700)]
Update PgoData to master-20180519-0051 (#18062)

6 years agoFix CoreRT build break
Jan Kotas [Tue, 8 May 2018 17:23:11 +0000 (10:23 -0700)]
Fix CoreRT build break

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoRemove bogus NoInlining uses (#18061)
mikedn [Sat, 19 May 2018 15:05:17 +0000 (18:05 +0300)]
Remove bogus NoInlining uses (#18061)

The JIT knows not to inline throw helper methods. Manually blocking inlining prevents the JIT from detecting that these methods do not return and that may negatively impact the quality of the caller method code.

6 years agoMerge pull request #15348 from mikedn/ssa-indir
Carol Eidt [Sat, 19 May 2018 13:45:49 +0000 (06:45 -0700)]
Merge pull request #15348 from mikedn/ssa-indir

Remove useless IndirectAssignmentAnnotation

6 years agoAvoid freezing ConcurrentQueue segments in Count (#18035)
Stephen Toub [Sat, 19 May 2018 02:07:02 +0000 (22:07 -0400)]
Avoid freezing ConcurrentQueue segments in Count (#18035)

* Avoid freezing ConcurrentQueue segments in Count

In .NET Core 2.0, we changed the implementation of ConcurrentQueue to allow segment reuse, making enqueues ammoritzed allocation-free, whereas previously every enqueue had some allocation cost (even if it was batched as part of allocating a segment).  However, some operations mark segments as being frozen, which then prevents subsequent enqueues into those segments; this is necessary for enumeration, but Count also caused this.  Ideally Count isn't used on hot paths, but if it is, this can end up in degenerate situations where, for example, if Count is called after every enqueue, we'll end up creating a new segment for every enqueued item, which is incredibly inefficient both for the enqueues and for Count, which is O(N) in the number of segments.

It turns out, though, that we were overly cautious in implementing Count, and we don't actually need it to freeze the segments.  Instead, when there are more than two segments (the case where we previously froze), we can take the cross-segment lock, which is the same lock that's held any time we update the head and tail segment pointers.  Once that lock is held, we know that the internal segments won't change, because code can only enqueue/dequeue from the head and tail segments, so any segment that's not head and tail while the lock is held is effectively immutable.  That means that we can simply walk those segments and add up their counts, safe in knowing they won't change while we're enumerating.

* Remove stale comment

6 years agoFix codegen for HW intrinsic Sse2.ConvertToInt32WithTruncation
Jacek Blaszczynski [Fri, 18 May 2018 23:11:49 +0000 (01:11 +0200)]
Fix codegen for HW intrinsic Sse2.ConvertToInt32WithTruncation

Fixes #18041

6 years agoRemove useless IndirectAssignmentAnnotation
Mike Danes [Thu, 30 Nov 2017 21:47:03 +0000 (23:47 +0200)]
Remove useless IndirectAssignmentAnnotation

This annotation is supposed to be used by SSA and VN but that does not actually happen because fgMorphCopyBlock also marks the destination local as address exposed.

Also, even if the local wasn't address exposed there are other parts of the JIT that should probably use this annotation but currently they do not:
* Copy propagation attempts to mirror SSA renaming but it ignores IndirectAssignmentAnnotation.
* Liveness also doesn't pay attention to IndirectAssignmentAnnotation. A comment in fgMorphCopyBlock even gives liveness as the reason why the destination local is address exposed.

6 years agoJIT: treat SIMD types as structs in box optimizations (#18046)
Andy Ayers [Fri, 18 May 2018 20:00:29 +0000 (13:00 -0700)]
JIT: treat SIMD types as structs in box optimizations (#18046)

Otherwise we may leave unconsumed GT_OBJs around, which is problematic for the
jit later on.

Fixes #18043.

6 years agoJIT: clear up some no-op casts in the importer (#17996)
Andy Ayers [Fri, 18 May 2018 19:58:59 +0000 (12:58 -0700)]
JIT: clear up some no-op casts in the importer (#17996)

If we see a no-op cast (say converting long to ulong) where the operand
to be cast already has the right stack type, don't generate a GT_CAST,
just use the operand.

This comes up in some cases with unsafe operations where the pointer type
is cast. Interposing a cast between an GT_IND and GT_ADDR results in poor
codegen as the jit thinks the addressed local is address taken.

6 years agoMerge pull request #17991 from sdmaclea/PR-ARM64-STACK-PACKING
Carol Eidt [Fri, 18 May 2018 18:11:50 +0000 (11:11 -0700)]
Merge pull request #17991 from sdmaclea/PR-ARM64-STACK-PACKING

[Arm64] Fix stack struct arg packing

6 years agoUpdate BuildTools, PgoData to preview1-02817-01, master-20180518-0039, respectively...
dotnet-maestro-bot [Fri, 18 May 2018 15:56:48 +0000 (08:56 -0700)]
Update BuildTools, PgoData to preview1-02817-01, master-20180518-0039, respectively (#18038)

6 years agoUpdate osx-instructions.md (#18000)
Artem Koval [Fri, 18 May 2018 05:28:37 +0000 (08:28 +0300)]
Update osx-instructions.md (#18000)

When following this instruction CoreFX build won't happen until we change the folder to the CoreFX's one. In essence ./build.sh will trigger CoreCLR build once again. It may be a minor thing for an experienced user but can become a significant blocker for someone who's not that experienced with the command line and needs to compile CoreCLR. And it will diminish the awesomeness of .NET Core which we can't allow!

The proposed change is just a directory change when inside the CoreCLR folder.

6 years agoRevert PR 17881 to unblock integration into CoreFx (#18036)
Atsushi Kanamori [Fri, 18 May 2018 03:09:39 +0000 (20:09 -0700)]
Revert PR 17881 to unblock integration into CoreFx (#18036)

6 years agoR2RDump - Runtime function RVAs and method signatures (#17994)
acmyu [Fri, 18 May 2018 01:58:24 +0000 (18:58 -0700)]
R2RDump - Runtime function RVAs and method signatures (#17994)

* R2RDump - Runtime function RVAs and sizes

* Change hard error to warning, GetInt64,32,16 helper functions

* Method signatures from metadata, GetUnsigned functions, arbitrary sections for GetOffset

* Use methodDefEntryPoints to match method metadata to native code, make runtime function endAddress conditional on machine type

* Get object arg and return types of method signature from TypeDef, use ReadUInt

* Iterate all rids, added NativeArray class

* Handle multiple runtime functions in a method, use ReadByte, make rid unsigned

* Use MethodDefinitionHandle(rid) instead of dictionary, make ReadByte signature similar to other Read methods

* Changes to getting runtime functions, increment the start index in ReadByte, added comments

* Use List for R2RMethods instead of array, fixed nits

6 years ago[Arm64] Add basic ARMv8.1 Atomics
Steve MacLean [Wed, 16 May 2018 23:45:57 +0000 (19:45 -0400)]
[Arm64] Add basic ARMv8.1 Atomics

Add cas*, ldadd*, stadd*, and swp*
Add atomic emitters
Add atomic emitter tests

6 years agoMerge pull request #17764 from sdmaclea/PR-ARM64-CI-Match-Arm32
Bruce Forstall [Thu, 17 May 2018 21:45:15 +0000 (14:45 -0700)]
Merge pull request #17764 from sdmaclea/PR-ARM64-CI-Match-Arm32

[Arm64/Ubuntu] CI match arm32 except triggers

6 years ago[Arm64/Ubuntu] match arm32 except triggers
Steve MacLean [Tue, 24 Apr 2018 21:47:35 +0000 (17:47 -0400)]
[Arm64/Ubuntu] match arm32 except triggers

6 years agoUpdate PgoData to master-20180517-0042 (#18029)
dotnet-maestro-bot [Thu, 17 May 2018 15:07:30 +0000 (10:07 -0500)]
Update PgoData to master-20180517-0042 (#18029)

6 years agoUpdate CoreClr, CoreFx, PgoData to preview1-26517-01, preview1-26517-01, master-20180...
dotnet-maestro-bot [Thu, 17 May 2018 03:23:24 +0000 (22:23 -0500)]
Update CoreClr, CoreFx, PgoData to preview1-26517-01, preview1-26517-01, master-20180516-1546, respectively (#18027)

6 years agoReplace sizeof(TADDR) with TARGET_POINTER_SIZE in Zap (#18028)
Egor Chesakov [Thu, 17 May 2018 02:49:18 +0000 (19:49 -0700)]
Replace sizeof(TADDR) with TARGET_POINTER_SIZE in Zap (#18028)

6 years agoGenerate EventSources Representing DotNETRuntime Eventing Providers (#18007)
Brian Robbins [Thu, 17 May 2018 01:59:51 +0000 (18:59 -0700)]
Generate EventSources Representing DotNETRuntime Eventing Providers (#18007)

6 years agoAdd some more documentation for ValueTask (dotnet/corefx#29726)
Stephen Toub [Wed, 16 May 2018 20:21:02 +0000 (16:21 -0400)]
Add some more documentation for ValueTask (dotnet/corefx#29726)

* Add some more documentation for ValueTask

* Address PR feedback

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoSystem.Reflection: Replicate custom modifiers of method parameters in MemberRef signa...
stakx [Wed, 16 May 2018 22:48:40 +0000 (00:48 +0200)]
System.Reflection: Replicate custom modifiers of method parameters in MemberRef signatures (#17881)

* Include cmods in `ModuleBuilder.GetMemberRefToken`

This method reproduces a method's signature for use in a MethodRef
metadata entry, but currently ignores custom modifiers placed in the
method's parameters. Add additional parameters for those.

* Add parameter cmod params for other code paths

This lets the change from the previous commit "bubble up" towards the
public API by adding support for parameter cmods in more places.

* Reduce code duplication

In several places, `ParameterInfo[]` is converted to three matching
arrays for parameter types and their modreqs and modpts, because that
is what `SignatureHelper` requires. Extract this duplicated logic
into a single method. Also, optimize it to reduce array allocations.

6 years agoUpdate CoreClr to preview1-26516-05 (#18018)
dotnet-maestro-bot [Wed, 16 May 2018 21:30:52 +0000 (16:30 -0500)]
Update CoreClr to preview1-26516-05 (#18018)

6 years agoMoving ConcurrentQueue to shared (#18024)
Maryam Ariyan [Wed, 16 May 2018 21:02:10 +0000 (14:02 -0700)]
Moving ConcurrentQueue to shared (#18024)

Making IProducerConsumerCollectionDebugView apis public

Fixes: #17751

6 years agoUpdate CoreClr to preview1-26516-01 (#18015)
dotnet-maestro-bot [Wed, 16 May 2018 03:22:24 +0000 (22:22 -0500)]
Update CoreClr to preview1-26516-01 (#18015)

6 years agoignore .tail opcode for arm64 (#18002)
Sergey Andreenko [Wed, 16 May 2018 02:02:00 +0000 (19:02 -0700)]
ignore .tail opcode for arm64 (#18002)

when we can't do fast tail call.

6 years agoRemove IsAscii fast paths from Equals and Compare OrdinalIgnoreCase (#17985)
Bruce Bowyer-Smyth [Wed, 16 May 2018 01:45:50 +0000 (11:45 +1000)]
Remove IsAscii fast paths from Equals and Compare OrdinalIgnoreCase (#17985)

6 years agoMerge pull request #18010 from CarolEidt/StructTests
Carol Eidt [Wed, 16 May 2018 01:20:00 +0000 (18:20 -0700)]
Merge pull request #18010 from CarolEidt/StructTests

Add tests for struct-related issues

6 years agoTolerate spmi misses (#17997)
Sergey Andreenko [Tue, 15 May 2018 23:29:26 +0000 (16:29 -0700)]
Tolerate spmi misses (#17997)

* catch missed values

* add a new return value for misses

6 years agoDo not allocate memory in compUpdateTreeLife. (#17055)
Sergey Andreenko [Tue, 15 May 2018 22:57:08 +0000 (15:57 -0700)]
Do not allocate memory in compUpdateTreeLife. (#17055)

* move compUpdateLifeVar and compUpdateTreeLife to separate files for legacy and non-legacy case

* create TreeLifeUpdater class

6 years agoRemove faulty Debug.Assert (#18009)
stakx [Tue, 15 May 2018 22:39:02 +0000 (00:39 +0200)]
Remove faulty Debug.Assert (#18009)

The assertion being removed here fails when Reflection.Emit user code
defines a method signature where a custom modifiers are used in con-
junction with a generic type parameter. Yet there is no obvious reason
why that should be forbidden.

6 years agoAdd tests for struct-related issues
Carol Eidt [Tue, 15 May 2018 20:57:09 +0000 (13:57 -0700)]
Add tests for struct-related issues

6 years agoUpdate first-class-structs.md
Carol Eidt [Tue, 15 May 2018 20:55:15 +0000 (13:55 -0700)]
Update first-class-structs.md

6 years agoUpdate BuildTools, CoreClr, CoreFx to preview1-02815-01, preview1-26515-05, preview1...
dotnet-maestro-bot [Tue, 15 May 2018 20:53:23 +0000 (15:53 -0500)]
Update BuildTools, CoreClr, CoreFx to preview1-02815-01, preview1-26515-05, preview1-26515-04, respectively (#17995)

6 years agofix jit format after better-wildcards PR (#18008)
Sergey Andreenko [Tue, 15 May 2018 19:48:47 +0000 (12:48 -0700)]
fix jit format after better-wildcards PR (#18008)

6 years agoformat spmi (#18003)
Sergey Andreenko [Tue, 15 May 2018 18:17:48 +0000 (11:17 -0700)]
format spmi (#18003)

6 years ago[Arm64] Fix stack struct arg packing
Steve MacLean [Mon, 14 May 2018 22:47:23 +0000 (18:47 -0400)]
[Arm64] Fix stack struct arg packing

6 years agoUpdate first-class-structs.md
Carol Eidt [Tue, 15 May 2018 01:06:59 +0000 (18:06 -0700)]
Update first-class-structs.md

fix duplication

6 years agoUpdate first-class-structs.md
Carol Eidt [Tue, 15 May 2018 01:04:46 +0000 (18:04 -0700)]
Update first-class-structs.md

Add some struct-related open issues to the document.

6 years agoMerge pull request #17970 from briansull/better-wildcards
Brian Sullivan [Tue, 15 May 2018 00:45:54 +0000 (17:45 -0700)]
Merge pull request #17970 from briansull/better-wildcards

Better wildcards for COMPLUS_JIT variables

6 years agoFix multicast delegate step from delegate (#17990)
David Wrighton [Mon, 14 May 2018 23:20:12 +0000 (16:20 -0700)]
Fix multicast delegate step from delegate (#17990)

- Replace incorrect FEATURE_STUBS_AS_IL define check with FEATURE_MULTICASTSTUB_AS_IL
  - Allows step from one delegate to the next and step out from multicast delegate to function correctly.
- Add null check as the active frame's methoddesc isn't always non-null
  - In scenarios such as FuncEval, we also run through this code, and the md may be null.
- Fix unwind from StubHelpers::MulticastDebuggerTraceHelper function on amd64

6 years agoRemove usages of AnsiString and replace them with UnicodeString. (#17989)
Brian Robbins [Mon, 14 May 2018 20:44:28 +0000 (13:44 -0700)]
Remove usages of AnsiString and replace them with UnicodeString. (#17989)

6 years agojit-format --fix --untidy
Brian Sullivan [Mon, 14 May 2018 20:44:10 +0000 (13:44 -0700)]
jit-format --fix --untidy

6 years agoAdd tests for arm64 il issues. (#17759)
Sergey Andreenko [Mon, 14 May 2018 20:29:42 +0000 (13:29 -0700)]
Add tests for arm64 il issues. (#17759)

* Add test for "Shouldn_t_see_an_integer_typed_GT_MOD_node_in_ARM64"

* Add test for "We_should_never_encounter_a_reference_to_a_lclVar_that_has_a_zero_refCnt"

* Add test for 'NYI__Initialize_floating_point_register_to_zero'

* add tests to the arm lists

* exclude tests on:
1. windows arm64 with tests\arm64\tests.lst
2. windows x64 altjit arm with tests\issues.target
3. ubuntu arm64 with tests/testsFailing.arm64.txt

* change issues.targets

6 years agoFix Typo
Brian Sullivan [Mon, 14 May 2018 19:39:37 +0000 (12:39 -0700)]
Fix Typo

6 years agoCode review feedback
Brian Sullivan [Mon, 14 May 2018 19:28:31 +0000 (12:28 -0700)]
Code review feedback

6 years agoEnable System.Transactions.Local.Tests on Linux/arm (#17973)
Egor Chesakov [Mon, 14 May 2018 19:21:30 +0000 (12:21 -0700)]
Enable System.Transactions.Local.Tests on Linux/arm (#17973)

6 years agoMerge branch 'master' into better-wildcards
Brian Sullivan [Mon, 14 May 2018 18:58:52 +0000 (11:58 -0700)]
Merge branch 'master' into better-wildcards

6 years agoMerge pull request #17988 from dotnet-maestro-bot/master-UpdateDependencies
Wes Haggard [Mon, 14 May 2018 18:00:35 +0000 (11:00 -0700)]
Merge pull request #17988 from dotnet-maestro-bot/master-UpdateDependencies

Update CoreClr to preview1-26514-05 (master)

6 years agoMoving ConcurrentQueue to shared folder (#17956)
Maryam Ariyan [Mon, 14 May 2018 17:50:45 +0000 (10:50 -0700)]
Moving ConcurrentQueue to shared folder (#17956)

* Moving ConcurrentQueue to shared folder

Fixes: #17751

6 years agoR2RDump - Print ReadyToRun image headers (#17942)
acmyu [Mon, 14 May 2018 17:23:07 +0000 (10:23 -0700)]
R2RDump - Print ReadyToRun image headers (#17942)

* R2RDump - Outputing ReadyToRun header from PE image

* R2RDump - Comments, follow coding guidelines, use enum for section types and flags

* R2RDump - Use utf8 encoding, rva from ManagedNativeHeader, return exit code

6 years agoPEImageLayout: flush instruction cache only for pages with relocs. (#17773)
Konstantin Baladurin [Mon, 14 May 2018 16:55:18 +0000 (19:55 +0300)]
PEImageLayout: flush instruction cache only for pages with relocs. (#17773)

We need to flush instruction cache only for pages that have relocations
instead of full sections because otherwise application's shared clean
memory is increased in some cases on Linux.

6 years agoUpdate CoreClr to preview1-26514-05
dotnet-maestro-bot [Mon, 14 May 2018 16:13:38 +0000 (09:13 -0700)]
Update CoreClr to preview1-26514-05

6 years agoReflection: Allow ParameterBuilder.SetConstant(nonNullValue) for nullable enum parame...
stakx [Mon, 14 May 2018 14:20:53 +0000 (16:20 +0200)]
Reflection: Allow ParameterBuilder.SetConstant(nonNullValue) for nullable enum parameters (#17977)

* ParameterBuilder.SetConstant(nonNull) for TEnum?

This change makes it possible to use `ParameterBuilder.SetConstant`
to set a non-null default value for parameters having a nullable enum
type.

* ParameterInfo.DefaultValue for TEnum?

Add a note to `MdConstant.GetValue` (which sits behind `ParameterInfo.
[Raw]DefaultValue`) explaining why changing its behavior to mirror the
change in `TypeBuilder.SetConstantValue` would be a breaking change.

6 years agoUpdate CoreClr, CoreFx to preview1-26514-01, preview1-26514-01, respectively (#17982)
dotnet-maestro-bot [Mon, 14 May 2018 05:23:27 +0000 (00:23 -0500)]
Update CoreClr, CoreFx to preview1-26514-01, preview1-26514-01, respectively (#17982)

6 years agoUpdate CoreClr, CoreFx to preview1-26513-04, preview1-26513-04, respectively (#17974)
dotnet-maestro-bot [Sun, 13 May 2018 22:27:29 +0000 (17:27 -0500)]
Update CoreClr, CoreFx to preview1-26513-04, preview1-26513-04, respectively (#17974)

6 years agoAdd explicit null check for VSD via tail call stub. (#17960)
Sergey Andreenko [Sun, 13 May 2018 16:58:32 +0000 (09:58 -0700)]
Add explicit null check for VSD via tail call stub. (#17960)

* fix

* update test lists for arm and x64

* update failure reason on arm64

* fix comment

* Use NYI_ARM64

It makes it easier to find them.

* exclude arm64 tail call tests

that have prefix tail calls, but jit can't make it.

6 years agoMerge pull request #17971 from CarolEidt/FixCpBlkBug
Carol Eidt [Sun, 13 May 2018 15:28:03 +0000 (08:28 -0700)]
Merge pull request #17971 from CarolEidt/FixCpBlkBug

Don't eliminate a cpblk when offsets are different

6 years agoMerge pull request #17948 from mikedn/delegate-contain-this
Carol Eidt [Fri, 11 May 2018 23:28:51 +0000 (16:28 -0700)]
Merge pull request #17948 from mikedn/delegate-contain-this

Call ContainCheckIndir on the newly created indir

6 years agoPR feedback and fix test.
Carol Eidt [Fri, 11 May 2018 22:03:35 +0000 (15:03 -0700)]
PR feedback and fix test.

6 years agoImprove the JitConfig class and method name matching for wildcards.
Brian Sullivan [Thu, 10 May 2018 21:07:49 +0000 (14:07 -0700)]
Improve the JitConfig class and method name matching for wildcards.
With this change we can use a prefix and wildcard match
This allows us to match classes and methods that start with a prefix.
Example:
1. My*:Method would match a method named "Method" inside any class that starts with "My"
2. *:get_* or simple get_* both will match any method that starts with "get_"

This allows us to match some Managed C++ methods that we could not otherwise match:

By using COMPLUS_JitDump=std._Find_if*
we can match this managed C++ method:

 <Module>:std._Find_if<class std::_Tree_unchecked_iterator<class std::_Tree_val<struct std::_Tree_simple_types<struct std::pair<struct TIP_MAP_KEY const ,struct TIP_MAP_VALUE> > > >,struct TIP_FIND_ALG>(long,struct,struct,struct)

6 years agoDon't eliminate a cpblk when offsets are different
Carol Eidt [Fri, 11 May 2018 21:08:30 +0000 (14:08 -0700)]
Don't eliminate a cpblk when offsets are different

When `fgMorphCopyBlock()` encounters a cpblk between two different offsets of the same local, if both fields are not recognizable to the JIT (i.e. the FieldSeqNode returned by IsLocalAddrExpr() and/or the gtFieldSeq field of a GT_LCL_FLD is FieldSeqStore::NotAField()), they should not be considered equal (and therefore should not be morphed to a `GT_NOP`).

Fixes #17969

6 years agoUpdate CoreClr, CoreFx to preview1-26511-05, preview1-26511-04, respectively (#17961)
dotnet-maestro-bot [Fri, 11 May 2018 17:32:04 +0000 (12:32 -0500)]
Update CoreClr, CoreFx to preview1-26511-05, preview1-26511-04, respectively (#17961)

6 years agoMove StringBuilderCache to shared (#17964)
Stephen Toub [Fri, 11 May 2018 17:31:46 +0000 (13:31 -0400)]
Move StringBuilderCache to shared (#17964)

6 years agoSwitch to Word2Vec fork (#17945)
Adam Sitnik [Fri, 11 May 2018 15:47:21 +0000 (17:47 +0200)]
Switch to Word2Vec fork (#17945)

* update git repo url, remove the patch file (not needed anymore)

* refactoring: there is no need to have an abstract class if only 1 class derives from it

* use CurrentCulture.NumberFormat.NumberDecimalSeparator instead of hardcoded dot (it's , for polish UI and it fails for me)

* use .NET Standard way of accessing CurrentCulture to fix the build

* updated repor url to our fork + removed dead code

6 years agoFix Avx.ConvertToSingle flags (#17954)
mikedn [Fri, 11 May 2018 04:41:43 +0000 (07:41 +0300)]
Fix Avx.ConvertToSingle flags (#17954)

6 years agoMerge pull request dotnet/corefx#29636 from stephentoub/formatmessage
Stephen Toub [Fri, 11 May 2018 02:27:53 +0000 (22:27 -0400)]
Merge pull request dotnet/corefx#29636 from stephentoub/formatmessage

Improvements to FormatMessage

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
6 years agoupdate profiler API status to reflect that #13153 is resolved (#17953)
Sung Yoon Whang [Fri, 11 May 2018 02:57:47 +0000 (19:57 -0700)]
update profiler API status to reflect that #13153 is resolved (#17953)

6 years agoMerge pull request #17941 from dotnet-maestro-bot/master-UpdateDependencies
Wes Haggard [Fri, 11 May 2018 00:48:08 +0000 (17:48 -0700)]
Merge pull request #17941 from dotnet-maestro-bot/master-UpdateDependencies

Update BuildTools, CoreClr, CoreFx to preview1-02810-02, preview1-26510-06, preview1-26510-05, respectively (master)

6 years agoJIT: fix case with slow generic delegate creation (#17802)
Andy Ayers [Fri, 11 May 2018 00:22:10 +0000 (17:22 -0700)]
JIT: fix case with slow generic delegate creation (#17802)

The jit has been using IR pattern matching to find the information needed for
optimizing delegate construction. This missed one case, causing the code to
use a very slow construction path.

to convey this information to the optimization. With this change the jit now
now relies on the token cache for all the other cases too.

This initial commit preserves the pattern match code and verifies that when
it fires it reaches the same conclusion as the token cache does.

This cross-validation revealed one case where the token information was less
specific than the pattern match so we now also update the method handle in
the token from the call info.

A subsequent commit will remove the pattern matching when we are confident the
new token cache logic handles all the cases correctly.

Closes #12264.

6 years agoadd test with tail call of VSD stub with AV. (#17920)
Sergey Andreenko [Fri, 11 May 2018 00:10:57 +0000 (17:10 -0700)]
add test with tail call of VSD stub with AV. (#17920)

* add test with tail call of VSD stub with AV.

* exclude new failing test

* fix names/types

* forbid inlining

6 years agoUpdate BuildTools, CoreClr, CoreFx to preview1-02810-02, preview1-26510-06, preview1...
dotnet-maestro-bot [Thu, 10 May 2018 22:25:59 +0000 (15:25 -0700)]
Update BuildTools, CoreClr, CoreFx to preview1-02810-02, preview1-26510-06, preview1-26510-05, respectively

6 years agoValue number identities for compares and subs (#17919)
Andy Ayers [Thu, 10 May 2018 21:43:03 +0000 (14:43 -0700)]
Value number identities for compares and subs (#17919)

Improve value number support for various subtracts and unsigned compares.
For instance for non-float values, x - x == 0.

Closes #15491.

6 years agoMerge pull request #17784 from adityamandaleeka/add_jit_hfa_passing_test
Aditya Mandaleeka [Thu, 10 May 2018 19:01:17 +0000 (12:01 -0700)]
Merge pull request #17784 from adityamandaleeka/add_jit_hfa_passing_test

Add a test case for HFA passing

6 years agoSpecify ordering between CrstUniqueStack and CrstReadyToRunEntryPointToMethodDescMap...
Sung Yoon Whang [Thu, 10 May 2018 16:04:52 +0000 (09:04 -0700)]
Specify ordering between CrstUniqueStack and CrstReadyToRunEntryPointToMethodDescMap (#17938)

6 years agoCall ContainCheckIndir on the newly created indir
Mike Danes [Thu, 10 May 2018 15:47:51 +0000 (18:47 +0300)]
Call ContainCheckIndir on the newly created indir

6 years agoFix alternate stack for Alpine docker on SELinux (#17936)
Jan Vorlicek [Thu, 10 May 2018 13:33:54 +0000 (15:33 +0200)]
Fix alternate stack for Alpine docker on SELinux (#17936)

For some reason, the Alpine docker container running on a SELinux host maps
heap as RWX. When we allocate alternate stack from the heap, we also
change the protection of the first page to PROT_NONE so that it can
serve as a guard page to catch stack overflow. And when we free the
alternate stack, we restore the protection back to PROT_READ |
PROT_WRITE. The restoration fails in Alpine docker container running on
a SELinux host with EPROT failure and the SELinux log reports that an
attempt to change heap to executable was made. So it looks like the
kernel has added the PERM_EXEC to the permissions we have passed to the
mprotect call. There is a code in the mprotect implementation that can
do that, although I don't fully understand the conditions under which it
happens. This is driven by the VM_MAYEXEC flag in the internal VMA block
structure.
To fix that, I've modified the alternate stack allocation to use mmap /
munmap instead of C heap allocation.

6 years agoReplace easy Substrings with AsSpan/Slices (#17916)
Stephen Toub [Thu, 10 May 2018 01:36:19 +0000 (21:36 -0400)]
Replace easy Substrings with AsSpan/Slices (#17916)

* Replace several Substrings with AsSpan/Slices

* Address PR feedback

6 years agoFix lst file for new test additions.
Aditya Mandaleeka [Wed, 9 May 2018 21:40:31 +0000 (14:40 -0700)]
Fix lst file for new test additions.

6 years agofix semicolon and priorities for new excluded tests (#17934)
Sergey Andreenko [Thu, 10 May 2018 00:14:24 +0000 (17:14 -0700)]
fix semicolon and priorities for new excluded tests (#17934)

6 years agoMerge pull request #17911 from CarolEidt/Fix16377
Carol Eidt [Wed, 9 May 2018 22:09:26 +0000 (15:09 -0700)]
Merge pull request #17911 from CarolEidt/Fix16377

Arm64: Pass promoted struct using GT_FIELD_LIST

6 years agoAdd regression test for passing HFA params.
Aditya Mandaleeka [Wed, 25 Apr 2018 21:46:26 +0000 (14:46 -0700)]
Add regression test for passing HFA params.

6 years agoImprove checking of GTF_CALL flag. (#17857)
Eugene Rozenfeld [Wed, 9 May 2018 20:16:10 +0000 (13:16 -0700)]
Improve checking of GTF_CALL flag. (#17857)

The checker ensures that GTF_CALL is set only where
it's needed: on GT_CALL nodes, on GT_INTRINSIC nodes where
intrinsics are implemented by user calls, and on nodes that
have a child with GT_CALL flag set.

6 years agoUpdate CoreClr, CoreFx to preview1-26509-05, preview1-26509-05, respectively (#17930)
dotnet-maestro-bot [Wed, 9 May 2018 18:35:36 +0000 (13:35 -0500)]
Update CoreClr, CoreFx to preview1-26509-05, preview1-26509-05, respectively (#17930)

6 years agoReduce allocation in StringBuilder marshaling (#17928)
Stephen Toub [Wed, 9 May 2018 18:35:14 +0000 (14:35 -0400)]
Reduce allocation in StringBuilder marshaling (#17928)

When marshaling back results for a StringBuilder argument in a P/Invoke:
- for UTF8 it's allocating a new char[], pinning it, and then handing that off to StringBuilder.ReplaceBufferInternal, which itself then allocates a new char[], and all of that happens even if the StringBuilder's char[] is already big enough to handle the results, which is commonly the case due to the StringBuilder having been sized appropriately from the get-go.
- for both Unicode and Ansi, it's similarly allocating a new char[] invariably, even if the existing buffer is already sufficient.

This commit cleans that up.

While ideally we wouldn't use StringBuilders at all in coreclr/corefx for marshaling, we still do in some places, e.g. Dns.GetHostName.  While we should separately fix that to avoid using a StringBuilder at all, it's useful to demonstrate the impact of the change here:
```C#
[Benchmark]
public static string GetHostName() => Dns.GetHostName();
```
on my machine results in:
```
      Method |  Gen 0 | Allocated |
------------ |-------:|----------:|
 Before      | 0.2668 |   1.09 KB |
 After       | 0.1392 |     584 B |
```

6 years agoRestrict what we archive for perf testing (#17918)
Michelle McDaniel [Wed, 9 May 2018 16:55:39 +0000 (09:55 -0700)]
Restrict what we archive for perf testing (#17918)

* Restrict what we archive for perf testing

* change all perf legs archival

* Change txt save to *_log.txt

* Reduce number of days to keep artifacts

6 years agoUpdate arm/arm64 test lists (#17855)
Sergey Andreenko [Wed, 9 May 2018 04:32:14 +0000 (21:32 -0700)]
Update arm/arm64 test lists (#17855)

* update arm64list

* exclude JIT\HardwareIntrinsics\X86 for arm64

We do not want to spend arm64 machine resourses on them.

JIT\HardwareIntrinsics\X86\Sse\LoadAlignedVector128_ro was left enabled to test the failing path.

* update arm test list

* exclude JIT\HardwareIntrinsics\X86 for arm

* exclude failing tests for arm32

* exclude failing tests for arm64

6 years agoUpdate BuildTools, CoreClr, CoreFx to preview1-02808-01, preview1-26509-01, preview1...
dotnet-maestro-bot [Wed, 9 May 2018 03:33:20 +0000 (22:33 -0500)]
Update BuildTools, CoreClr, CoreFx to preview1-02808-01, preview1-26509-01, preview1-26509-01, respectively (#17923)

6 years agoRename mscorlib to System.Private.Corelib (#17926)
Maryam Ariyan [Wed, 9 May 2018 03:30:54 +0000 (20:30 -0700)]
Rename mscorlib to System.Private.Corelib (#17926)

* diff from just renaming folder mscorlib to System.Private.CoreLib

* Updating build.proj to reflect name change

Fixes: #17905

6 years agoHandle SIMD field of GT_FIELD_LIST in codegen.
Carol Eidt [Wed, 9 May 2018 00:20:04 +0000 (17:20 -0700)]
Handle SIMD field of GT_FIELD_LIST in codegen.
Add header to test case.

6 years agoUpdate DotnetCLIVersion.txt (#17925)
Michelle McDaniel [Tue, 8 May 2018 22:57:06 +0000 (15:57 -0700)]
Update DotnetCLIVersion.txt (#17925)

The current version is broken for RHEL. This change revs up the version
to 2.1.300-rtm-008820, which is fixed for RHEL.

6 years agoDelete irrelevant comment (#17921)
Jan Kotas [Tue, 8 May 2018 22:50:23 +0000 (15:50 -0700)]
Delete irrelevant comment (#17921)