platform/upstream/coreclr.git
7 years agoMerge pull request #7071 from erozenfeld/StackOverflow
Eugene Rozenfeld [Thu, 8 Sep 2016 22:28:47 +0000 (15:28 -0700)]
Merge pull request #7071 from erozenfeld/StackOverflow

Make GT_LIST processing non-recursive to avoid StackOverflow.

7 years agoMerge pull request #7107 from pgavlin/gh7089
Pat Gavlin [Thu, 8 Sep 2016 20:24:00 +0000 (13:24 -0700)]
Merge pull request #7107 from pgavlin/gh7089

Fix #7089.

7 years agoMerge pull request #6764 from swgillespie/gc-interface-3
Sean Gillespie [Thu, 8 Sep 2016 20:06:21 +0000 (13:06 -0700)]
Merge pull request #6764 from swgillespie/gc-interface-3

Move the GC behind an interface and use that interface in the VM

7 years agoIntroduce an interface separating the GC and the VM,
Sean Gillespie [Thu, 8 Sep 2016 18:27:24 +0000 (11:27 -0700)]
Introduce an interface separating the GC and the VM,
modifying the VM to utilize this interface.

Introduce an interface separating the GC and the rest of the VM

Remove static members of both IGCHeap and IGCHeapInternal and move the management of the singular GC heap to the VM.

Rename uses of IGCHeap in the VM to GCHeapHolder, as well as other misc. renames throughout the VM and GC.

Split each interface function into categories, document them, use consistent formatting across the interface

Undo some accidental find/replace collateral damage

Remove all ifdefs from the GC interface

Deduplicate function declarations between IGCHeap and IGCHeapInternal, expose AllocAlign8 through the interface and the reference to alloc_context to repair the ARM build

Paper cut: false -> nullptr

Repair the ARM and x86 builds

Rename GCHeapHolder -> GCHeapUtilities and address documentation feedback

Rebase against master

Rename gcholder.h/cpp -> gcheaputilities.h/cpp

Fix an uninitialized field on alloc_context causing test failures on clang

Rename the include guard for gcheaputilities.h

Un-breaks SOS by making the following changes:
  1) Instructs the DAC to look for IGCHeap::gcHeapType by name,
     instead of assuming that it exists near g_pGCHeap,
  2) Eliminate all virtual calls on IGCHeap in the DAC, since we cannot
     dispatch on an object in another process,
  3) Because of 2, expose the number of generations past the GC interface
     using a static variable on IGCHeap that the DAC can read directly.

repair the Windows build

7 years agoMerge pull request #7106 from pgavlin/DecompTP
Pat Gavlin [Thu, 8 Sep 2016 17:52:21 +0000 (10:52 -0700)]
Merge pull request #7106 from pgavlin/DecompTP

Improve decomp throughput.

7 years agoReturn false from isRegPairType for RyuJIT.
Pat Gavlin [Thu, 8 Sep 2016 16:36:20 +0000 (09:36 -0700)]
Return false from isRegPairType for RyuJIT.

The RyuJIT backend does not use regpair types, so this method should
simply return false when that backend is in use. In the future we
should consider removing this method (and other regpair-related code).

Fixes #7089.

7 years agoMerge pull request #6995 from rahku/appdomain
Rahul Kumar [Thu, 8 Sep 2016 16:44:01 +0000 (09:44 -0700)]
Merge pull request #6995 from rahku/appdomain

Exposes runtime functionality to Appdomain implementation in corefx

7 years agoMerge pull request #4986 from mikedn/x86-cast-int-long
Pat Gavlin [Thu, 8 Sep 2016 16:31:08 +0000 (09:31 -0700)]
Merge pull request #4986 from mikedn/x86-cast-int-long

Implement integer to long/ulong casts for x86

7 years agoImprove decomp throughput.
Pat Gavlin [Thu, 8 Sep 2016 14:27:36 +0000 (07:27 -0700)]
Improve decomp throughput.

Don't find uses unless necessary. This saves about 50 milliseconds while
crossgen'ing mscorlib.

7 years agoExposes runtime functionality to Appdomain implementation in corefx
Rahul Kumar [Tue, 30 Aug 2016 21:56:11 +0000 (14:56 -0700)]
Exposes runtime functionality to Appdomain implementation in corefx

7 years agoMerge pull request #7011 from svick/earlyprop-unused-var
Pat Gavlin [Thu, 8 Sep 2016 15:20:47 +0000 (08:20 -0700)]
Merge pull request #7011 from svick/earlyprop-unused-var

Fix BBF_HAS_NULLCHECK test

