Lubomir Litchev [Thu, 12 May 2016 02:10:31 +0000 (19:10 -0700)]
Merge pull request dotnet/coreclr#4917 from LLITCHEV/Issue2329
Increase timeout for GCStress jobs. Set the gcstress15_pri1r2r to be a
Commit migrated from https://github.com/dotnet/coreclr/commit/
2528da7f84dd132b36890c4c8325846a0c7a2702
Bruce Forstall [Wed, 11 May 2016 22:23:37 +0000 (15:23 -0700)]
Merge pull request dotnet/coreclr#4916 from BruceForstall/TweakLongs
Small tweaks to RyuJIT/x86 LONG handling
Commit migrated from https://github.com/dotnet/coreclr/commit/
c18fe80d0d43cccb1aa7214e9bc446711520d0c7
Lubomir Litchev [Wed, 11 May 2016 18:46:31 +0000 (11:46 -0700)]
Increase timeout for GCStress jobs. Set the gcstress15_pri1r2r to be a
GCStress job.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2052eae800bd6a0f347586409fdda39d7584fb6f
Rama krishnan Raghupathy [Wed, 11 May 2016 21:15:11 +0000 (14:15 -0700)]
Merge pull request dotnet/coreclr#4809 from ramarag/ZapUnwindInfo
[Arm64]: Implement GetUnwindDataBlob
Commit migrated from https://github.com/dotnet/coreclr/commit/
48fa30ee5aa0b95a939934da40822f46b16ee807
Bruce Forstall [Wed, 11 May 2016 18:39:04 +0000 (11:39 -0700)]
Merge pull request dotnet/coreclr#1241 from mikedn/modopt
Extend the DIV/MOD dividend into RDX:RAX only if needed
Commit migrated from https://github.com/dotnet/coreclr/commit/
007551451453e83d1436ef8701bf8cd815a0ed57
Geoff Kizer [Wed, 11 May 2016 18:29:50 +0000 (11:29 -0700)]
Merge pull request dotnet/coreclr#4762 from geoffkizer/ecsopt
Optimize async invocation
Commit migrated from https://github.com/dotnet/coreclr/commit/
148b5621f026400c83e066ad3dfa0d55f82ffa23
Carol Eidt [Wed, 11 May 2016 18:21:07 +0000 (11:21 -0700)]
Merge pull request dotnet/coreclr#4848 from mikedn/lsra-counts
Remove unnecessary LSRA members
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce6b084ef17cb96941115b48dc5f3c60cf114987
Bruce Forstall [Wed, 11 May 2016 17:35:47 +0000 (10:35 -0700)]
Small tweaks to RyuJIT/x86 LONG handling
1. Display GT_LONG trees in JitDump as gt_long, not just "long". This
helps distinguish them from the pervasive "long" type, making them easier
to see and search for.
2. Change the "hi" operator GT_* node definition to not include GTK_EXOP.
3. Dump the lva table after lvaPromoteLongVars().
Commit migrated from https://github.com/dotnet/coreclr/commit/
e1715220e9d00b0e3db3d9f3422d2a982b958a65
Wes Haggard [Wed, 11 May 2016 17:22:29 +0000 (10:22 -0700)]
Merge pull request dotnet/coreclr#4890 from AlexGhiondea/BuildRefAssemblyPerTargetOS
Fix the reference assembly for mscorlib to match the surface area of the OS
Commit migrated from https://github.com/dotnet/coreclr/commit/
b59a6045bca5e4c11b4078fede0fd567a2c8d873
Bruce Forstall [Wed, 11 May 2016 17:13:06 +0000 (10:13 -0700)]
Merge pull request dotnet/coreclr#4903 from BruceForstall/MoveToLegacy
Move some LEGACY_BACKEND code to codegenlegacy.cpp
Commit migrated from https://github.com/dotnet/coreclr/commit/
12aadb8ff959b2e923e456916be3b5b2282a9374
Bruce Forstall [Wed, 11 May 2016 17:12:39 +0000 (10:12 -0700)]
Merge pull request dotnet/coreclr#4900 from BruceForstall/PartialFix4817c
Fix kill set of rep stos to include ECX
Commit migrated from https://github.com/dotnet/coreclr/commit/
483efe7d186828d51444756328398995e5527149
tijoytom [Wed, 11 May 2016 16:57:46 +0000 (09:57 -0700)]
Merge pull request dotnet/coreclr#4895 from tijoytom/master
Cleaning up a bunch of warnings.
Commit migrated from https://github.com/dotnet/coreclr/commit/
57c091cbd043b2597f1824b468f11e0ca6df8325
Jan Kotas [Wed, 11 May 2016 11:17:04 +0000 (04:17 -0700)]
Merge pull request dotnet/coreclr#4898 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
3eb2a48ed579e6324399548131d0351d99839a88
Geunsik Lim [Wed, 11 May 2016 08:44:36 +0000 (17:44 +0900)]
Linux/ARM: Use -O1 level to avoid segfault in release-build for Linux/ARM (dotnet/coreclr#4904)
We cannot still run 'hello world' console application even though
the cross compilation of CoreCLR is successfully completed.
In release-build, the segmentation fault of 'hello world'
is made by the misalignment of thread local storage (TLS) section
because of the aggressive optimization level of clang compiler for
code optimization(e.g., file size and execution speed).
It means that Clang/LLVM has a bug in case of the usage of O2/O3 flag.
Below is the major difference among the optimization levels of Clang.
* -O2 is based on -O1:
.adding: -gvn -constmerge -globaldce -slp-vectorizer -mldst-motion -inline
.removing: -always-inline
* -O3 is based on -O2:
.adding: -argpromotion
ver2:
- Corerun is loading 'libcoreclr.so' using dlopen() library call. So, we can not
use initial-exec TLS model (ver1) because of the thread-safe issue of
the multi-threaded. (Reported by @janvorli)
- In the release-build, Let's replace -O3 with -O1 to avoid the segmentation
fault due to the aggressive optimization level of the Clang until fixing
the bug of the Clang/LLVM.
ver1:
- The default value of clang is "global-dynamic". However, the thread-local
storage (TLS) model of Clang/LLVM does not guarantee the normal execution
of TLS's symbol relocation due to the misaligned __tls_get_addr symbol in
case of the aggressive optimizations of Clang on Linux/ARM.
- Let's enable initial-exec TLS model instead of the dynamic TLS model.
Signed-off-by: Geunsik Lim <geunsik.lim@samsung.com>
CC: Jan Kotas <jkotas@microsoft.com>
CC: Jan Vorlicek <janvorli@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
ee28eca285fc71acad093eb5e34101d2ab9e2018
geoffkizer [Thu, 11 Feb 2016 19:44:19 +0000 (11:44 -0800)]
Improve performance of ExecutionContextSwitcher to help async invocation perf
Commit migrated from https://github.com/dotnet/coreclr/commit/
5ede820db415f083a0086d9f3e5e5cdd64ccce61
Rama Krishnan Raghupathy [Thu, 5 May 2016 22:45:22 +0000 (15:45 -0700)]
[Arm64]: Implement GetUnwindDataBlob
Commit migrated from https://github.com/dotnet/coreclr/commit/
b8ec1f8f7fb462aba23faf6daefeee8a5e037d3b
Bruce Forstall [Wed, 11 May 2016 00:33:09 +0000 (17:33 -0700)]
Move some LEGACY_BACKEND code from codegencommon.cpp to codegenlegacy.cpp
And, move some header file changes from codegen.h to codegenclassic.h.
The code moved were whole functions with no apparent tight coupling with
other code already in codegencommon.cpp.
The code moved had some #ifndef LEGACY_BACKEND portions, no longer
needed, removed.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fa74a694fe525847e8833613e2b31edc813b30b3
Jan Vorlicek [Wed, 11 May 2016 00:15:45 +0000 (02:15 +0200)]
Change hosting API string encoding to UTF-8 on Windows (dotnet/coreclr#4894)
This change fixes a problem with the string encoding in the hosting API
using CP_ACP, which causes problem when the input is a string in other
language than the current Windows one. In such case, it loses some
characters.
The fix is to use UTF-8 encoding (which is what CP_ACP means on Unix
PAL too).
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c3d1efea4a8673086df4ba36267d7f580ba9c8c
Bruce Forstall [Tue, 10 May 2016 23:43:55 +0000 (16:43 -0700)]
Fix kill set of rep stos to include ECX
There was a very strange condition in the existing code to only
conditionally include ECX in the kill set. I convinced myself that
for AMD64, this condition always holds in this code path (which
makes a lot more sense anyway), so I removed the condition, and
also made all this code execute for x86 as well.
Fixes dotnet/coreclr#4817
Commit migrated from https://github.com/dotnet/coreclr/commit/
6e05fb4c01eeb133aa8683a581e5becab8d20b62
Jan Kotas [Tue, 10 May 2016 23:26:42 +0000 (16:26 -0700)]
Fix razzle build breaks
[tfs-changeset: 1603547]
Commit migrated from https://github.com/dotnet/coreclr/commit/
5045b02082847646ee673b0c4d8ba07b6fc5beec
Alex Ghiondea [Tue, 10 May 2016 21:53:35 +0000 (14:53 -0700)]
Build the reference assembly and the facade for mscorlib.
Make sure that the facade projects generates pdbs when possible.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b451522dd3c012e78ceae772fc1fb8cf87c35083
Alex Ghiondea [Tue, 10 May 2016 19:46:55 +0000 (12:46 -0700)]
Create a Nuget package that will contain the reference assembly for mscorlib.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a5ba6fa7ff153c239d1e37939e8a320f3c13acf9
tijoytk [Tue, 10 May 2016 22:19:24 +0000 (15:19 -0700)]
Cleaning up a bunch of warnings.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9dc0fd926d34ccb4fc9a50e1fa4d684682e777d6
Alex Ghiondea [Tue, 10 May 2016 18:21:17 +0000 (11:21 -0700)]
Fix the reference assembly for mscorlib to match the surface area of the OS on which it builds.
Commit migrated from https://github.com/dotnet/coreclr/commit/
295566490dc2c6c01f9e5e1db215d005def2d42e
Bruce Forstall [Tue, 10 May 2016 21:51:44 +0000 (14:51 -0700)]
Merge pull request dotnet/coreclr#4891 from BruceForstall/PartialFix4817
Block ops using rep on x86 need to kill edi/esi/ecx, same as x64
Commit migrated from https://github.com/dotnet/coreclr/commit/
99c79ff3703439126a31216d056b44d6ef877ab7
Andy Ayers [Tue, 10 May 2016 20:54:13 +0000 (13:54 -0700)]
Merge pull request dotnet/coreclr#4878 from AndyAyersMS/AddMissingBenchmarkAttrs
Add missing xunit performance attributes
Commit migrated from https://github.com/dotnet/coreclr/commit/
5383f6bc8daecb66db16d27439b8d1be499454d4
Bruce Forstall [Tue, 10 May 2016 18:52:30 +0000 (11:52 -0700)]
Block ops using rep on x86 need to kill edi/esi/ecx, same as x64
Commit migrated from https://github.com/dotnet/coreclr/commit/
3d3bebe396d1563d965093064829d63f66a885dd
AlexGhiondea [Tue, 10 May 2016 18:36:05 +0000 (11:36 -0700)]
Merge pull request dotnet/coreclr#4833 from AlexGhiondea/StringBuilderFixes
Improve detection of error condition when using StringBuilder
Commit migrated from https://github.com/dotnet/coreclr/commit/
fa4d5f15797acba17ff6b204fe1fe310c40d750e
Mike Danes [Mon, 9 May 2016 22:01:12 +0000 (01:01 +0300)]
Optimize integer div/mod by const power of 2 in lowering
Optimizing GT_DIV/GT_UDIV/GT_MOD/GT_UMOD by power of 2 in codegen is problematic because the xarch DIV instruction has special register requirements. By the time codegen decides to perform the optimization the rax and rdx registers have been already allocated by LSRA even though they're not always needed (as it happens in the case of unsigned division where CDQ isn't used).
Since the JIT can't represent a CDQ instruction in its IR an arithmetic shift (GT_RSH) has been instead to extract the dividend sign. xarch's SAR is larger than CDQ but it has the advantage that it doesn't require specific registers. Also, arithmetic shifts are available on architectures other than xarch.
Example: method "static int foo(int x) => x / 8;" is now compiled to
mov eax, ecx
mov edx, eax
sar edx, 31
and edx, 7
add edx, eax
mov eax, edx
sar eax, 3
instead of
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
As a side-effect of this change the optimization now also works when the divisor is too large to be contained. Previously this wasn't possible because the divisor constant needed to be modified during codegen but the constant was already loaded into a register.
Example: method "static ulong foo(ulong x) => x /
4294967296;" is now compiled to
mov rax, rcx
shr rax, 32
whereas before a DIV instruction was used.
This change also fixes an issue in fgShouldUseMagicNumberDivide. The optimization that is done in lower can handle negative power of 2 divisors but fgShouldUseMagicNumberDivide handled those cases because it didn't check the absolute value of the divisor.
Example: method "static int foo(int x) => return x / -2;" is now compiled to
mov eax, ecx
mov edx, eax
shr edx, 31
add edx, eax
sar edx, 1
mov eax, edx
neg eax
instead of
mov eax, 0x7FFFFFFF
imul edx:eax, ecx
mov eax, edx
sub eax, ecx
mov edx, eax
shr edx, 31
add eax, edx
Commit migrated from https://github.com/dotnet/coreclr/commit/
d3647c10d7f01daa1f6b38fd601cd9606a08b687
tijoytom [Tue, 10 May 2016 17:33:36 +0000 (10:33 -0700)]
Merge pull request dotnet/coreclr#4793 from tijoytom/master
UTF8 Marshaling support(UnmanagedType.LPUTF8Str)
Commit migrated from https://github.com/dotnet/coreclr/commit/
72b1ea011f28c1897fa2a668f0676a075bdb6b6e
Hugh Bellamy [Tue, 10 May 2016 14:52:05 +0000 (15:52 +0100)]
Fix ArgumentNullException messages passed as parameter names (dotnet/coreclr#2889)
Fixed several ArgumentNullExceptions that throw with the message as the parameter name, leading to potential confusion for developers.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ad2485b93ce14437c0dc8b4fb69b0a54177fe09f
Jonghyun Park [Tue, 10 May 2016 14:51:26 +0000 (23:51 +0900)]
Adjust relative offsets in UMThunkStub (dotnet/coreclr#4888)
* Adjust relative offsets in UMThunkStub
This commit updates the relative offsets inside UMThunkStub according to the recent changes in
UMThunkStub (for stack unwinding).
* Uses 'UMThunkStub_StackArgsSize' instead of 'UMThunkStub_StackArgsOffset'
This commit revises 'UM2MThunk_WrapperHelper' to use 'UMThunkStub_StackArgsSize'
instead of 'UMThunkStub_StackArgsOffset'.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7fe0fef10a3c9654673aff5366d97f3dc74a68e5
Jan Kotas [Tue, 10 May 2016 13:34:17 +0000 (06:34 -0700)]
Merge pull request dotnet/coreclr#4713 from myungjoo/fix/4712
Match Inconsistent CMake/MSBuild Compiler Definitions 2
Commit migrated from https://github.com/dotnet/coreclr/commit/
37ecae6b728a2673854aebc2c7737e90e53e70e0
Jan Kotas [Tue, 10 May 2016 13:15:00 +0000 (06:15 -0700)]
Merge pull request dotnet/coreclr#4870 from RussKeldorph/illicense
Update license header in most .il files.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e3b5e14a65ffb20be986e540ba46da6b07440171
Jan Kotas [Tue, 10 May 2016 13:10:55 +0000 (06:10 -0700)]
Merge pull request dotnet/coreclr#4886 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
c90cc5bb715f1c0a63fb460469c75dcfa9716529
Valery [Tue, 10 May 2016 12:57:47 +0000 (15:57 +0300)]
Fixed typo in jitinterface.cpp (dotnet/coreclr#4889)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d8c283a1187b22438da781b44a9d76a9b4fa2493
John Chen [Tue, 10 May 2016 06:20:49 +0000 (23:20 -0700)]
Merge pull request dotnet/coreclr#4883 from JohnChen0/r2r
Fix CrossGen to skip some methods that require generic dictionary
Commit migrated from https://github.com/dotnet/coreclr/commit/
171f7133287ebbee24d6a7f193b13a9f959e9297
John Chen [Tue, 10 May 2016 06:19:56 +0000 (23:19 -0700)]
Merge pull request dotnet/coreclr#4829 from JohnChen0/master
Increase a test timeout
Commit migrated from https://github.com/dotnet/coreclr/commit/
72d3f75684002eaf5f7b6df97d6e09c804aaa265
Jan Kotas [Tue, 10 May 2016 05:58:01 +0000 (22:58 -0700)]
JIT-EE interface changes to support CoreRT
- Add flags and constants for reverse PInvoke transitions (https://github.com/dotnet/corert/issues/611)
- Add new multi-dim array constructor that does not use varargs
[tfs-changeset: 1603336]
Commit migrated from https://github.com/dotnet/coreclr/commit/
3371367a399b87d637e52dba94eb252dcc3c6eb1
Matt Ellis [Tue, 10 May 2016 05:33:20 +0000 (22:33 -0700)]
Fix call to GetSortHandle (dotnet/coreclr#4882)
GlobalizationNatvie_GetSortHandle takes a UTF8 encoded string for the
locale name we want to construct a handle to, which is passed to ICU to
open some locale data.
We converted the UTF-16 encoded locale name to UTF8 in managed code, but
neglected to actually ensure the resulting value was null terminated.
Fixes dotnet/coreclr#4784
Commit migrated from https://github.com/dotnet/coreclr/commit/
12b3b54bcc1bfa08c53a3e760ef39916a978ec93
Bruce Forstall [Tue, 10 May 2016 04:05:35 +0000 (21:05 -0700)]
Merge pull request dotnet/coreclr#4865 from BruceForstall/JitDumpAssertPtrs
Don't print pointers to the JitDump
Commit migrated from https://github.com/dotnet/coreclr/commit/
9eba7d3493796a6994264d27d4b82536d6eeb464
Andy Ayers [Tue, 10 May 2016 01:44:14 +0000 (18:44 -0700)]
Add missing xunit performance attributes
We were not getting instructions retired data for these benchmarks
because the attribute to trigger measurement was missing.
Commit migrated from https://github.com/dotnet/coreclr/commit/
218788facc4228dbda56c593fc2d2a23d395a0d5
AlexGhiondea [Tue, 10 May 2016 01:33:32 +0000 (18:33 -0700)]
Merge pull request dotnet/coreclr#4866 from AlexGhiondea/mscorlibUpdates
Create facade and reference assembly for mscorlib.
Commit migrated from https://github.com/dotnet/coreclr/commit/
96b82198d8217b9b2c12f4e97e7085bd32805ace
Andy Ayers [Tue, 10 May 2016 01:05:36 +0000 (18:05 -0700)]
Merge pull request dotnet/coreclr#4867 from AndyAyersMS/FixBenchmarkNames
Fix class names for benchmarks
Commit migrated from https://github.com/dotnet/coreclr/commit/
7de0e76ac9aed89ff7c9b677bc368b2e3dcf1452
Rahul Kumar [Tue, 10 May 2016 01:04:29 +0000 (18:04 -0700)]
Merge pull request dotnet/coreclr#4864 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
9ee4304bc172316c7c55b013e134c8dfd30b3929
John Chen (CLR) [Mon, 9 May 2016 23:38:54 +0000 (16:38 -0700)]
Fix CrossGen to skip some methods that require generic dictionary
Resolves issue dotnet/coreclr#4801.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9f5d9d4f925db0cf7793322921007f6c4ccc45ad
tijoytk [Mon, 9 May 2016 23:23:52 +0000 (16:23 -0700)]
Taking care of review comments.
Let out some of the review comments
since they are optimizations.
Commit migrated from https://github.com/dotnet/coreclr/commit/
515a28b8ab33675011af9923bb5b6dfedf5e3935
Mike Danes [Sat, 14 Nov 2015 08:46:20 +0000 (10:46 +0200)]
Add tests for integer div/mod by const
Commit migrated from https://github.com/dotnet/coreclr/commit/
ade68f00f0dff0d0727bb65bae5cf9db8dbb5db5
Russ Keldorph [Mon, 9 May 2016 21:25:36 +0000 (14:25 -0700)]
Update license header in most .il files.
Commit migrated from https://github.com/dotnet/coreclr/commit/
32832c1b23205e06c11262b21f0d0c3c2031642e
Andy Ayers [Mon, 9 May 2016 20:21:07 +0000 (13:21 -0700)]
Fix class names for benchmarks
Fix a couple of class names for benchmarks so they more accurately
describe the benchmark.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9b5b198b3b1dda78b56ba3558b365d6e86ed0fce
Russ Keldorph [Mon, 9 May 2016 20:19:32 +0000 (13:19 -0700)]
Merge pull request dotnet/coreclr#4862 from RussKeldorph/pending3
Fix conv_ovf_i8_i test
Commit migrated from https://github.com/dotnet/coreclr/commit/
530acab950de31fb58e41c33be80dc2664791b31
Alex Ghiondea [Mon, 9 May 2016 20:03:14 +0000 (13:03 -0700)]
Create the project that will generate the facade project
Commit migrated from https://github.com/dotnet/coreclr/commit/
76db478df55b14179bc32eee781c42e6d3bef1bd
Alex Ghiondea [Fri, 6 May 2016 20:35:15 +0000 (13:35 -0700)]
Create a reference assembly for mscorlib
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf91aa9bba4df84d6cf39f117ac8ae01aeecc041
Bruce Forstall [Mon, 9 May 2016 20:03:50 +0000 (13:03 -0700)]
Don't print pointers to the JitDump; output the assertion bitvector as a string.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8d07e361e640593ec9286a724a184b9cac12085
Carol Eidt [Mon, 9 May 2016 19:50:51 +0000 (12:50 -0700)]
Merge pull request dotnet/coreclr#4852 from mikedn/lsra-reftype
Define LSRA's RefType enum via macros
Commit migrated from https://github.com/dotnet/coreclr/commit/
0f444338415b9f92bde9b3658803fbac318f504f
Jan Vorlicek [Mon, 9 May 2016 19:09:55 +0000 (21:09 +0200)]
Let all signals be unblocked on Unix (dotnet/coreclr#4863)
This change removes blocking of all of the 17 signals that we were
blocking. I have looked at the default behavior of their handlers
and we should be fine with it.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2edd715867b82ba73c9db4192986104ffc6a936d
Jeremy Kuhne [Mon, 9 May 2016 18:50:47 +0000 (11:50 -0700)]
Fix desktop build break.
[tfs-changeset: 1603043]
Commit migrated from https://github.com/dotnet/coreclr/commit/
8f602a4f297caa0f4b9e25c5d814a1ed22b1fbee
John Chen (CLR) [Fri, 6 May 2016 17:26:46 +0000 (10:26 -0700)]
Increase a test timeout
Test case tests/src/GC/Regressions/v2.0-beta2/462651 occasionally fails
due to time out (see issue dotnet/coreclr#3691). Mark it with IsLongRunningGCTest.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1ec4df87d931ccaf7e054aefd4d0192325264041
AlexGhiondea [Mon, 9 May 2016 17:28:44 +0000 (10:28 -0700)]
Merge pull request dotnet/coreclr#4828 from AlexGhiondea/systemprivatecorelib
Create System.Private.CoreLib assembly
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff6b48c1c5a6572944659209a06ccca0e82d2154
Rahul Kumar [Mon, 9 May 2016 17:26:50 +0000 (10:26 -0700)]
Merge pull request dotnet/coreclr#4837 from rahku/crossgen
Helpers for ReadyToRun
Commit migrated from https://github.com/dotnet/coreclr/commit/
b3597a00be5cfb6a6a40a4c07e9eb14604fb489e
Rahul Kumar [Thu, 5 May 2016 22:53:07 +0000 (15:53 -0700)]
[Arm64] Helpers for ReadyToRun
Commit migrated from https://github.com/dotnet/coreclr/commit/
559719a62aa7134da929d22f40c3c772e5d06348
Mike Danes [Sun, 8 May 2016 17:41:31 +0000 (20:41 +0300)]
Define LSRA's RefType enum via macros
Commit migrated from https://github.com/dotnet/coreclr/commit/
ffc45dd5754e87bcd3c78380bac10ae7a10f66dd
Russ Keldorph [Fri, 6 May 2016 23:27:37 +0000 (16:27 -0700)]
Fix conv_ovf_i8_i test
Test has at least four problems:
- It assumes native int = int32, so disable it for 64-bit
- It is just wrong in a couple of its assumptions about when overflow
happens during unsigned conversions.
- On success, it returns 0xAAAA instead of the commonly accepted 100
- It has no copyright header
Also piggybacking a copyright fix for rem_r4.il that I missed earlier
Commit migrated from https://github.com/dotnet/coreclr/commit/
d496eb2dc41c895a855bc216fafa81f30f5e8ee2
Gaurav Khanna [Mon, 9 May 2016 14:36:36 +0000 (07:36 -0700)]
Merge pull request dotnet/coreclr#4834 from gkhanna79/RemoveSxSJIT
Cleanup sxsJitStartup from codemanager
Commit migrated from https://github.com/dotnet/coreclr/commit/
d3ff29a3e359b60c4c2fc0e21c1d6c99999157ea
Davis Goodin [Mon, 9 May 2016 13:20:55 +0000 (08:20 -0500)]
Fix incremental build restore: move generated test_runtime project.json to bin (dotnet/coreclr#4764)
* Move generated test_runtime project.json to bin.
* Update helix tasks to point to moved test_runtime files.
* Remove unnecessary TestRuntimeDependenciesJson property.
Commit migrated from https://github.com/dotnet/coreclr/commit/
388d58c3ff5e0792d6a4f7b7d00474f3f9b513df
Jonghyun Park [Mon, 9 May 2016 09:46:10 +0000 (18:46 +0900)]
Do NOT overwrite the stack frame pointer (dotnet/coreclr#4857)
CallEHFunclet currently overwrite the stack frame pointer (R7) while
recovering the registers.
This commit revises CallEHFunclet not to overwrite R7 when recoverint
the registers.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c55a8bd0b5949d5ed70c54a41aaab7d7b95fd8e5
MyungJoo Ham [Mon, 9 May 2016 06:55:46 +0000 (15:55 +0900)]
Linux/ARM: fix stack alignment breaks (dotnet/coreclr#4858)
ehhelper.S: the function no more requires dummy stack add.
memcpy.S: C_FUNC(memcpy) has misaligned stack.
(memcpy.S is not directly related with the issue dotnet/coreclr#4779.
However, this requires the same fix with ehhelper.S)
Fix dotnet/coreclr#4779
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
6acc1053342b308ab8f6e6f3c979d82a60641bdc
Russ Keldorph [Mon, 9 May 2016 04:44:05 +0000 (21:44 -0700)]
Merge pull request dotnet/coreclr#4845 from RussKeldorph/pending
Fix some tests where the only problem was incorrect retval
Commit migrated from https://github.com/dotnet/coreclr/commit/
8ac5753f1bc07a0ee7daf6951d700261b6c23247
Lubomir Litchev [Mon, 9 May 2016 01:08:08 +0000 (18:08 -0700)]
Update unix-test-instructions.md
Updated run coreclr tests instructions for Linux. Included the new semicolon separated paths for the coreFxBinDir.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6b92cff66f26c98bb3be88562626faaa54646118
Russ Keldorph [Fri, 6 May 2016 23:27:37 +0000 (16:27 -0700)]
Fix some tests where the only problem was incorrect retval
The following tests return values other than 100 on success. Modify the
harness to expect the values that they return:
```
JIT\jit64\regress\vsw\102754\test1\test1.cmd
JIT\Regression\CLR-x86-JIT\V1-M09\b16102\b16102\b16102.cmd
```
The following test is identical to `test1` in the same directory. Delete
it.
```
JIT\jit64\regress\vsw\102754\test2\test2.cmd
```
`rem_r4` returns a non-Unix-compatible 0xAAAA (>255). Change it to the
standard 100.
```
JIT\IL_Conformance\Old\Conformance_Base\rem_r4\rem_r4.cmd
```
The following were using the non-functional Environment.ExitCode.
Switched to Environment.Exit(Environment.ExitCode):
```
JIT\Methodical\switch\switch1\switch1.cmd
JIT\Methodical\switch\switch10\switch10.cmd
JIT\Methodical\switch\switch11\switch11.cmd
JIT\Methodical\switch\switch2\switch2.cmd
JIT\Methodical\switch\switch3\switch3.cmd
JIT\Methodical\switch\switch4\switch4.cmd
JIT\Methodical\switch\switch5\switch5.cmd
JIT\Methodical\switch\switch6\switch6.cmd
JIT\Methodical\switch\switch7\switch7.cmd
JIT\Methodical\switch\switch8\switch8.cmd
JIT\Methodical\switch\switch9\switch9.cmd
JIT\Methodical\tailcall\_il_dbgrecurse_ep_void\_il_dbgrecurse_ep_void.cmd
JIT\Methodical\tailcall\_il_dbgtest_void\_il_dbgtest_void.cmd
JIT\Methodical\tailcall\_il_relrecurse_ep_void\_il_relrecurse_ep_void.cmd
JIT\Methodical\tailcall\_il_reltest_void\_il_reltest_void.cmd
JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b65423\b65423\b65423.cmd
JIT\Regression\CLR-x86-JIT\V1.2-M01\b08046\b08046\b08046.cmd
```
Note that `b08046.cmd` is left disabled because it is still failing.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fc4497b4679c4282b9e30bedf2c20060033cf437
Koundinya Veluri [Sun, 8 May 2016 18:45:14 +0000 (11:45 -0700)]
Merge pull request dotnet/coreclr#4773 from kouvel/CardTableGrowFix3
Fix recently introduced timing issue when growing the card table
Commit migrated from https://github.com/dotnet/coreclr/commit/
74798b5b95aca1b27050038202034448a523c9f9
SaeHie Park [Sun, 8 May 2016 18:24:26 +0000 (03:24 +0900)]
ARM: Fix SOS stack dump command failure (dotnet/coreclr#4774)
Dumping address pointer for 32bit system needs adjusting for current implementation
while it assumes %p argument is 64bit. This patch changes (ULONG64) casting to SOS_PTR()
so that it will be safe for both 64 and 32bit.
This will fix DumpStack and EEStack segmentation fault problem.
Related issue: dotnet/coreclr#4672
Commit migrated from https://github.com/dotnet/coreclr/commit/
70cfa355947ed82f7de8a56cac3bd38571cebfa5
Mike Danes [Sun, 8 May 2016 16:55:11 +0000 (19:55 +0300)]
Remove unnecessary LSRA members
RefPositions and Intervals are never removed. We can use list::size() instead of tracking the count manually.
Commit migrated from https://github.com/dotnet/coreclr/commit/
514652459713fdbc7e4c392e0c6e13c28c5f92af
Jan Kotas [Sun, 8 May 2016 12:02:50 +0000 (05:02 -0700)]
Disable flaky test (dotnet/coreclr#4846)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e0df3ac5e4f6637f16160058eb92cdd935140fa0
Jan Kotas [Sun, 8 May 2016 04:21:50 +0000 (21:21 -0700)]
RyuJIT - throughput improvements, PInvoke transitions tweaks: (dotnet/coreclr#4842)
* RyuJIT - throughput improvements, PInvoke transitions tweaks:
- Minor compilation throughput improvements:
- Avoid redundant calls to getMethodAttribs in impMarkInlineCandidate by reusing the value from CALL_INFO
- Avoid redundant calls to getFunctionEntryPoint in codegen by reusing the value computed during lower
- Stop checking CORINFO_FLG_NATIVE flag for inliner observations. It is dead flag, not set anywhere
- Tweaks for helper-based PInvoke transitions (used CoreRT only today):
- Stop emitting CORINFO_HELP_INIT_PINVOKE_FRAME. Just having the two simple begin/end helpers is better.
- Stop passing size of arguments in secret register.
- Enable direct calls for PInvoke targets
* Codereview feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
0c4d3d92fe75ec011f2d2e95df2ceedd301de8ef
Aditya Mandaleeka [Sat, 7 May 2016 20:51:11 +0000 (13:51 -0700)]
Merge pull request dotnet/coreclr#4747 from krytarowski/netbsd-support-75
NetBSD: Fix build with LLVM-3.9
Commit migrated from https://github.com/dotnet/coreclr/commit/
c2c1abcb71065dd530e0b38045547603c38d1e86
Aditya Mandaleeka [Sat, 7 May 2016 20:28:58 +0000 (13:28 -0700)]
Merge pull request dotnet/coreclr#4843 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
1b9c70ca3d8fc86adc2bd9272a248db17394cebc
Jan Kotas [Sat, 7 May 2016 18:00:15 +0000 (11:00 -0700)]
Delete left-over uses of FeatureHostedBinder
[tfs-changeset: 1602735]
Commit migrated from https://github.com/dotnet/coreclr/commit/
4152ddcbcc8013858d3eca2b3f8cbbe3356cf224
Bruce Forstall [Sat, 7 May 2016 15:52:07 +0000 (08:52 -0700)]
Merge pull request dotnet/coreclr#4742 from lemmaa/fix-unit-test-script
Fix 'runtest.sh' script
Commit migrated from https://github.com/dotnet/coreclr/commit/
59a9008ddbf7ec8b83d1950bf51ffa3b09c372b5
Sivarv [Sat, 7 May 2016 15:20:57 +0000 (08:20 -0700)]
Merge pull request dotnet/coreclr#4836 from sivarv/simdPromotion
Mark simd type vars as lvRegStruct accurately.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff7a57969edbb6da4983e823b690ca2c124e15d6
Rahul Kumar [Sat, 7 May 2016 14:21:37 +0000 (07:21 -0700)]
Fixes multidim array Get Accessor for enum datatype (dotnet/coreclr#4808)
Commit migrated from https://github.com/dotnet/coreclr/commit/
417a98fb0f82b1c05010cdc2c41eb5056f14541c
James Ko [Sat, 7 May 2016 14:20:18 +0000 (10:20 -0400)]
Use Buffer.BlockCopy in System.Reflection.Emit (dotnet/coreclr#4812)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8eec3c5ac8975734836c333187a2724d50bd9af9
Thomas Klausner [Sat, 7 May 2016 14:14:55 +0000 (16:14 +0200)]
Fix a typo in NetBSD documentation. (dotnet/coreclr#4841)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8bee2889882af4826e1955e3a64a060ec9e41063
James Ko [Sat, 7 May 2016 14:14:06 +0000 (10:14 -0400)]
Buffer.BlockCopy: Avoid double-typechecks for arrays of same type (dotnet/coreclr#4807)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9a67ab7affc527168578a6749410c64ec3233f55
Jan Vorlicek [Sat, 7 May 2016 08:47:59 +0000 (10:47 +0200)]
Remove FEATURE_HOSTED_BINDER definition (dotnet/coreclr#4838)
The FEATURE_HOSTED_BINDER is always on so remove it from all the sources.
Commit migrated from https://github.com/dotnet/coreclr/commit/
29fcfe2938e3890cd6fb302d2f8c6dabc1a09fc4
Tijoy Tom Kalathiparambil [Tue, 3 May 2016 21:25:22 +0000 (14:25 -0700)]
UTF8 Marshaling support(UnmanagedType.LPUTF8Str)
Usage: [MarshalAs(UnmanagedType.LPUTF8Str)] applied to string
and stringbuilder.
Implementation mostly use Encoding.UTF8 API to do the byte buffer
to string roundtripping. Introducing two new marshalers,
UTF8StringMarshaler and UTF8BufferMarshaler which handle string
and StringBuilder respectively. [Out] StringBuilder marshaling use
builder capacity as the buffer size ie (builder. Capacity + 1) *3
which is enough for any UTF8 char in BMP plane, infact Encoding.UTF8
mscorlib APIs use the same length.All marshaling flags(ThrowOnUnmapable,
defaultchar) are ignored since they do not make sense in UTF16 to UTD8
context.
The public contracts are not yet updated, the public contracts and
public marshaling API (Marshal.PtrToStringUtf8 and StringToHGlobalUtf8)
will be added once the implementation is in. The marshal api are anyway
going to be a wrapper around Encoding.GetBytes and GetChars.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e63ae93ca3fc777ff25930491332e07cf79a9ce3
sivarv [Fri, 6 May 2016 21:36:58 +0000 (14:36 -0700)]
Mark simd type vars as lvRegStruct accurately.
Commit migrated from https://github.com/dotnet/coreclr/commit/
60d4c09a23dbc0e1ef5ccc348a05f6545bb6472d
Pat Gavlin [Fri, 6 May 2016 23:32:18 +0000 (16:32 -0700)]
Merge pull request dotnet/coreclr#4803 from pgavlin/RootBinDir
Add a `bindir` parameter to build.sh.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0ef1fc9aa3d65d41b5b9c8cd4911a1f8cdece049
Pat Gavlin [Fri, 6 May 2016 23:23:26 +0000 (16:23 -0700)]
Merge pull request dotnet/coreclr#4831 from pgavlin/gh2300
Move b12011 into testsUnsupportedOutsideWindows.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fbaa0827781be897a51b5d529cef305e569ca5cc
Russ Keldorph [Fri, 6 May 2016 22:57:36 +0000 (15:57 -0700)]
Merge pull request dotnet/coreclr#4826 from RussKeldorph/vararg
Move Windows-only vararg/arglist tests to the appropriate exclusion file
Commit migrated from https://github.com/dotnet/coreclr/commit/
ef04d7d2083c8e6fb8f3cf6294f2ae06928dae10
Andy Ayers [Fri, 6 May 2016 22:22:03 +0000 (15:22 -0700)]
Merge pull request dotnet/coreclr#4815 from AndyAyersMS/LegacyPolicyInlineLimit
Inliner: add JitInlineLimit check to LegacyPolicy under debug
Commit migrated from https://github.com/dotnet/coreclr/commit/
5cdc97b5c80fe67f0ce06aced25b9d046e12a574
Maoni Stephens [Fri, 6 May 2016 21:53:23 +0000 (14:53 -0700)]
Merge pull request dotnet/coreclr#4770 from Maoni0/affi
enable affinity for GC threads and some bug fixes
Commit migrated from https://github.com/dotnet/coreclr/commit/
726d1a3244b80bf963fd0d51e57d4bb90af1e426
Jan Vorlicek [Fri, 6 May 2016 21:51:25 +0000 (23:51 +0200)]
Fix Windows x86 exception handling issue (dotnet/coreclr#4830)
This change fixes an exception handling issue that happens on x86 on Windows
when exception is raised in System.RuntimeType.MakeGenericType.
The problem was caused by GCPROTECT_HOLDER macro in RuntimeTypeHandle::GetTypeByName
that causes popping of GCFrame (and zeroing its m_next field) that's in the middle of the thread's frames list during
the stack unwinding.
That breaks the list and when UnwindFrames happen later and tries to walk the stack, the StackFrameIterator::NextRaw
asserts when checking the validity of the list.
The fix is to move the keepAlive to the managed caller of the RuntimeTypeHandle::GetTypeByName QCall, which removes
the need for the GCPROTECT_HOLDER.
Since it was the only usage of that holder and of the underlying FrameWithCookieHolder class, I've removed those.
In addition to that, I've modified COMModule::GetType and AssemblyNative::GetType to use the same pattern, since
they could also suffer from the problem the GCPROTECT_HOLDER was attempting to fix.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3c7e477ac50e50b616a64c72efb81388c045e63f
Gaurav Khanna [Fri, 6 May 2016 21:28:38 +0000 (14:28 -0700)]
Cleanup sxsJitStartup from codemanager
Commit migrated from https://github.com/dotnet/coreclr/commit/
c9cea125d28a9e465c37720a16427bcf88b03269
Sejong Oh [Fri, 6 May 2016 21:25:40 +0000 (14:25 -0700)]
Merge pull request dotnet/coreclr#4690 from sejongoh/use_rax_for_ret_buf
Return RetBuf address via RAX for Windows 64
Commit migrated from https://github.com/dotnet/coreclr/commit/
2308fbf2253abef97628bde2a04d8fb910ce1018
Sivarv [Fri, 6 May 2016 21:17:50 +0000 (14:17 -0700)]
Merge pull request dotnet/coreclr#4795 from sivarv/simdret
[x64 Unix] Avoid SIMD types returned in two return registers from requiring to go through memory.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b3be35f379519120acd8427485524e92cf911918
Kyungwoo Lee [Fri, 6 May 2016 20:45:36 +0000 (13:45 -0700)]
Merge pull request dotnet/coreclr#4791 from kyulee1/fasttailcall
ARM64: Enable Fast Tail Call
Commit migrated from https://github.com/dotnet/coreclr/commit/
06bc225c0117bbfd9ff31020e1f377ef33a561da
Kyungwoo Lee [Wed, 4 May 2016 20:26:33 +0000 (13:26 -0700)]
ARM64: Enable Fast Tail Call
Fixes https://github.com/dotnet/coreclr/issues/4420
Like x64, enable fast tail call but tail call opt is still off.
This means explicit tail call is converted to epilog + jmp IP0.
Tail call recursive/tail call via helper is still not enabled yet.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a9eee0c96fdb4eb8cc7c0312bb50bb923db177f4
Alex Ghiondea [Mon, 25 Apr 2016 23:18:42 +0000 (16:18 -0700)]
Improve detection of error condition when using StringBuilder
Commit migrated from https://github.com/dotnet/coreclr/commit/
3929324f6c54e9acbf14cba434ec67a45ab7ce55
Pat Gavlin [Fri, 6 May 2016 20:08:19 +0000 (13:08 -0700)]
Move b12011 into testsUnsupportedOutsideWindows.
This test requires COM interop.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4e0417947d47a5c632494353b943d44c33abdcc8