platform/upstream/coreclr.git
8 years agoMerge pull request #2640 from janvorli/fix-stack-overflow
Jan Kotas [Thu, 14 Jan 2016 06:27:03 +0000 (22:27 -0800)]
Merge pull request #2640 from janvorli/fix-stack-overflow

Fix Unix stack overflow detection

8 years agoMerge pull request #2616 from sergiy-k/stackprotector
Sergiy Kuryata [Thu, 14 Jan 2016 05:33:24 +0000 (21:33 -0800)]
Merge pull request #2616 from sergiy-k/stackprotector

Enable the stack-protector compiler option for all coreclr code on Unix.

8 years agoMerge pull request #2646 from stephentoub/list_exceptionnames
Stephen Toub [Thu, 14 Jan 2016 05:09:00 +0000 (00:09 -0500)]
Merge pull request #2646 from stephentoub/list_exceptionnames

Fix incorrect ArgumentException names in List<T>

8 years agoMerge pull request #2642 from stephentoub/aggexc_message
Stephen Toub [Thu, 14 Jan 2016 02:32:01 +0000 (21:32 -0500)]
Merge pull request #2642 from stephentoub/aggexc_message

Override AggregateException.Message to include more detail

8 years agoMerge pull request #2647 from dotnet-bot/from-tfs
Jan Kotas [Thu, 14 Jan 2016 02:27:23 +0000 (18:27 -0800)]
Merge pull request #2647 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoUse "-fstack-protector" instead of "-fstack-protector-strong" on OS X in order to...
Sergiy Kuryata [Thu, 14 Jan 2016 01:27:24 +0000 (17:27 -0800)]
Use "-fstack-protector" instead of "-fstack-protector-strong" on OS X in order to work around a bug in clang (current version 7.0.2).

8 years agoFix Unix stack overflow detection
Jan Vorlicek [Wed, 13 Jan 2016 16:56:29 +0000 (17:56 +0100)]
Fix Unix stack overflow detection

On Linux (and FreeBSD), we were not distinguishing a stack overflow detected
using a probe and general access violation. So instead of aborting the process,
we were sending it a managed access violation exception.
This change checks for the case when the access violation happens in the page
below the stack limit and aborts right in the sigsegv_handler if it does.
On OSX, we were detecting it, but there was a problem in it - it could only
detect it if the probed address was closer than 512kB to the current SP.
So e.g. an application failing due to allocating 1MB structure on stack didn't
pass this test.
The fix here was to remove the distance limit.

8 years agoMerge pull request #2264 from adityamandaleeka/dbg_exec_alloc
Aditya Mandaleeka [Thu, 14 Jan 2016 00:05:45 +0000 (16:05 -0800)]
Merge pull request #2264 from adityamandaleeka/dbg_exec_alloc

[WIP] Fix usage of executable heap memory

8 years agoMerge pull request #2637 from bbowyersmyth/StringExceptionParamName
Jan Kotas [Wed, 13 Jan 2016 23:56:23 +0000 (15:56 -0800)]
Merge pull request #2637 from bbowyersmyth/StringExceptionParamName

Provide paramName for ArgumentNull and ArgumentOutOfRange for String