7 years agoAdd a NYI for a long compare codegen issue
Mike Danes [Thu, 8 Sep 2016 12:14:32 +0000 (15:14 +0300)]
Add a NYI for a long compare codegen issue

Tracked by #7038

7 years agoImplement integer to long/ulong casts for x86
Mike Danes [Sun, 15 May 2016 11:04:13 +0000 (14:04 +0300)]
Implement integer to long/ulong casts for x86

7 years agoAdd constraint to Enum.Parse<TEnum> (#7104)
Yufei Huang [Thu, 8 Sep 2016 07:07:54 +0000 (15:07 +0800)]
Add constraint to Enum.Parse<TEnum> (#7104)

7 years agoMerge pull request #6889 from JosephTremoulet/StaticField
Joseph Tremoulet [Thu, 8 Sep 2016 05:04:25 +0000 (01:04 -0400)]
Merge pull request #6889 from JosephTremoulet/StaticField

Fix IMGREL32 static field addr value-num blindspot

7 years agoMerge pull request #6754 from hseok-oh/castd2ul
Joseph Tremoulet [Thu, 8 Sep 2016 05:04:07 +0000 (01:04 -0400)]
Merge pull request #6754 from hseok-oh/castd2ul

disable gtFoldExprConst for conversion from negative double to unsigned long

7 years agoMake TryEnsureSufficientExecutionStack public (#7077)
Bart J.F. De Smet [Thu, 8 Sep 2016 01:37:45 +0000 (18:37 -0700)]
Make TryEnsureSufficientExecutionStack public (#7077)

7 years agoFix OSX build break in PAL tests (#7101)
Jan Vorlicek [Thu, 8 Sep 2016 01:37:07 +0000 (03:37 +0200)]
Fix OSX build break in PAL tests (#7101)

This fixes a build break in PAL tests introduced by a recent checkin
that converted PAL tests to C++.

7 years agoMerge pull request #7023 from pgavlin/X87MathIntrinsics
Pat Gavlin [Wed, 7 Sep 2016 21:56:39 +0000 (14:56 -0700)]
Merge pull request #7023 from pgavlin/X87MathIntrinsics

Stop treating sine/cosine/round as target intrinsics on x86.

7 years agoLink #7097 to the relevant code in ::IsTargetIntrinsic.
Pat Gavlin [Wed, 7 Sep 2016 21:45:36 +0000 (14:45 -0700)]
Link #7097 to the relevant code in ::IsTargetIntrinsic.

7 years agoFix strict aliasing violation from conditional typedef of wchar_t by building entire...
kchoi [Wed, 7 Sep 2016 21:12:22 +0000 (14:12 -0700)]
Fix strict aliasing violation from conditional typedef of wchar_t by building entire project as C++ for Unix (#6801)

Enable building CoreCLR as C++ project on Unix

This series of patches fixes the strict aliasing violation from
the conditional typedef of wchar_t in src/pal/inc/pal_char16.h:40

* rename c files to cpp
* modify all cmake files to change .c files to .cpp
* apply c++ linkage to templates

7 years agoMerge pull request #7016 from smile21prc/coreclr-perf
smile21prc [Wed, 7 Sep 2016 20:51:35 +0000 (13:51 -0700)]
Merge pull request #7016 from smile21prc/coreclr-perf

Create coreclr perf jobs for Linux.
Addressed all the comments, and verified coreclr perf run for Linux with latest coreclr/corefx bits passed:
http://dotnet-ci2.cloudapp.net/job/smile21prc_coreclr/job/coreclr-perf/job/perf_Linux/28/consoleFull

7 years agoMerge pull request #7098 from pgavlin/FixTestOutputPath
Pat Gavlin [Wed, 7 Sep 2016 20:19:31 +0000 (13:19 -0700)]
Merge pull request #7098 from pgavlin/FixTestOutputPath

Fix the output path when building a single test.

7 years agoCreate coreclr perf jobs for Linux.
Smile Wei [Tue, 30 Aug 2016 19:31:25 +0000 (12:31 -0700)]
Create coreclr perf jobs for Linux.

7 years agoFix the output path when building a single test.
Pat Gavlin [Wed, 7 Sep 2016 18:09:40 +0000 (11:09 -0700)]
Fix the output path when building a single test.

Add a trailing slash to the base output path.

7 years agoStop treating sine/cosine/round as target intrinsics on x86.
Pat Gavlin [Wed, 7 Sep 2016 17:51:29 +0000 (10:51 -0700)]
Stop treating sine/cosine/round as target intrinsics on x86.

These intrinsics were supported by JIT32 using the corresponding
x87 instructions. There are a few downsides to doing the same in
RyuJIT, however, because it uses SSE for all other floating-point
math:
- The mix of precisions used by the combination of SSE + x87
  instructions matches neither the JIT32 nor the RyuJIT/x64
  behavior.
- Using the x87 instructions is more expensive, as the result of
  the instruction may need to be moved via memory to an SSE
  register.
- The RA would need to be udpated in order to better understand
  that each x87 instruction may require a spill temp in order to
  retrieve the result.

Issue #7097 tracks investigating a custom calling convention for
the appropriate helper calls if necessasry.

7 years agoMake GT_LIST processing non-recursive to avoid StackOverflow.
Eugene Rozenfeld [Tue, 6 Sep 2016 23:51:23 +0000 (16:51 -0700)]
Make GT_LIST processing non-recursive to avoid StackOverflow.

We had some internal cases where crossgen failed with StackOverflow exception
when compiling huge methods. In particular, the methods had GT_PHI nodes with
huge number of arguments.

StackOverflow was happening in multiple places. Recent LIR changes eliminated two of those places,
these changes eliminate two more: gtSetEvalOrder and fgDebugCheckFlags (debug only). We already had
gtSetListOrder but it was only used for call arg lists. I made gtSetListOrder non-recursive and also generalized
to handle other GT_LIST nodes.

With that with these changes the huge repros can now be crossgen'd.

I verified no assembly diffs in SuperPMI.

I'm verifying overall throughput effect.

7 years agoMerge pull request #7065 from adiaaida/multiplyLongMul_Hi
Michelle McDaniel [Wed, 7 Sep 2016 15:55:06 +0000 (08:55 -0700)]
Merge pull request #7065 from adiaaida/multiplyLongMul_Hi

Enable long multiply

7 years agoMerge pull request #7081 from yufeih/enum_try_parse
Wes Haggard [Wed, 7 Sep 2016 15:54:26 +0000 (08:54 -0700)]
Merge pull request #7081 from yufeih/enum_try_parse

Add Enum.TryParse and Enum.Parse<TEnum>

7 years agoConcurrentDictionary<TKey, TValue> Exceptions to ThrowHelper (#7079)
Ben Adams [Wed, 7 Sep 2016 15:51:49 +0000 (16:51 +0100)]
ConcurrentDictionary<TKey, TValue> Exceptions to ThrowHelper (#7079)

7 years agoMerge pull request #7068 from CarolEidt/FixArm64
Carol Eidt [Wed, 7 Sep 2016 15:39:42 +0000 (08:39 -0700)]
Merge pull request #7068 from CarolEidt/FixArm64

Fix Arm64 build breaks

7 years agoMerge pull request #7075 from tarekgh/DisableZh-CHS-CHT
Tarek Mahmoud Sayed [Wed, 7 Sep 2016 15:25:01 +0000 (08:25 -0700)]
Merge pull request #7075 from tarekgh/DisableZh-CHS-CHT

Avoid creating zh-CHS/zh-CHT durng culture enumeration

7 years agoEnable long multiply
Michelle McDaniel [Wed, 31 Aug 2016 15:14:57 +0000 (08:14 -0700)]
Enable long multiply

Most long multiplies are converted in morph to helper calls. However,
GT_MULs of the form long = (long)int * (long)int are passed through to be
handled in codegen. In decompose, we convert these multiplies to
GT_MUL_HIs to be handled in a similar manner at GT_MULHI. Since mul and
imul take two ints and return a long in edx:eax, we can handle them
similarly to GT_CALLs, where we save them to lclvars if they aren't
already saved. In codegen, we generate a mul (or imul for signed
multiply), which produces the output in edx:eax, and then we store those
locations when we handle the storelclvar.

7 years agoExclude smallFrame.sh test for ARM (#7080)
Hyung-Kyu Choi [Wed, 7 Sep 2016 13:50:44 +0000 (22:50 +0900)]
Exclude smallFrame.sh test for ARM (#7080)

JIT/Methodical/tailcall_v4/smallFrame/smallFrame.sh contains
"tail.call, pop, ret" pattern. The pattern is not allowed in ECMA and
is only supported on x64 for compatibility. (issue #7036)

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoCorrect the virtual overload of Stream.CopyTo (#7082)
James Ko [Wed, 7 Sep 2016 13:01:33 +0000 (09:01 -0400)]
Correct the virtual overload of Stream.CopyTo (#7082)

7 years agoAdd Enum.TryParse and Enum.Parse<TEnum>
Yufei Huang [Wed, 7 Sep 2016 08:53:59 +0000 (16:53 +0800)]
Add Enum.TryParse and Enum.Parse<TEnum>

7 years agoTask<T> Exceptions to ThrowHelper (#7076)
Ben Adams [Wed, 7 Sep 2016 05:49:53 +0000 (06:49 +0100)]
Task<T> Exceptions to ThrowHelper (#7076)

7 years agomodify comment
Hyeongseok Oh [Wed, 7 Sep 2016 04:26:05 +0000 (13:26 +0900)]
modify comment

7 years agoadd comment
Hyeongseok Oh [Wed, 7 Sep 2016 04:18:39 +0000 (13:18 +0900)]
add comment

7 years agoAvoid creating zh-CHS/zh-CHT durng culture enumeration
Tarek Mahmoud Sayed [Wed, 7 Sep 2016 01:33:41 +0000 (18:33 -0700)]
Avoid creating zh-CHS/zh-CHT durng culture enumeration

zh-CHS and zh-CHT are old names that is not really supported in the standards.
when we enabled CultureInfo.GetCultures() there was some code that create cultures
for zh-CHS and zh-CHT. The fix here is disable that otherwise we'll have to enable
a good chunk of legacy code to support it while it never supported by coreclr and in
same time are not names used in standards

7 years agoMake Stream.CopyTo virtual (#7070)
James Ko [Wed, 7 Sep 2016 01:19:51 +0000 (21:19 -0400)]
Make Stream.CopyTo virtual (#7070)

7 years agoMerge pull request #7022 from lemmaa/prevent-build-output-contamination
Rama krishnan Raghupathy [Wed, 7 Sep 2016 00:20:54 +0000 (17:20 -0700)]
Merge pull request #7022 from lemmaa/prevent-build-output-contamination

[Script] Prevent build output contamination while building test overlay

7 years agoMerge pull request #7064 from JosephTremoulet/MakeCse
Joseph Tremoulet [Tue, 6 Sep 2016 19:54:32 +0000 (15:54 -0400)]
Merge pull request #7064 from JosephTremoulet/MakeCse

Fix GTF_ flag collision

7 years agoFix Arm64 build breaks
Carol Eidt [Tue, 6 Sep 2016 19:39:29 +0000 (12:39 -0700)]
Fix Arm64 build breaks

The `GT_STORE_OBJ` case in codegen was missing a break.
`getStructHandleIfPresent` wasn't correctly handling `GT_ASG'.
The `srcCount` was not being set correctly for block ops with a constant size.
And I lost some code in `fgMakeTmpArgNode` with a merge.
Also, I had introduced a dumping issue in gentree.cpp when I made `GT_OBJ` a `GTK_UNOP` as a result of some PR comments.

7 years agoMerge pull request #6922 from gkhanna79/WinArm32
Gaurav Khanna [Tue, 6 Sep 2016 19:42:14 +0000 (12:42 -0700)]
Merge pull request #6922 from gkhanna79/WinArm32

Enable Arm32 Test Build

7 years agoArray<T> exceptions to ThrowHelper (#7059)
Ben Adams [Tue, 6 Sep 2016 18:14:42 +0000 (19:14 +0100)]
Array<T> exceptions to ThrowHelper (#7059)

7 years ago[Linux][LLDB][GDB/JIT] Add support for lldb 'breakpoint set' for jitted code (#6956)
Dmitri-Botcharnikov [Tue, 6 Sep 2016 17:27:13 +0000 (21:27 +0400)]
[Linux][LLDB][GDB/JIT] Add support for lldb 'breakpoint set' for jitted code (#6956)

* Add support for lldb 'breakpoint set' for jitted code

* Updated after review

* Enlarge buffer for line program

7 years agoMove genIncRegBy() to codegenclassic.h (#7063)
Hyung-Kyu Choi [Tue, 6 Sep 2016 17:13:31 +0000 (02:13 +0900)]
Move genIncRegBy() to codegenclassic.h (#7063)

We don't have to keep genIncRegBy() in codegen.h anymore,
since genIncRegBy() is defined in codegenlegacy.cpp and only used in LEGACY_BACKEND code.

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years ago[ARM] Remove ARM_HAZARD_AVOIDANCE (#7019)
Hanjoung Lee [Tue, 6 Sep 2016 16:42:03 +0000 (01:42 +0900)]
[ARM] Remove ARM_HAZARD_AVOIDANCE (#7019)

remove `ARM_HAZARD_AVOIDANCE` as it is a rare case.

For #7003

7 years agoEnable FEATURE_JIT_METHOD_PERF always (even when FEATURE_CORECLR is on). (#7028)
Peter Kukol [Tue, 6 Sep 2016 16:21:13 +0000 (10:21 -0600)]
Enable FEATURE_JIT_METHOD_PERF always (even when FEATURE_CORECLR is on). (#7028)

7 years agoFix GTF_ flag collision
Joseph Tremoulet [Fri, 2 Sep 2016 19:22:01 +0000 (15:22 -0400)]
Fix GTF_ flag collision

Define flag `GTF_IS_IN_CSE` (which is used only to communicate in a call to
`gtNodeHasSideEffects` that the caller wants to disregard the side-effect
of running a .cctor) as `GTF_BOOLEAN` rather than `GTF_MAKE_CSE` -- as the
comment at the definition of `GTF_IS_IN_CSE` indicates, the only
requirement on its value is that it not conflict with one of the
side-effect flags, but `gtNodeHasSideEffects` does in fact check for
`GTF_MAKE_CSE`, so the current value conflicts.

Also update the code in `gtNodeHasSideEffects` that is dictated by
`GTF_IS_IN_CSE` to check just for that bit, instead of checking that the
caller passed in exactly `GTF_PERSISTENT_SIDE_EFFECTS_IN_CSE` -- no need
to entangle conceptually independent parameters.

Fixes #7042.

7 years agoAdd proper support for custom installed llvm tool chain. (#7050)
Sung-Jae Lee [Tue, 6 Sep 2016 15:45:33 +0000 (00:45 +0900)]
Add proper support for custom installed llvm tool chain. (#7050)

* Add LLVM_HOME enviroment variable support

7 years agofix helpers' flag: ULDiv, ULMod can throw Div-by-zero exception (#7052)
Hyeongseok Oh [Tue, 6 Sep 2016 15:43:39 +0000 (00:43 +0900)]
fix helpers' flag: ULDiv, ULMod can throw Div-by-zero exception (#7052)

7 years agoArraySegment<T> exceptions to ThrowHelper (#7058)
Ben Adams [Tue, 6 Sep 2016 14:23:37 +0000 (15:23 +0100)]
ArraySegment<T> exceptions to ThrowHelper (#7058)

7 years agoExclude two more tests for ARM (#7062)
Hyung-Kyu Choi [Tue, 6 Sep 2016 14:21:11 +0000 (23:21 +0900)]
Exclude two more tests for ARM (#7062)

According to issue #6217, following three tests fails
, because FEATURE_FASTTAILCALL is not supported in ARM.

  JIT/Directed/tailcall/tailcall/tailcall.sh
  JIT/Methodical/tailcall_v4/hijacking/hijacking.sh
  JIT/Regression/JitBlue/devdiv_902271/DevDiv_902271/DevDiv_902271.sh

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoPrevent build output contamination while building test overlay
Sung-Jae Lee [Thu, 1 Sep 2016 08:06:30 +0000 (17:06 +0900)]
Prevent build output contamination while building test overlay

While building test overlay, all files in `$mscorlibDir/bin` are
copyed to `$mscorlibDir` where usually `$coreclrBinDir`.
It contaminates build output. This commit prevent it by moving
copy commend to function `create_core_overlay`.

7 years agoAllow mapping LCID and culture names mapping for neutral culture (#7049)
Tarek Mahmoud Sayed [Mon, 5 Sep 2016 19:13:23 +0000 (12:13 -0700)]
Allow mapping LCID and culture names mapping for neutral culture (#7049)

This change is to pass the flag LOCALE_ALLOW_NEUTRAL_NAMES to the OS API to allow mapping
LCID to/from culture names.

7 years agoImprove ThrowHelper (#7048)
Ben Adams [Mon, 5 Sep 2016 03:34:28 +0000 (04:34 +0100)]
Improve ThrowHelper (#7048)

7 years agoMerge pull request #7027 from CarolEidt/1stClassStructBlkOps
Carol Eidt [Sun, 4 Sep 2016 23:42:04 +0000 (16:42 -0700)]
Merge pull request #7027 from CarolEidt/1stClassStructBlkOps

1st Class Struct Block Assignments

7 years agoMerge pull request #7015 from ramarag/fixup_precode
Rama krishnan Raghupathy [Sat, 3 Sep 2016 04:56:43 +0000 (21:56 -0700)]
Merge pull request #7015 from ramarag/fixup_precode

Implement FixupPrecode for Arm64

7 years agoImplement FixupPrecode for Arm64
Rama Krishnan Raghupathy [Wed, 31 Aug 2016 23:55:28 +0000 (16:55 -0700)]
Implement FixupPrecode for Arm64

7 years agoMore PR comments
Carol Eidt [Fri, 2 Sep 2016 23:28:31 +0000 (16:28 -0700)]
More PR comments

7 years agoReduce item format allocations in AppendFormat (#4702)
Bruce Bowyer-Smyth [Fri, 2 Sep 2016 22:48:57 +0000 (08:48 +1000)]
Reduce item format allocations in AppendFormat (#4702)

7 years agoMerge pull request #6976 from kvochko/prof_elt_callbacks
Rahul Kumar [Fri, 2 Sep 2016 21:00:58 +0000 (14:00 -0700)]
Merge pull request #6976 from kvochko/prof_elt_callbacks

Enable FunctionEnter/FunctionLeave callbacks on ARM

7 years agoMerge pull request #7041 from mmitche/add-help-job
Matt Mitchell [Fri, 2 Sep 2016 18:29:56 +0000 (11:29 -0700)]
Merge pull request #7041 from mmitche/add-help-job

Add help job

7 years agoAdd help job
Matt Mitchell [Fri, 2 Sep 2016 18:11:18 +0000 (11:11 -0700)]
Add help job

7 years agoRestore the change to gtNewBlkOpNode
Carol Eidt [Fri, 2 Sep 2016 14:53:11 +0000 (07:53 -0700)]
Restore the change to gtNewBlkOpNode

7 years agoLTO build: fix perf regression from strict alias violation and incorrect inline assem...
kchoi [Fri, 2 Sep 2016 11:00:41 +0000 (04:00 -0700)]
LTO build: fix perf regression from strict alias violation and incorrect inline assembly (#7018)

Fix inline assembly implementation of getextcpuid() and strict aliasing violations in its callers

The implementation writes to the unsigned char result array, so
the clobber "memory" is needed.

As well its callers have strict aliasing violations from reading the
result array as a DWORD array. The fix is to memcpy the resulting
buffer onto the DWORD array.

7 years agoEnabled FunctionEnter/FunctionLeave hooks on ARM (#6939)
Andrey Kvochko [Fri, 26 Aug 2016 16:57:51 +0000 (19:57 +0300)]
Enabled FunctionEnter/FunctionLeave hooks on ARM (#6939)

7 years agoMore PR Feedback
Carol Eidt [Fri, 2 Sep 2016 04:27:46 +0000 (21:27 -0700)]
More PR Feedback

7 years agoImprove StringBuilder ctor(), ctor(int), and ToString() performance. Consistent chang...
Bruce Bowyer-Smyth [Fri, 2 Sep 2016 01:25:53 +0000 (11:25 +1000)]
Improve StringBuilder ctor(), ctor(int), and ToString() performance. Consistent changes in other functions. (#7029)

7 years agoMerge pull request #7032 from mmitche/make-triggers-non-default
Matt Mitchell [Thu, 1 Sep 2016 23:11:09 +0000 (16:11 -0700)]
Merge pull request #7032 from mmitche/make-triggers-non-default

Changing new perf.groovy triggers to be non-default

7 years agoChanging new perf.groovy triggers to be non-default
Matt Mitchell [Thu, 1 Sep 2016 23:10:04 +0000 (16:10 -0700)]
Changing new perf.groovy triggers to be non-default

7 years agoAddress PR Feedback
Carol Eidt [Thu, 1 Sep 2016 22:48:01 +0000 (15:48 -0700)]
Address PR Feedback

7 years agoImprove ToUpper/ToLower perf (#7026)
Jan Kotas [Thu, 1 Sep 2016 21:26:48 +0000 (14:26 -0700)]
Improve ToUpper/ToLower perf (#7026)

7 years agoMake Lazy initialization of TextInfo::m_IsAsciiCasingSameAsInvariant thread safe...
Jose Manuel Heredia Hidalgo [Thu, 1 Sep 2016 21:24:22 +0000 (14:24 -0700)]
Make Lazy initialization of TextInfo::m_IsAsciiCasingSameAsInvariant thread safe (#7021)

Replace bool? with Tristate enum to make it thread safe. Also use Tristate instead of TurkishCasing enum

7 years agoMerge pull request #6978 from adiaaida/fixFormat
Michelle McDaniel [Thu, 1 Sep 2016 20:20:56 +0000 (13:20 -0700)]
Merge pull request #6978 from adiaaida/fixFormat

Fix format.py

7 years agoFix format.py
Michelle McDaniel [Tue, 30 Aug 2016 16:52:13 +0000 (09:52 -0700)]
Fix format.py

In format.py, we were downloading bootstrap.sh/cmd to the current working
directory, but assuming that it was in coreclr/bootstrap, which is
incorrect. This change downloads it directly to coreclr/bootstrap, so that
we download and run to the same location.

This change also modifies where we install the newer version of dotnetcli
needed for jitutils to the coreclr/dotnetcli-jitutils directory. This
change is necessary because build.cmd->run.cmd->init-tools.cmd removes the
Tools directory, including our dotnetcli directory, so we don't want our
version of the cli to be trashed.

We also clean up our work at the end of the script by removing the
created jitutils and dotnetcli directories, and the bootstrap script.

Finally, this change adds some comments to tell the user what it's doing.

7 years ago1st Class Struct Block Assignments
Carol Eidt [Thu, 21 Jul 2016 06:07:32 +0000 (23:07 -0700)]
1st Class Struct Block Assignments

Change block ops to assignments, with block nodes (GT_BLK, GT_OBJ and GT_DYN_BLK) as the lhs, and with GT_STORE_* in the backend.
For this initial change, existing behavior is preserved as much as possible, with a few differences in lea generation for SIMD types.
This causes pessimization in some areas; those, as well as the additional opportunities that can be enabled after this change, have all been marked TODO-1stClassStructs.

7 years agoGlobalization update from CoreRT - part 2 (#7020)
Jan Kotas [Thu, 1 Sep 2016 17:57:04 +0000 (10:57 -0700)]
Globalization update from CoreRT - part 2 (#7020)

- Persian calendar date formatting
- Fix IsPrefix handling of empty strings
- Formatting changes

7 years agoMerge pull request #7025 from dotnet/revert-6994-replace_which_with_hash
Jan Kotas [Thu, 1 Sep 2016 17:56:37 +0000 (10:56 -0700)]
Merge pull request #7025 from dotnet/revert-6994-replace_which_with_hash

Revert "Avoid using 'which' for verifying prereqs"

7 years agoRevert "Avoid using 'which' for verifying prereqs"
Jan Kotas [Thu, 1 Sep 2016 16:15:22 +0000 (09:15 -0700)]
Revert "Avoid using 'which' for verifying prereqs"

7 years agoMerge pull request #7024 from pgavlin/RunTestFix
Pat Gavlin [Thu, 1 Sep 2016 16:11:26 +0000 (09:11 -0700)]
Merge pull request #7024 from pgavlin/RunTestFix

Pass /p:Platform to msbuild in runtest.cmd.

7 years agoMerge pull request #7014 from pgavlin/TestBuildSpeedup
Pat Gavlin [Thu, 1 Sep 2016 14:22:29 +0000 (07:22 -0700)]
Merge pull request #7014 from pgavlin/TestBuildSpeedup

Stop groveling for project.json files when building every test.

7 years agoPass /p:Platform to msbuild in runtest.cmd.
Pat Gavlin [Thu, 1 Sep 2016 13:09:54 +0000 (06:09 -0700)]
Pass /p:Platform to msbuild in runtest.cmd.

Otherwise, the tests will use the ambient setting of the Platform
variable, which might not match the architecture specified on the
command line. This results in the wrong build of the tests running
against the correct runtime, which e.g. causes failures in tests
with native components.

7 years agoMerge pull request #7013 from swaroop-sridhar/PtrStruct
Swaroop Sridhar [Thu, 1 Sep 2016 04:15:56 +0000 (21:15 -0700)]
Merge pull request #7013 from swaroop-sridhar/PtrStruct

GcInfo: Report Struct containing one GcPointer correctly

7 years agoGcInfo: Report Struct containing one GcPointer correctly
Swaroop Sridhar [Wed, 31 Aug 2016 23:04:30 +0000 (16:04 -0700)]
GcInfo: Report Struct containing one GcPointer correctly

This change fixes a bug in the the GcInfo header,
where the ReturnKind is reported incorrectly for certain structs.

Structs that contain only one GCPointer or ByRef, can be returned
in a single register (Windows/Unix/OSX). The ReturnKind for these
struct-returns should be RT_Object/RT_ByRef, but they are currently
incorrectly reported as RT_Scalar. This change fixes the problem.

Fixes: dotnet/corefx#11260

7 years agoMerge pull request #6807 from lemmaa/add-options-for-arm-target-test
Aditya Mandaleeka [Thu, 1 Sep 2016 01:24:08 +0000 (18:24 -0700)]
Merge pull request #6807 from lemmaa/add-options-for-arm-target-test

[Linux/ARM/Script] Add some features help for arm target test

7 years agoUpdate Unix System.Globalization implementation from CoreRT (#7004)
Jan Kotas [Thu, 1 Sep 2016 00:21:40 +0000 (17:21 -0700)]
Update Unix System.Globalization implementation from CoreRT (#7004)

7 years agoStop groveling for project.json files when building every test.
Pat Gavlin [Wed, 31 Aug 2016 23:51:58 +0000 (16:51 -0700)]
Stop groveling for project.json files when building every test.

This information is only needed by build.proj. Do not compute it in dir.props,
which is included by every test project.

7 years agoMerge pull request #7010 from dotnet-bot/from-tfs
Jan Kotas [Wed, 31 Aug 2016 22:24:46 +0000 (15:24 -0700)]
Merge pull request #7010 from dotnet-bot/from-tfs

Merge changes from TFS

7 years agoMerge pull request #6772 from mellinoe/fix-build-packages
Eric Mellino [Wed, 31 Aug 2016 21:47:07 +0000 (14:47 -0700)]
Merge pull request #6772 from mellinoe/fix-build-packages

Specify packages.builds by default in build-packages command

7 years agoMerge pull request #6552 from pgavlin/RemovePreRationalizeLiveness
Pat Gavlin [Wed, 31 Aug 2016 21:23:32 +0000 (14:23 -0700)]
Merge pull request #6552 from pgavlin/RemovePreRationalizeLiveness

Do not run local var liveness before rationalize.

7 years agoMerge pull request #5884 from mikedn/x86-addsub-long
Pat Gavlin [Wed, 31 Aug 2016 21:04:15 +0000 (14:04 -0700)]
Merge pull request #5884 from mikedn/x86-addsub-long

Fix add/sub decomposition

7 years agoFix IMGREL32 static field addr value-num blindspot
Joseph Tremoulet [Tue, 23 Aug 2016 01:14:24 +0000 (21:14 -0400)]
Fix IMGREL32 static field addr value-num blindspot

When `fgMorphField` lowers a static field reference for which
`eeGetRelocTypeHint` returns `IMAGE_REL_BASED_REL32`, it creates an
`IntCon`, flagged with `GFT_ICON_STATIC_HDL` and marked with the static
field in its `gtFieldSeq` field, to represent the field's address (as
opposed to the normal case where it generates a `ClsVar`).  This change
updates the `IsFieldAddr` helper used by value-numbering/loop-hoisting to
recognize such constants as the appropriate field address, which then
allows the disambiguation/tracking of accesses to these fields to kick in
as it does for `ClsVar` nodes.

Also update test GC/Scenarios/FinalizeTimeout to mark a bool volatile that
otherwise can get hoisted (the test aims to observe finalization from a
side-effect-free busy-loop by communicating through this bool).

Fixes #6900.

7 years agoAdd missing BBF_HAS_NULLCHECK test
Petr Onderka [Wed, 31 Aug 2016 20:10:48 +0000 (22:10 +0200)]
Add missing BBF_HAS_NULLCHECK test

7 years agoMerge pull request #7009 from BruceForstall/PrintErrorForFuncInfoFailure
Bruce Forstall [Wed, 31 Aug 2016 19:59:14 +0000 (12:59 -0700)]
Merge pull request #7009 from BruceForstall/PrintErrorForFuncInfoFailure

Print an error, in DEBUG, if we fail to open the JitFuncInfoLogFile

7 years agoMerge pull request #6943 from mellinoe/fedora-24
Eric Mellino [Wed, 31 Aug 2016 19:36:37 +0000 (12:36 -0700)]
Merge pull request #6943 from mellinoe/fedora-24

Add fedora24 native packages

7 years agoFix funceval of a function returning 16 byte value type. (#6997)
Mike McLaughlin [Wed, 31 Aug 2016 19:27:12 +0000 (12:27 -0700)]
Fix funceval of a function returning 16 byte value type. (#6997)

On Linux and OS X, structs less or equal to 16 bytes (instead of 8 bytes
on Windows) are enregistered. Only 8 bytes is being passed back to
debugger during a funceval of a property or method that returns a 16
byte value type.

To fix this, the 16 byte return value (which is only used for enregistered
structures of that size on xplat) needed to be plumbed from CallTargetWorker
through the MethodDescCallSite macros to the func eval code.

The func eval code needed to also deal with 16 byte results.

NUMBER_RETURNVALUE_SLOTS is the number of ARG_SLOTs that will contain the
maximum enregistered return value.

CordbEval:m_result is now ARG_SLOT[NUMBER_RETURNVALUE_SLOTS].

CallTargetWorker is now passed a pointer and the count of bytes to/of the
return value buffer.

Minor fix to SOS SymbolReader function.

7 years agoRemoved unused variable
Petr Onderka [Wed, 31 Aug 2016 19:18:35 +0000 (21:18 +0200)]
Removed unused variable