8 years agocoreclr BuildTools for github builds - instead of building the tools (which do not...
Rahul Kumar [Wed, 13 Jan 2016 23:34:21 +0000 (15:34 -0800)]
coreclr BuildTools for github builds - instead of building the tools (which do not change) create a nuget package
This contains changes for following:
     1. Binplace & sign following binaries
       a. pdbtypematch.exe (only build in x86 ret .... build errors for other flavors)
       b. dactableGen.exe
       c. dialib.dll
       d. GenClrDebugResource.exe
       e. InjectResource.exe
     2. add sources of PdbTypeMatch tools in github
     3. bump up the version of coreclr buildtools package to 1.0.4
     4. add above tools to coreclr buildtools package
     5. remove bclrewriter from coreclr buildtools package
     6. build dotnet.builtools.coreclr package only for x86 ret builds as pdbtypematch.exe only builds for ret flavor.

[tfs-changeset: 1564332]

8 years agoFix incorrect ArgumentException names in List<T>
stephentoub [Wed, 13 Jan 2016 23:29:39 +0000 (18:29 -0500)]
Fix incorrect ArgumentException names in List<T>

8 years agoMerge pull request #2641 from eerhardt/FixIdn
Stephen Toub [Wed, 13 Jan 2016 23:15:58 +0000 (18:15 -0500)]
Merge pull request #2641 from eerhardt/FixIdn

IdnMapping GetUnicode conformance tests fail

8 years agoOverride AggregateException.Message to include more detail
stephentoub [Wed, 13 Jan 2016 18:37:47 +0000 (13:37 -0500)]
Override AggregateException.Message to include more detail

ToString() includes details on inner exceptions, but Message does not, with the default message just saying "One or more errors occurred."  This commit overrides Message to append the messages of the inner exceptions as well.

8 years agoMerge pull request #2622 from AndyAyersMS/MiscBenchmarks
Andy Ayers [Wed, 13 Jan 2016 21:39:49 +0000 (13:39 -0800)]
Merge pull request #2622 from AndyAyersMS/MiscBenchmarks

Add miscellaneous benchmarks

8 years agoProvide paramName for ArgumentNull and ArgumentOutOfRange
Bruce Bowyer-Smyth [Wed, 13 Jan 2016 20:57:50 +0000 (06:57 +1000)]
Provide paramName for ArgumentNull and ArgumentOutOfRange

8 years agoMerge pull request #2631 from adityamandaleeka/floatingPointCxtFix
Aditya Mandaleeka [Wed, 13 Jan 2016 20:02:02 +0000 (12:02 -0800)]
Merge pull request #2631 from adityamandaleeka/floatingPointCxtFix

Fix usage of floating point state from native contexts.

8 years agoMerge pull request #2599 from mikedn/baddef
Jan Kotas [Wed, 13 Jan 2016 17:43:52 +0000 (09:43 -0800)]
Merge pull request #2599 from mikedn/baddef

Fix bad JIT #ifdefs

8 years agoMerge pull request #2636 from bbowyersmyth/FixedString
Jan Kotas [Wed, 13 Jan 2016 17:36:00 +0000 (09:36 -0800)]
Merge pull request #2636 from bbowyersmyth/FixedString

Port https://github.com/dotnet/corert/pull/629 to CoreCLR

8 years agoMerge pull request #2635 from dotnet-bot/from-tfs
Jan Kotas [Wed, 13 Jan 2016 17:29:47 +0000 (09:29 -0800)]
Merge pull request #2635 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #2639 from dotnet/revert-2624-founddiff
Jan Kotas [Wed, 13 Jan 2016 17:29:36 +0000 (09:29 -0800)]
Merge pull request #2639 from dotnet/revert-2624-founddiff

Revert "Fix to github issue #2349."

8 years agoIdnMapping GetUnicode conformance tests fail
Eric Erhardt [Wed, 13 Jan 2016 17:05:11 +0000 (11:05 -0600)]
IdnMapping GetUnicode conformance tests fail

The IdnaConformanceTests fail on Unix because \u00DF, \u200C and \u200D characters are not being handled as specified in the http://www.unicode.org/Public/idna/6.0.0/IdnaTest.txt file.

The fix is to use UIDNA_NONTRANSITIONAL_TO_UNICODE and UIDNA_CHECK_CONTEXTJ options when calling uidna_openUTS46.

Partial fix for https://github.com/dotnet/corefx/issues/3406.

8 years agoRevert "Fix to github issue #2349."
Jan Kotas [Wed, 13 Jan 2016 15:26:52 +0000 (07:26 -0800)]
Revert "Fix to github issue #2349."

8 years agoUse m_firstChar instead of string object in fixed statement
Bruce Bowyer-Smyth [Wed, 13 Jan 2016 06:12:09 +0000 (16:12 +1000)]
Use m_firstChar instead of string object in fixed statement

8 years agoMerge pull request #2625 from swgillespie/volatile_gc_perf_tests
Sean Gillespie [Wed, 13 Jan 2016 05:46:06 +0000 (21:46 -0800)]
Merge pull request #2625 from swgillespie/volatile_gc_perf_tests

Remove volatile GC perf tests from the main perf run

8 years agoMerge pull request #2624 from sivarv/founddiff
Sivarv [Wed, 13 Jan 2016 05:15:47 +0000 (21:15 -0800)]
Merge pull request #2624 from sivarv/founddiff

Fix to github issue #2349.

8 years agoFix arm specific build break pertaining to AssemblyLoadContext changes.
Gaurav Khanna [Wed, 13 Jan 2016 05:10:11 +0000 (21:10 -0800)]
Fix arm specific build break pertaining to AssemblyLoadContext changes.

[tfs-changeset: 1564035]

8 years agoMerge pull request #2612 from hoyMS/Bug2610
Hongtao Yu [Wed, 13 Jan 2016 04:39:38 +0000 (20:39 -0800)]
Merge pull request #2612 from hoyMS/Bug2610

Fix for bug 2610 Incorrect copy prop substitution.

8 years agoMerge pull request #2623 from BruceForstall/BuildShChanges
Bruce Forstall [Wed, 13 Jan 2016 04:37:04 +0000 (20:37 -0800)]
Merge pull request #2623 from BruceForstall/BuildShChanges

Clean up build.sh

8 years agoMerge pull request #2629 from adityamandaleeka/mscorrcFpic
Aditya Mandaleeka [Wed, 13 Jan 2016 04:30:27 +0000 (20:30 -0800)]
Merge pull request #2629 from adityamandaleeka/mscorrcFpic

Add fPIC option when compiling mscorrc.

8 years agoMerge pull request #2602 from LLITCHEV/Issue2295
Lubomir Litchev [Wed, 13 Jan 2016 04:23:37 +0000 (20:23 -0800)]
Merge pull request #2602 from LLITCHEV/Issue2295

Fix issue 2295.

8 years agoMerge pull request #2627 from RussKeldorph/dowhilebndchk
Senthil [Wed, 13 Jan 2016 02:35:34 +0000 (18:35 -0800)]
Merge pull request #2627 from RussKeldorph/dowhilebndchk

Do loop cloning only if zero trip test can be ensured

8 years agoMerge pull request #2626 from briansull/cleanup-liveness
Brian Sullivan [Wed, 13 Jan 2016 02:26:54 +0000 (18:26 -0800)]
Merge pull request #2626 from briansull/cleanup-liveness

Cleanup code in fgPerStatementLiveness and fgPerBlockLocalVarLiveness

8 years agoMerge pull request #2581 from AndyAyersMS/BenchmarkGame
Andy Ayers [Wed, 13 Jan 2016 01:14:54 +0000 (17:14 -0800)]
Merge pull request #2581 from AndyAyersMS/BenchmarkGame

Add a subset of benchmark game benchmarks

8 years agoMerge pull request #2571 from AndyAyersMS/PerfTestsZ
Andy Ayers [Wed, 13 Jan 2016 01:13:25 +0000 (17:13 -0800)]
Merge pull request #2571 from AndyAyersMS/PerfTestsZ

Add more integer benchmarks

8 years agoFix for bug 2610 Incorrect copy prop substitution.
Hongtao Yu [Mon, 11 Jan 2016 23:24:49 +0000 (15:24 -0800)]
Fix for bug 2610 Incorrect copy prop substitution.

The bug is due to missing lvAddrExposed flag for tmp vars serving as pass-by-ref arguments.

8 years agoFix usage of floating point state from native contexts.
Aditya Mandaleeka [Wed, 13 Jan 2016 00:50:45 +0000 (16:50 -0800)]
Fix usage of floating point state from native contexts.

8 years agoMerge pull request #2617 from stephentoub/datetime_allocation
Jan Kotas [Wed, 13 Jan 2016 00:45:56 +0000 (16:45 -0800)]
Merge pull request #2617 from stephentoub/datetime_allocation

Remove StringBuilder allocation/usage from DateTimeFormat

8 years agoReduce Burgers iteration to avoid debug timeout
Andy Ayers [Tue, 12 Jan 2016 23:49:40 +0000 (15:49 -0800)]
Reduce Burgers iteration to avoid debug timeout

8 years agoFix issue 2295.
Lubomir Litchev [Sun, 10 Jan 2016 23:11:09 +0000 (15:11 -0800)]
Fix issue 2295.

Closes #2295. When creating shadow variables, copy the lvDontPromote flag
from the shadowed variable.

8 years agoAdd fPIC option when compiling mscorrc.
Aditya Mandaleeka [Tue, 12 Jan 2016 23:35:40 +0000 (15:35 -0800)]
Add fPIC option when compiling mscorrc.

8 years agoCleanup code in fgPerStatementLiveness and fgPerBlockLocalVarLiveness
Brian Sullivan [Tue, 12 Jan 2016 23:30:53 +0000 (15:30 -0800)]
Cleanup code in fgPerStatementLiveness and fgPerBlockLocalVarLiveness

Removed the <BUGNUM> comment about GT_QMARK that preceded the fgPerStatementLiveness method.
Added method header comment for fgPerStatementLiveness.
Changed return type of fgPerStatementLiveness to void.
Renamed the lhsNode argument to asgnLclVar.
Remove all the code that handles GT_QMARK/GT_COLON nodes,
 as those node are no longer used by the RyuJit codebase.
In fgPerStatementLiveness renamed lhsNode to asgnLclVar.

8 years agoDo loop cloning only if zero trip test can be ensured.
Russ Keldorph [Tue, 12 Jan 2016 00:51:49 +0000 (16:51 -0800)]
Do loop cloning only if zero trip test can be ensured.

The problem is our loop detection logic detects the loop structure, but it
doesnt know the code outside the loop structure, esp., nothing about the
edge from the "head" into the loop "entry" block.

In the bug case, there is no zero-trip test in the "head", so the entrance
into the loop is not guarded. Note that the other point of entrance into
the "entry" block is from the "top" block which will be guarded by the
loop "bottom" test.

One way to make sure is when we invert a while loop into a do-while with
an explicit compiler cloned zero trip test, in fgOptWhileLoop, i.e., we
mark it as good to optimize with a flag. The fix marks the loop as ZTT.

The caveat is the JIT doesnt always do loop inversion.

This change is more conservative than it needs to be in the interest of
managing risk.

8 years agoRemove volatile GC perf tests from the main run to provide more stable results. Also...
Sean Gillespie [Tue, 12 Jan 2016 23:05:21 +0000 (15:05 -0800)]
Remove volatile GC perf tests from the main run to provide more stable results. Also cause the GC perf framework to probe the current directory if the probe path is not set.

8 years agoMerge pull request #2619 from AndyAyersMS/MoreLocking
Andy Ayers [Tue, 12 Jan 2016 22:56:06 +0000 (14:56 -0800)]
Merge pull request #2619 from AndyAyersMS/MoreLocking

Set locked to true in project.lock.json

8 years agoMerge pull request #2492 from wtgodbe/memcpy2
William Godbe [Tue, 12 Jan 2016 21:56:40 +0000 (13:56 -0800)]
Merge pull request #2492 from wtgodbe/memcpy2

Audit usage of memcpy in PAL for Debug

8 years agoFix to github issue #2349.
sivarv [Tue, 12 Jan 2016 21:37:07 +0000 (13:37 -0800)]
Fix to github issue #2349.

For the repro case the method being compiled is a generic method
whose generic context is derived from thisptr.  For this reason JIT
is asked to keep thisptr alive.

Due to tail call loop optimization, the recursive method call at the end
is converted into a loop.  This transformation assigns all the arguments
to temps and temps back to incoming parameters of the method and finally
branches to the first basic block.  This will leads to the following basic
block

tmp = GT_NODE(thisptr)
thisptr = tmp

Here we have both use and def of thisptr.  Lsra.cpp::SetLastUses() has
a bug in not properly accounting for thiptr, that leads to an assert failure.

Also, computeUpdateLifeVar()also needs be fixed to not consider
thisptr being born due to assignment of temp to thisptr.

8 years agoClean up build.sh
Bruce Forstall [Tue, 12 Jan 2016 21:11:20 +0000 (13:11 -0800)]
Clean up build.sh

Fix some typos. Make it more readable.

8 years agoAdd miscellaneous benchmarks
Andy Ayers [Tue, 12 Jan 2016 01:40:56 +0000 (17:40 -0800)]
Add miscellaneous benchmarks

Burgers and the three V8 benchmarks: Richards, Crypto, Deltablue.

8 years agoMerge pull request #2620 from janvorli/fix-few-gc-details
Jan Kotas [Tue, 12 Jan 2016 19:47:17 +0000 (11:47 -0800)]
Merge pull request #2620 from janvorli/fix-few-gc-details

Fix few details in the GC

8 years agoMerge pull request #2607 from pgavlin/Reenableb99969
Pat Gavlin [Tue, 12 Jan 2016 18:15:07 +0000 (10:15 -0800)]
Merge pull request #2607 from pgavlin/Reenableb99969

Re-enable b99969.

8 years agoFix few details in the GC
Jan Vorlicek [Tue, 12 Jan 2016 17:59:14 +0000 (18:59 +0100)]
Fix few details in the GC

- For Unix, the definition of __forceinline was missing the inline
- Allocation of GCThreadStubParams was missing a check for failure
- Removed few unnecessary #ifdefs for FEATURE_PAL from the GC sample
- Removed several obsolete functions from the GC sample

8 years agoMerge pull request #2618 from gkhanna79/TPALoadChanges
Gaurav Khanna [Tue, 12 Jan 2016 17:36:27 +0000 (09:36 -0800)]
Merge pull request #2618 from gkhanna79/TPALoadChanges

LoadByte/Path/NI support for Default Context

8 years agoSet locked to true in project.lock.json
Andy Ayers [Tue, 12 Jan 2016 17:02:42 +0000 (09:02 -0800)]
Set locked to true in project.lock.json

Otherwise it's not really locked.

8 years agoMerge pull request #2611 from JohnChen0/master
Jan Kotas [Tue, 12 Jan 2016 16:41:57 +0000 (08:41 -0800)]
Merge pull request #2611 from JohnChen0/master

Make CORCOMPILE_HEADER backward compatible

8 years agoMerge pull request #2586 from eerhardt/IgnoreSymbols2
Eric Erhardt [Tue, 12 Jan 2016 15:42:29 +0000 (09:42 -0600)]
Merge pull request #2586 from eerhardt/IgnoreSymbols2

CompareOptions.IgnoreSymbols only ignores punctuation on Unix, but not other symbols

8 years agoAdd support Load assemblies from explicit path/streams into default load context
Gaurav Khanna (CLR) [Tue, 12 Jan 2016 01:26:13 +0000 (17:26 -0800)]
Add support Load assemblies from explicit path/streams into default load context

8 years agoMerge pull request #2549 from AndyAyersMS/PerfTestX
Andy Ayers [Tue, 12 Jan 2016 07:45:11 +0000 (23:45 -0800)]
Merge pull request #2549 from AndyAyersMS/PerfTestX

More integer benchmarks for the jit: NDhrystone

8 years agoMerge pull request #2558 from AndyAyersMS/SciMark
Andy Ayers [Tue, 12 Jan 2016 07:44:41 +0000 (23:44 -0800)]
Merge pull request #2558 from AndyAyersMS/SciMark

Add SciMark benchmark

8 years agoMerge pull request #2540 from AndyAyersMS/RoslynBenchmark
Andy Ayers [Tue, 12 Jan 2016 07:43:47 +0000 (23:43 -0800)]
Merge pull request #2540 from AndyAyersMS/RoslynBenchmark

Add a simple Roslyn benchmarks

8 years agoMerge pull request #2613 from stephentoub/ifdef_stringbuilder
Jan Kotas [Tue, 12 Jan 2016 03:34:01 +0000 (19:34 -0800)]
Merge pull request #2613 from stephentoub/ifdef_stringbuilder

Add ifdef to suppress non-coreclr warning

8 years agoRemove StringBuilder allocation/usage from DateTimeFormat
stephentoub [Tue, 12 Jan 2016 01:54:22 +0000 (20:54 -0500)]
Remove StringBuilder allocation/usage from DateTimeFormat

ASP.NET uses DateTimeOffset.ToString("r") to format in accordance with RFC1123.  The implementation of "r", for which the format includes quotes, ends up allocating a StringBuilder and parsing into it, just to get the quoted contents.  With a minor transformation, this is unnecessary, allowing the StringBuilder and associated allocations and work to be removed.

8 years agoEnable the stack-protector compiler option for the entire coreclr
Sergiy Kuryata [Tue, 12 Jan 2016 01:37:45 +0000 (17:37 -0800)]
Enable the stack-protector compiler option for the entire coreclr
codebase.

8 years agoMerge pull request #2572 from ramarag/event_source_payload
Rama krishnan Raghupathy [Tue, 12 Jan 2016 01:37:25 +0000 (17:37 -0800)]
Merge pull request #2572 from ramarag/event_source_payload

Fixing use case of incomplete Event Source payload

8 years agoRe-enable b99969.
Pat Gavlin [Mon, 11 Jan 2016 18:15:48 +0000 (10:15 -0800)]
Re-enable b99969.

Now that #2286 has been fixed, b99969 can be re-enabled.

8 years agoAdd ifdef to suppress non-coreclr warning
stephentoub [Mon, 11 Jan 2016 23:25:17 +0000 (18:25 -0500)]
Add ifdef to suppress non-coreclr warning

My change to optimize AppDomain.Setup included moving a variable out of a loop, which also ended up moving it out of an ifdef.  That then causes an unused variable warning on some builds.

8 years agoMerge pull request #2592 from hoyMS/Bug2311
Hongtao Yu [Mon, 11 Jan 2016 23:16:59 +0000 (15:16 -0800)]
Merge pull request #2592 from hoyMS/Bug2311

Fix for issue 2311.

8 years agoMerge pull request #2609 from hoyMS/Bug2294
Hongtao Yu [Mon, 11 Jan 2016 23:15:02 +0000 (15:15 -0800)]
Merge pull request #2609 from hoyMS/Bug2294

Fix for bug 2294 [JitStress=2] Assertion failed 'curArgTabEntry->regN…

8 years agoMake CORCOMPILE_HEADER backward compatible
John Chen (CLR) [Mon, 11 Jan 2016 22:23:52 +0000 (14:23 -0800)]
Make CORCOMPILE_HEADER backward compatible

Resolve issue #2348 by reordering fields in CORCOMPILE_HEADER,
so that PEKind and Machines fields are in the same location as
in older versions of this struct.

8 years agoMerge pull request #2587 from BruceForstall/BuildAllCmd
Bruce Forstall [Mon, 11 Jan 2016 21:48:05 +0000 (13:48 -0800)]
Merge pull request #2587 from BruceForstall/BuildAllCmd

Add "all" command to build.cmd

8 years agoMerge pull request #2568 from sejongoh/bugfix_unsigned_16bit_cmp_codegen
Sejong Oh [Mon, 11 Jan 2016 20:58:40 +0000 (12:58 -0800)]
Merge pull request #2568 from sejongoh/bugfix_unsigned_16bit_cmp_codegen

Fix bad codegen for comparing 16-bit unsigned values

8 years agoMerge pull request #2601 from stephentoub/appdomain_setup_cleanup
Matt Ellis [Mon, 11 Jan 2016 19:56:25 +0000 (11:56 -0800)]
Merge pull request #2601 from stephentoub/appdomain_setup_cleanup

Perf tweaks/cleanup to AppDomain.Setup

8 years agoFix for bug 2294 [JitStress=2] Assertion failed 'curArgTabEntry->regNum == regNum...
Hongtao Yu [Mon, 11 Jan 2016 19:03:32 +0000 (11:03 -0800)]
Fix for bug 2294 [JitStress=2] Assertion failed 'curArgTabEntry->regNum == regNum' in 'BringUpTest Main() in morph.cpp

The bug is due to a misproper definition of LAST_FP_ARGREG for Unix. On Windows, we set LAST_FP_ARGREG to XMM3. On UNix, the value should be XMM7.

8 years agoMerge pull request #2400 from pgavlin/FixDebugTypes
Pat Gavlin [Mon, 11 Jan 2016 18:14:15 +0000 (10:14 -0800)]
Merge pull request #2400 from pgavlin/FixDebugTypes

Fix DebugType and Optimize values for JIT tests.

8 years agoCompareOptions.IgnoreSymbols only ignores punctuation on Unix, but not other symbols
Eric Erhardt [Fri, 8 Jan 2016 18:02:56 +0000 (12:02 -0600)]
CompareOptions.IgnoreSymbols only ignores punctuation on Unix, but not other symbols

By default, ICU alternate shifted collation handling only ignores punctuation, not all symbols, so change the "variable top" to include all symbols and currency characters.

Fix #4907

8 years agoAvoid int[] and string[] allocations from String.Split in AppDomain.Setup
stephentoub [Mon, 11 Jan 2016 02:09:58 +0000 (21:09 -0500)]
Avoid int[] and string[] allocations from String.Split in AppDomain.Setup

String.Split not only allocates the string[] to hold the results, it also allocates an int[inputString.Length] to hold the indices of the separators.  With not much more code, we can do the splitting manually and avoid both arrays.

8 years agoMerge pull request #2603 from adityamandaleeka/fixSosDumpLog
Aditya Mandaleeka [Mon, 11 Jan 2016 01:51:24 +0000 (17:51 -0800)]
Merge pull request #2603 from adityamandaleeka/fixSosDumpLog

Fix SOS DumpLog

8 years agoFix SOS DumpLog
Aditya Mandaleeka [Mon, 11 Jan 2016 00:22:23 +0000 (16:22 -0800)]
Fix SOS DumpLog

8 years agoAdd some optimizations to AppDomain.Setup string handling
stephentoub [Sun, 10 Jan 2016 20:39:37 +0000 (15:39 -0500)]
Add some optimizations to AppDomain.Setup string handling

- Paths are normalized from a delimited string into a delimited StringBuilder.  It's very likely that the resulting data in the StringBuilder will be the same length or approximately the same length as that in the input string,  So pre-size the StringBuilder to be the same as the input length.
- Reuse StringBuilder instance for handling each property that needs it.
- Reuse the char[] array created for the path sepator

8 years agoMerge pull request #2544 from dotnet-bot/from-tfs
Jan Kotas [Sun, 10 Jan 2016 20:15:58 +0000 (12:15 -0800)]
Merge pull request #2544 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #2598 from mikedn/archdir
Jan Kotas [Sun, 10 Jan 2016 20:11:14 +0000 (12:11 -0800)]
Merge pull request #2598 from mikedn/archdir

Use ARCH_SOURCES_DIR consistently

8 years agoRemove duplicate else blocks
stephentoub [Sun, 10 Jan 2016 18:25:21 +0000 (13:25 -0500)]
Remove duplicate else blocks

The same code is repeated for four different property names... condense them all into a single else if.

8 years agoFix bad JIT #ifdefs
Mike Danes [Sun, 10 Jan 2016 15:59:04 +0000 (17:59 +0200)]
Fix bad JIT #ifdefs

In a couple of places _TARGET_AMD64 is used instead of _TARGET_AMD64_

8 years agoUse ARCH_SOURCES_DIR consistently
Mike Danes [Sun, 10 Jan 2016 14:04:05 +0000 (16:04 +0200)]
Use ARCH_SOURCES_DIR consistently

Some places already use ARCH_SOURCES_DIR for things like include_directories but others test the platform/arch variables to figure out the dir. Use ARCH_SOURCES_DIR everywhere for consistency.

8 years agoMerge pull request #2593 from RussKeldorph/remove_stk_bndchk
Jan Kotas [Sun, 10 Jan 2016 08:15:25 +0000 (00:15 -0800)]
Merge pull request #2593 from RussKeldorph/remove_stk_bndchk

Remove bad test: stk_bndchk.il

8 years agoMerge pull request #2595 from stephentoub/startup_allocs
Jan Kotas [Sun, 10 Jan 2016 08:07:17 +0000 (00:07 -0800)]
Merge pull request #2595 from stephentoub/startup_allocs

Eliminate a bunch of AppDomain.Setup string path allocations

8 years agoEliminate a bunch of AppDomain.Setup string path allocations
stephentoub [Sun, 10 Jan 2016 03:05:50 +0000 (22:05 -0500)]
Eliminate a bunch of AppDomain.Setup string path allocations

A simple "Hello, World" CoreCLR app involves several hundred K of allocations.  A large percentage of this is in AppDomain.Setup.  At least for my configuration, 30% of all allocations are strings coming from AppDomain.Setup calling Path.NormalizePath (using CoreRun to run a "Hello, World" app in a folder containing the runtime and a bunch of framework libraries).  NormalizePath already checks to see whether the generated string is the same one that was supplied, but it does so after generating the string rather than before; changing to do it before-hand eliminates those allocations (given the right circumstances).

8 years agoMerge pull request #2582 from jkotas/fix-gcsample-x86
Jan Kotas [Sat, 9 Jan 2016 04:31:09 +0000 (20:31 -0800)]
Merge pull request #2582 from jkotas/fix-gcsample-x86

Fix building of GCSample on x86 via the standalone VS project

8 years agoFix for issue 2311.
Hongtao Yu [Sat, 9 Jan 2016 01:07:14 +0000 (17:07 -0800)]
Fix for issue 2311.

Remove the use of unsupported System.Threading.Thread.Abort in a test. Use
semaphore instead.i

The test is testing current GC which is composed of two threads. One thread serves as the garbage collector and run terminates by
itself. The other thread is the main thread and it explicitly aborts the GC thread when all work is done.

F

8 years agoAdd "all" command to build.cmd
Bruce Forstall [Sat, 9 Jan 2016 00:08:17 +0000 (16:08 -0800)]
Add "all" command to build.cmd

With "all", all build architectures and type are built. If a set of architectures or types
is also given, then the set of builds is restricted to those architecturs or flavors.

For example:
    build all
       -- builds all architectures, and all build types per architecture
    build all x86
       -- builds all build types for x86
    build all x64 x86 Checked Release
       -- builds x64 and x86 architectures, Checked and Release build types for each

8 years agoMerge pull request #2588 from BruceForstall/Fixx86TestBuild
Bruce Forstall [Sat, 9 Jan 2016 01:42:27 +0000 (17:42 -0800)]
Merge pull request #2588 from BruceForstall/Fixx86TestBuild

Allow all architectures for buildtest.cmd

8 years agoFixing use case of incomplete Event Source payload
Rama krishnan Raghupathy [Fri, 8 Jan 2016 06:44:25 +0000 (22:44 -0800)]
Fixing use case of incomplete Event Source payload

8 years agostk_bndchk.il is failing consistently for some individuals and
Russ Keldorph [Sat, 9 Jan 2016 00:52:51 +0000 (16:52 -0800)]
stk_bndchk.il is failing consistently for some individuals and
occasionally in the cloud. It assumes that it can create at most 1000
threads and be guaranteed that at least one of the threads' stacks will be
at an address below the heap. Presumably it did that because such
addresses were required to provoke a bug repro at one point in time.
Assuming the original bug is long fixed, there doesn't appear to be much
value to this test case, and it should simply be removed rather than made
deterministic.

Fixes #2585

8 years agoAllow all architectures for buildtest.cmd
Bruce Forstall [Sat, 9 Jan 2016 00:42:39 +0000 (16:42 -0800)]
Allow all architectures for buildtest.cmd

8 years agoMerge pull request #2574 from jkotas/tail-calls
Jan Kotas [Sat, 9 Jan 2016 00:04:21 +0000 (16:04 -0800)]
Merge pull request #2574 from jkotas/tail-calls

Enable tailcallopt for CoreRT

8 years agoMerge pull request #2569 from briansull/fix-2286
Brian Sullivan [Fri, 8 Jan 2016 22:14:25 +0000 (14:14 -0800)]
Merge pull request #2569 from briansull/fix-2286

Fix Issure 2286 - RyuJIT needs to honor volatile reads/writes and avoid making CSE's

8 years agoFix building of GCSample on x86 via the standalone VS project
Jan Kotas [Fri, 8 Jan 2016 22:04:23 +0000 (14:04 -0800)]
Fix building of GCSample on x86 via the standalone VS project

8 years agoAdd a subset of benchmark game benchmarks
Andy Ayers [Fri, 8 Jan 2016 07:13:23 +0000 (23:13 -0800)]
Add a subset of benchmark game benchmarks

Add tests that are not multithreaded and don't rely on large input files. These are adapted for xunit-performance.

Add license and readme.

8 years agoEnable tailcallopt for CoreRT
Jan Kotas [Fri, 8 Jan 2016 16:54:57 +0000 (08:54 -0800)]
Enable tailcallopt for CoreRT

tailcallopt was disabled for ReadyToRun compilation mode because of zapper limitation. Moved the block to the zapper so that CoreRT can take advantage of it.

8 years agoMerge pull request #2570 from BruceForstall/BuildCmdCleanup
Bruce Forstall [Fri, 8 Jan 2016 20:52:24 +0000 (12:52 -0800)]
Merge pull request #2570 from BruceForstall/BuildCmdCleanup

Improve buildtest.cmd, runtest.cmd

8 years agoFix Issure 2286 - RyuJIT needs to honor volitile reads/writes and avoid making CSE...
Brian Sullivan [Fri, 8 Jan 2016 00:14:01 +0000 (16:14 -0800)]
Fix Issure 2286 - RyuJIT needs to honor volitile reads/writes and avoid making CSE's across them

In Liveness.cpp we will now treat a volatile accesses as definitions of the global heap
Assertions are also added in ValueNumber.cpp such that a block that defines or mutates the global heap
must have been marked as cotailing a definition of the global heap using the bbHeapDef flag.