Andy Ayers [Thu, 23 Feb 2017 22:53:00 +0000 (14:53 -0800)]
Add jit test project checker as jit test (dotnet/coreclr#9721)
Add the tool used to fix/repair projects as a test case. It will
fail with an error code if any project file in the jit test subtree
needs fixing.
This test requires CORE_ROOT to point at the test overlay and
that directory be rooted under the repo (other test cases already
have similar requirements).
CodeGenBringUp tests are noted as needing fixes, but are accounted
for under the category of "deferred fixes".
Commit migrated from https://github.com/dotnet/coreclr/commit/
cdea3db0927e279c6d9bd6531bff84e4cbd94eaa
Andy Ayers [Thu, 23 Feb 2017 22:52:10 +0000 (14:52 -0800)]
JIT: defer setting outgoing args size until after optimization (dotnet/coreclr#9683)
For fixed out args ABIs, the jit currently computes the size of the
out arg area during morph, as it encounters calls that must pass arguments
via the stack.
Subsequently, the optimizer may delete calls, either because they are
pure and the results are unused, or because they are conditional and the
guarding predicates are resolved by the optimizer in such a way that
the call is no longer reachable.
In particular if all the calls seen by morph are subsequently removed by
the optimizer, the jit may generate a stack frame that it never uses and
doesn't need. If only some calls are removed then the stack frame may end
up larger than necessary.
One motivating example is the inlining of a shared generic method that
ignores its generic context parameter. The caller typically must invoke a pure
helper to determine the proper argument to pass. Post inline the call's result
is unused, and the helper call is deleted by the optimizer.
This change defers the outgoing arg size computation until fgSimpleLowering,
which runs after optimization. The code in morph now simply records the
needed size for each call in the associated fgArgInfo.
As before, the outgoing arg size computation ignores fast tail calls, since
they can use the caller-supplied scratch area for memory arguments.
The jit may introduce helper calls after optimization which could seemingly
invalidate the out args area size. The presumption here is that these calls
are carefully designed not to use the caller-supplied scratch area. The
current code makes the same assumption.
This change introduces some unanticipated diffs. Optcse estimates the
frame size to decide how aggressive it should be about cses of local
variable references. This size estimate included the out args area, which
appears to be something of an oversight; there are no cse opportunities
in this area and the offsets of the other local variables are not impacted
by the size of this area. With this change the out args area size is seen
as zero during optimization and so the cse strategy for a method may be
different.
Commit migrated from https://github.com/dotnet/coreclr/commit/
eaf5835d6a0e914edfdbb6ad1a8af2660e87a08c
Pat Gavlin [Thu, 23 Feb 2017 22:20:45 +0000 (14:20 -0800)]
Merge pull request dotnet/coreclr#9582 from pgavlin/vzeroupper_x86_epilog
Do not report FP restores in x86 epilogs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0abb98f1dc88845c82722bd48b4127ed1c728534
Brian Sullivan [Thu, 23 Feb 2017 21:56:09 +0000 (13:56 -0800)]
Merge pull request dotnet/coreclr#9454 from mikedn/cgtun-to-cne
Morph (x GT_GT.unsigned 0) into (x GT_NE 0)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f47c6fd43ba50cd59fa77e523dbc562df7f98c2c
Wes Haggard [Thu, 23 Feb 2017 21:23:53 +0000 (13:23 -0800)]
Merge pull request dotnet/coreclr#9743 from weshaggard/UpdateUsingYourBuildDocs
Update UsingYourBuildDocs to use .NET Core 2.0 SDK
Commit migrated from https://github.com/dotnet/coreclr/commit/
45d14be87c2ca02c6d190ca38fe0d8c585d56c5e
Wes Haggard [Thu, 23 Feb 2017 19:13:59 +0000 (11:13 -0800)]
Update UsingYourBuild docs to use .NET Core 2.0 SDK
Commit migrated from https://github.com/dotnet/coreclr/commit/
53d0f39ba6784397ce95399fe2e99ba093f0b0be
Brian Robbins [Thu, 23 Feb 2017 20:12:00 +0000 (12:12 -0800)]
Merge pull request dotnet/coreclr#9741 from brianrob/issue-9733
Disable Test Broken By CoreFX PR # 15767
Commit migrated from https://github.com/dotnet/coreclr/commit/
0a95e4ece8cb415b3cd3a7c10a0ce1a9ac6d2873
Brian Sullivan [Thu, 23 Feb 2017 19:22:03 +0000 (11:22 -0800)]
Merge pull request dotnet/coreclr#9655 from sdmaclea/PR-ARM64-JITGC-WIP3
[Arm64] Correct CORINFO_HELP_ASSIGN_BYREF killed mask
Commit migrated from https://github.com/dotnet/coreclr/commit/
f78bf7d393501c279821bb0e7fa4c26550cc898c
Pat Gavlin [Thu, 23 Feb 2017 18:48:25 +0000 (10:48 -0800)]
Format code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
187255c281084156bbc103d2c17729a0ab0c96b6
Pat Gavlin [Thu, 23 Feb 2017 18:39:10 +0000 (10:39 -0800)]
Address PR feedback.
Commit migrated from https://github.com/dotnet/coreclr/commit/
bd4028154190a245f322d859484fd39375201d00
Brian Robbins [Thu, 23 Feb 2017 18:27:58 +0000 (10:27 -0800)]
Disable broken tests.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4c760c55ae357aa3e78b33ac497f05edc3d0ce54
Bruce Forstall [Thu, 23 Feb 2017 17:26:55 +0000 (09:26 -0800)]
Merge pull request dotnet/coreclr#9727 from BruceForstall/DontBuildJitLib
Speed up JIT builds
Commit migrated from https://github.com/dotnet/coreclr/commit/
5932d885cb60427c895aca7bceae83a34e36be3a
Peter Kukol [Thu, 23 Feb 2017 16:13:34 +0000 (09:13 -0700)]
Simplified MinOpts GC ref tracking. (dotnet/coreclr#9231)
Simplified MinOpts GC ref tracking - when a method is compiled with MinOpts for targets with the 64-bit GC info encoder we mark all GC slots as untracked and we omit encoding call sites with no live tracked GC refs explicitly in the GC tables; this can be controlled using the new COMPlus_JitMinOptsTrackGCrefs environment flag.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d7509df9635ca92c1a3cf75dc2516ae51b0e03d6
Frederik Carlier [Thu, 23 Feb 2017 10:09:24 +0000 (02:09 -0800)]
Android: workaround absence of getcontext/setcontext (dotnet/coreclr#9725)
* Android: workaround absence of getcontext/setcontext
use RtlCaptureContext and RtlRestoreContext
Commit migrated from https://github.com/dotnet/coreclr/commit/
08581d8e9515ef1a348e7509785ea29195a9de37
Stephen Toub [Thu, 23 Feb 2017 07:22:43 +0000 (02:22 -0500)]
Reduce code in SafeHandleAddRef (dotnet/coreclr#9724)
If DangerousAddRef returns rather than throws, its argument will be true, so there's no need to branch on it.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6af4182d058df3520103d81c3912899e8d29f884
Ben Adams [Thu, 23 Feb 2017 03:15:57 +0000 (03:15 +0000)]
Faster List Add (dotnet/coreclr#9539)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7d9e01719d29b9dda2d1f53fe15461f9b371e604
[Arm64] Fix genCodeForCpObj()
CORINFO_HELP_ASSIGN_BYREF is the functional equivalent to
*dst = *src;
++dst;
++src;
Note: Description ignores barriers.
Since src and dst are incremented the registers are marked dead.
In genCodeForCpObj(), the incremented values are will be reused
and therefore must be treated as live. Add code to explicitly
force them live for this use case.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a5d464837248bae64845fb3e8207821d29f316d8
Tanner Gooding [Thu, 23 Feb 2017 01:36:12 +0000 (17:36 -0800)]
Merge pull request dotnet/coreclr#9363 from tannergooding/math-intrinsics
Updating jit/valuenum to properly handle the single-precision versions of the math intrinsics.
Commit migrated from https://github.com/dotnet/coreclr/commit/
116752f4138f9e26237c9435bdcde129d4aa3398
Pat Gavlin [Wed, 22 Feb 2017 19:05:25 +0000 (11:05 -0800)]
Do not report FP restores in x86 epilogs.
The x86 unwinder neither needs nor expects to see these restores (which
right now consist solely of a `vzeroupper` instruction that is emitted
to eliminate AVX <-> SSE transition penalties), which was causing unwind
failures under GC stress. This change stops reporting these restores as
part of a function epilog.
Fixes dotnet/coreclr#9452.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce70f4c2acae22fd8eaee1588c3f54596e521c8a
Bruce Forstall [Wed, 22 Feb 2017 23:43:18 +0000 (15:43 -0800)]
Speed up JIT builds
We don't need to build the static lib and crossgen static lib
versions of the JIT unless FEATURE_MERGE_JIT_AND_ENGINE is set.
And, since we currently don't set it, this means doing two
fewer JIT builds.
Commit migrated from https://github.com/dotnet/coreclr/commit/
91681810db13a23fa7fc0437340946bf8cfe140b
Jarret Shook [Wed, 22 Feb 2017 23:30:14 +0000 (15:30 -0800)]
Merge pull request dotnet/coreclr#9654 from sdmaclea/PR-ARM64-JITGC-WIP2
[WIP] [Arm64] Fix GC liveness for CodeGen::genPutArgStk()
Commit migrated from https://github.com/dotnet/coreclr/commit/
989bf9e101e072c185b58aed175d4ae181c4f57b
Jarret Shook [Wed, 22 Feb 2017 23:30:03 +0000 (15:30 -0800)]
Merge pull request dotnet/coreclr#9653 from sdmaclea/PR-ARM64-JITGC-WIP1
[WIP] [Arm64] Fix GC hole in CodeGen::genCodeForCpObj()
Commit migrated from https://github.com/dotnet/coreclr/commit/
bbfa7f72292f7dd26993fb108e5eeb1b573c580f
Jan Vorlicek [Wed, 22 Feb 2017 22:18:01 +0000 (23:18 +0100)]
Improve stack overflow reporting (dotnet/coreclr#9650)
* Improve stack overflow reporting
This change modifies the SIGSEGV handling to use an alternate stack so that
we can safely detect and report stack overflow even in case when we are
really out of stack. Before, we were able to detect stack overflow and report
it only when JIT inserted stack probes (for functions with frames larger than
4kB) and so there was still space on the stack to run the sigsegv handler.
It brings in some additional complexity, since we need to switch to the original
stack of the thread once we figure out the sigsegv is not a stack overflow and
if we return from the hardware exception handler, we need to switch back to the
alternate stack before returning from the sigsegv handler.
Also, the alternate stack is created per thread and so we need to correctly destroy
it when a thread terminates and also install it on foreign threads that enter PAL.
This also requires creating fake stack frames to enable the libunwind to walk
the stack from the exception handler to the sigsegv location.
* Fix stack unwinding in CallDescrWorkerInternal
While testing the change to enable stack overflow handling, I've noticed that
the PROLOG_SAVE_REG_PAIR and PROLOG_SAVE_REG_PAIR_INDEXED macros are missing
.cfi_def_cfa_register fp. That resulted in inability to unwind through the
CallDescrWorkerInternal, since this function dynamically allocates stack slots
and so the default sp based frame doesn't work.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f193024a5ef8f277f08bed3721e2e8e730aabdb9
Frederik Carlier [Wed, 22 Feb 2017 22:17:01 +0000 (14:17 -0800)]
CMake configuration for cross building for Android (dotnet/coreclr#9174)
* Configuration files for cross building for Android arm64
* Simplify toolchain script
* Fix trymake values for Android
Commit migrated from https://github.com/dotnet/coreclr/commit/
09fd5fbd08d376aa0d7b2602e5115aaabcd7b352
Andy Ayers [Wed, 22 Feb 2017 20:20:08 +0000 (12:20 -0800)]
Merge pull request dotnet/coreclr#9712 from AndyAyersMS/FixSomeTestProjFiles
Fix jit test projects to specify debug type and optimization flags
Commit migrated from https://github.com/dotnet/coreclr/commit/
d2f85611eaf2560282c420731428d7204d169317
Michal Strehovský [Wed, 22 Feb 2017 20:04:37 +0000 (12:04 -0800)]
Add test coverage for ldtoken with members (dotnet/coreclr#9713)
The test coverage for `ldtoken field X` and `ldtoken method X` in the
repo is very small - this test tries to improve things a little.
In particular, it tests that we get the right reflection objects, and
that we can do this from shared and unshared code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4ae7ce48780c2db9ca8b4208c89b0db6aae97187
Bruce Forstall [Wed, 22 Feb 2017 19:29:58 +0000 (11:29 -0800)]
Merge pull request dotnet/coreclr#9714 from BruceForstall/FixRegMasks
Fix non-Windows amd64 register mask initialization
Commit migrated from https://github.com/dotnet/coreclr/commit/
27d5d92f6a07f515dff2074a77f4ee63477e5456
Michelle McDaniel [Wed, 22 Feb 2017 19:00:39 +0000 (11:00 -0800)]
Merge pull request dotnet/coreclr#9702 from adiaaida/fixX86PerfTesting
Fix x86 perf testing
Commit migrated from https://github.com/dotnet/coreclr/commit/
4bc6f91f2e86cd6d0e5a1def8f7d57244434764f
[Arm64] Fix GC hole in CodeGen::genCodeForCpObj()
Update tempreg liveness
Commit migrated from https://github.com/dotnet/coreclr/commit/
35243a54053787ed6d6cccc9e67571a2bed0c0f4
[Arm64] Fix GC liveness for CodeGen::genPutArgStk()
Commit migrated from https://github.com/dotnet/coreclr/commit/
5f7b37f5220ac7d14ca75a7dd01da0665a3b13e7
Tanner Gooding [Wed, 22 Feb 2017 15:25:26 +0000 (07:25 -0800)]
Updating ValueNumStore to no longer upcast float to double when performing evaluations.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8f05f425d0e3dbdf70ccc2cf4bb6e9886def0019
James Ko [Wed, 22 Feb 2017 18:01:40 +0000 (13:01 -0500)]
Separate Comparer and EqualityComparer creation logic into a non-generic class (dotnet/coreclr#9640)
Commit migrated from https://github.com/dotnet/coreclr/commit/
84092471c678da00bb59d86fb5fcd0890a524472
Andy Ayers [Wed, 22 Feb 2017 17:31:14 +0000 (09:31 -0800)]
Fix projects that specified DebugType incorrectly
Make conditional DebugType properties uncondtional. Fix debug type
and optimize settings for _d and _do suffixed tests. Remove conditional
DebugType propery if there is also an unconditonal property.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e36c46a2e53dabb008e89b10ed138f0ccf7f192a
Pat Gavlin [Wed, 22 Feb 2017 17:29:58 +0000 (09:29 -0800)]
Merge pull request dotnet/coreclr#9704 from pgavlin/corefx15913
Correctly pass 12-byte GT_SIMD nodes on x86.
Commit migrated from https://github.com/dotnet/coreclr/commit/
749180a3799da8a495981ba85734dfffd09115f3
Gaurav Khanna [Wed, 22 Feb 2017 16:58:43 +0000 (08:58 -0800)]
Merge pull request dotnet/coreclr#9660 from dotnet-bot/master-UpdateDependencies
Update CoreClr, CoreFx to beta-25021-03, beta-25022-02, respectively (master)
Commit migrated from https://github.com/dotnet/coreclr/commit/
fbe12daf0cd0f9911fa50f07adb5149aac7f360c
dotnet-bot [Wed, 22 Feb 2017 15:16:14 +0000 (15:16 +0000)]
Update CoreClr, CoreFx to beta-25021-03, beta-25022-02, respectively
Commit migrated from https://github.com/dotnet/coreclr/commit/
c0edf93600bc6ab39ec484177c129ebf178e8d2e
Jonghyun Park [Wed, 22 Feb 2017 14:43:30 +0000 (23:43 +0900)]
Clean up ClrUnwindEx (dotnet/coreclr#9482)
* Clean up ClrUnwindEx
Commit migrated from https://github.com/dotnet/coreclr/commit/
1f5cae07e65d646fd57fdca7376d4b2f1dccad00
Tanner Gooding [Wed, 22 Feb 2017 14:09:37 +0000 (06:09 -0800)]
Dropping some unnecessary conditional statements in jit\valuenum.cpp
Commit migrated from https://github.com/dotnet/coreclr/commit/
9f69d1f0dd82d1452d82080aabfbc751fdc2886d
Tanner Gooding [Mon, 6 Feb 2017 06:44:14 +0000 (06:44 +0000)]
Updating jit/valuenum to properly handle the single-precision versions of the math intrinsics.
Commit migrated from https://github.com/dotnet/coreclr/commit/
43ea736713dd1bf83957c8685a2f8a8a6d2ff88d
Bruce Forstall [Wed, 22 Feb 2017 01:06:46 +0000 (17:06 -0800)]
Fix non-Windows amd64 register mask initialization
The arrays were being initialized with register numbers, not
register masks. The arrays are only used on non-Windows amd64
for homing circular incoming argument conflicts. Perhaps we
never saw this happen?
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8646043219a5367b2090e9e9a0f504734c8e6e3
Andy Ayers [Wed, 22 Feb 2017 02:13:25 +0000 (18:13 -0800)]
Fix jit test projects to specify debug type and optimization flags
This partially addresses the issues raised in dotnet/coreclr#4124 and dotnet/coreclr#4724 by explicitly
and unconditionally setting DebugType and Optimize flags for various test
project files.
The projects that were fixed are those that did not specify any debug
flag settings at all. The fix is to set DebugType to PdbOnly and to set
Optimization to true, unless the test has an _r or _rel suffix, in which
case Optimization is set false.
This impacts 1497 projects, skipping over 311 projects flagged as needing
fixes. The projects that remain are the CodeGenBringUp set (for which we plan
to clone projects to test the various flag combinations), projects that
specify flags but do so in ways where the effective flag settings may vary
from DBG to RET, projects that specify the flags redundantly, or projects
where the flags are not consistent with the "test case name suffix" rules.
The edits were done by a tool using linq-to-xml and so some incidental
reformatting has happened.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f60e421e3cc6c6c7160bc3b679e8a08530ae275a
Michelle McDaniel [Tue, 21 Feb 2017 19:35:04 +0000 (11:35 -0800)]
Fix x86 perf testing
We did not use a different architecture in run-xunit-perf.cmd, so all the
x86 runs were uploading to the same architecture. This change fixes it so
x86jit32 runs upload to their own architecture. Also fixes the delayed
expansion issue for testenv.
Commit migrated from https://github.com/dotnet/coreclr/commit/
be7cd4d6b59d65b5a74feb8a698b90b641732cec
Michal Strehovský [Wed, 22 Feb 2017 00:37:04 +0000 (16:37 -0800)]
Use CORINFO_CALLCONV to check for unmanaged calls (dotnet/coreclr#9697)
`GTF_CALL_UNMANAGED` is a member of the wrong enum and it's something
that would be set on `call->gtFlags` except that at this point it isn't.
Check against the actual unmanaged calling conventions.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0b4e58ac7a455640a5410b6f647ca3044426ea56
SaeHie Park [Wed, 22 Feb 2017 00:26:21 +0000 (09:26 +0900)]
[x86/Linux] Fix framepointer while unwinding (dotnet/coreclr#9678)
Use pCallerContext when getting frame pointer
Commit migrated from https://github.com/dotnet/coreclr/commit/
2d7eedbbfd0d259659517ca68de05b82ec7f87a5
Pat Gavlin [Tue, 21 Feb 2017 23:15:22 +0000 (15:15 -0800)]
Add a regression test.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ea0a3cd0967abdfd0ab6392a82cae45568d14503
Gaurav Khanna [Tue, 21 Feb 2017 22:07:58 +0000 (14:07 -0800)]
Merge pull request dotnet/coreclr#9703 from wtgodbe/CrossgenCode
Have Crossgen Failures exit in a dedicated exit routine
Commit migrated from https://github.com/dotnet/coreclr/commit/
ccd082706fb108fe813b98a12da46fe551983c71
Pat Gavlin [Tue, 21 Feb 2017 21:29:34 +0000 (13:29 -0800)]
Correctly pass 12-byte GT_SIMD nodes on x86.
During lowering, all TYP_SIMD12 GT_SIMD nodes are retyped to TYP_SIMD16.
This is correct except in the case that the GT_SIMD node is going to be
passed by-value on x86, in which case this retyping causes us to push 16
bytes rather than 12. This change recognizes a GT_SIMD node that has
been retyped by checking the value of gtSIMDSize during LowerArg and
uses TYP_SIMD12 for the putarg instead of TYP_SIMD16 (aside from
differences in detecting retyped nodes, this is the same transformation
we already do when passing TYP_SIMD12 lclVars that are being used as
TYP_SIMD16 on x86).
Fixes https://github.com/dotnet/corefx/issues/15913.
Commit migrated from https://github.com/dotnet/coreclr/commit/
57c83fb63d8d8f442f9c7d0c93cb4f722eead545
wtgodbe [Tue, 21 Feb 2017 20:38:46 +0000 (12:38 -0800)]
Have Crossgen Failures exit in a dedicated exit routine
Commit migrated from https://github.com/dotnet/coreclr/commit/
13ffcc4fcfc3220e4fdf47878ff4be8297361201
Jarret Shook [Tue, 21 Feb 2017 19:23:09 +0000 (11:23 -0800)]
Merge pull request dotnet/coreclr#9695 from jashook/up_timeout_for_arm64_gcstress
Up the timeout for gcstress arm64 jobs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8fa99f1cd6fcf4323ee71ab0202b40fb125c5014
jashook [Tue, 21 Feb 2017 18:05:10 +0000 (10:05 -0800)]
Up the timeout for gcstress arm64 jobs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff4806c00a6e687fe26dfea47c703982865dea32
Mikhail Filippov [Tue, 21 Feb 2017 17:26:58 +0000 (20:26 +0300)]
Fix compilation on macOS with case sensitive FS (dotnet/coreclr#9693)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a3af468e2f731e2d7b071fb82bd2eeb62cd8db0d
Bruce Bowyer-Smyth [Tue, 21 Feb 2017 17:25:18 +0000 (03:25 +1000)]
Improve string.Equals OrdinalIgnoreCase performance for matching chars (dotnet/coreclr#9213)
* Improve string.Equals OrdinalIgnoreCase performance for matching chars
* Added code comment
Commit migrated from https://github.com/dotnet/coreclr/commit/
2f9cfd3778e91c57f5fec482e873e2569a505c3e
Jonghyun Park [Tue, 21 Feb 2017 14:33:55 +0000 (23:33 +0900)]
Add --xunitOutputPath option to runtest.sh (dotnet/coreclr#9646)
Commit migrated from https://github.com/dotnet/coreclr/commit/
6fbc4b8484c8259a4a8ff1ca985a52c9ab559e69
Jonghyun Park [Tue, 21 Feb 2017 14:01:29 +0000 (23:01 +0900)]
Clean up FixupDispatcherContext (dotnet/coreclr#9685)
Commit migrated from https://github.com/dotnet/coreclr/commit/
889a3f148ed3f056f2653cef0c6400a533b7e72c
Jonghyun Park [Tue, 21 Feb 2017 13:47:11 +0000 (22:47 +0900)]
Use ADJUST_PC_UNWOUND_TO_CALL instead of _TARGET_XXX_ (dotnet/coreclr#9686)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e825dc96cf9ad32134bbaac4d1fbd2008f025ed2
Andy Ayers [Mon, 20 Feb 2017 15:53:14 +0000 (07:53 -0800)]
Merge pull request dotnet/coreclr#9676 from parjong/fix/issue_9576
Fix bogus assert in flowgraph and update related ilproj
Commit migrated from https://github.com/dotnet/coreclr/commit/
a188cca37c0ff413dfbdbac81b7cb0374be15ce1
Jonghyun Park [Mon, 20 Feb 2017 05:38:40 +0000 (14:38 +0900)]
Rewrite assert using bbInTryRegions
Commit migrated from https://github.com/dotnet/coreclr/commit/
401f6422475c54c78b57de7509333b1c529bfb9b
Jonghyun Park [Mon, 20 Feb 2017 01:40:26 +0000 (10:40 +0900)]
Update related .ilproj
Commit migrated from https://github.com/dotnet/coreclr/commit/
4781a16001529e9b918c5af51520ad8153c2e719
Jonghyun Park [Mon, 20 Feb 2017 01:31:43 +0000 (10:31 +0900)]
Fix formatting error
Commit migrated from https://github.com/dotnet/coreclr/commit/
2b21ed84563e545373fa5a91903815c8085096fb
Jonghyun Park [Mon, 20 Feb 2017 01:13:33 +0000 (10:13 +0900)]
Comment out bogus assert in flowgraph
Commit migrated from https://github.com/dotnet/coreclr/commit/
6415ab2205d01589de035616ef849ecf135b274b
Jarret Shook [Sun, 19 Feb 2017 19:03:31 +0000 (11:03 -0800)]
Merge pull request dotnet/coreclr#9672 from jashook/arm64_regression
Add new regression.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b957f8c3e3b11f0d77464befc185ce15d366adaf
Andy Ayers [Sun, 19 Feb 2017 06:39:31 +0000 (22:39 -0800)]
Merge pull request dotnet/coreclr#9671 from benaadams/revert-encoding
Revert "Fast-path for ASCII & UTF8 Encoding ASCII data (dotnet/coreclr#9187)"
Commit migrated from https://github.com/dotnet/coreclr/commit/
10f5043c4887abaaaff61ec0f3071a2113923876
Dan Moseley [Sun, 19 Feb 2017 05:47:48 +0000 (21:47 -0800)]
Merge pull request dotnet/coreclr#9670 from stephentoub/cs_random
Delay Random allocation in ConcurrentStack
Commit migrated from https://github.com/dotnet/coreclr/commit/
89f9727eb48519349bbc5579fe632177c1dd60ae
jashook [Sun, 19 Feb 2017 05:28:45 +0000 (21:28 -0800)]
Add new regression.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b48f393f063108a13087bc62670048c4a6f4e4de
Ben Adams [Sun, 19 Feb 2017 05:03:51 +0000 (05:03 +0000)]
Revert "Fast-path for ASCII & UTF8 Encoding ASCII data (dotnet/coreclr#9187)"
This reverts commit dotnet/coreclr@
77e676be9fab34471c4ae9f16a7a51a06bd470ee.
Commit migrated from https://github.com/dotnet/coreclr/commit/
16bdf3f073496a2c52dd76eb4c85bcd9a89b21a1
Andy Ayers [Sun, 19 Feb 2017 01:42:43 +0000 (17:42 -0800)]
Merge pull request dotnet/coreclr#9661 from AndyAyersMS/FixTailCallStress1
JIT: tolerate GT_COMMA in tail call position
Commit migrated from https://github.com/dotnet/coreclr/commit/
33bed49911bb2b86e0b2fa685e345319be10080e
Stephen Toub [Sun, 19 Feb 2017 01:17:34 +0000 (20:17 -0500)]
Remove a few explicit static cctors (dotnet/coreclr#9669)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3a6af9d433115c6d84cb7bc8028aabd55aef8b1c
Gaurav Khanna [Sun, 19 Feb 2017 00:09:12 +0000 (16:09 -0800)]
Merge pull request dotnet/coreclr#9665 from sdmaclea/PR-ARM64-PT_KNONVOLATILE
[ARM64] Use PT_KNONVOLATILE... for cross
Commit migrated from https://github.com/dotnet/coreclr/commit/
c023b234a65afa62fd6c602fb50208490ffeb976
Stephen Toub [Sat, 18 Feb 2017 23:32:20 +0000 (15:32 -0800)]
Delay Random allocation in ConcurrentStack
Commit migrated from https://github.com/dotnet/coreclr/commit/
f81185ff4cc3c06224f49e696257c2e4f52e4c35
Ben Adams [Sat, 18 Feb 2017 18:47:36 +0000 (18:47 +0000)]
Fast-path for ASCII & UTF8 Encoding ASCII data (dotnet/coreclr#9187)
Commit migrated from https://github.com/dotnet/coreclr/commit/
77e676be9fab34471c4ae9f16a7a51a06bd470ee
Steve MacLean [Sat, 18 Feb 2017 09:15:26 +0000 (04:15 -0500)]
[Arm64/Unix] Fix cmake race condition (dotnet/coreclr#9666)
On a clean build SET(REQUIRE_LLDBPLUGIN false) was being ignored because the cmake
cache variable had not been created
Change order of cmake file to be more natural and to resolve
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8200ab5d2c1a76458f76e1724f3d760eb2a6ecd
Sivarv [Sat, 18 Feb 2017 06:29:47 +0000 (22:29 -0800)]
Merge pull request dotnet/coreclr#9667 from sivarv/backout
Back-out promotion of structs containing fields of struct of single field
Commit migrated from https://github.com/dotnet/coreclr/commit/
9320dcd74bb43af5ff03eee21863bdc8abc9051e
sivarv [Sat, 18 Feb 2017 04:17:13 +0000 (20:17 -0800)]
Backout promotion of structs containing fields of struct of single field.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a3c4de10600c10dc7df786fbb9b346bc786ae8f0
[ARM64] Use PT_KNONVOLATILE... for cross
In order to enable cross compilation support, ARM64
needs to use PT_KNONVOLATILE_CONTEXT_POINTERS
Commit migrated from https://github.com/dotnet/coreclr/commit/
1e08eb2be580d27c7d0cffdecc8bfd93e70e407e
Andy Ayers [Sat, 18 Feb 2017 01:17:34 +0000 (17:17 -0800)]
Merge pull request dotnet/coreclr#9657 from AndyAyersMS/FixFinallyChainMergeAssert
JIT: relax assert in fgMergeFinallyChains
Commit migrated from https://github.com/dotnet/coreclr/commit/
f685d633c131a17cbfdc1ef1ae6ad8a56779a135
Sivarv [Fri, 17 Feb 2017 22:21:33 +0000 (14:21 -0800)]
Merge pull request dotnet/coreclr#9636 from sivarv/shouldPromote
Refactor some of fgPromoteStruct() checks into lvaCanPromoteStructVar() and lvaShouldPromoteStructVar()
Commit migrated from https://github.com/dotnet/coreclr/commit/
380cda50c89fa4534b9b8f144d1ecec0bb5d584b
Andy Ayers [Fri, 17 Feb 2017 22:02:12 +0000 (14:02 -0800)]
JIT: tolerate GT_COMMA in tail call position
Now that we can tail call from inlined call sites, we may see the call
embedded in a GT_COMMA, if the call's return value is ignored. This triggered
an assert the tail call transformation.
Closes dotnet/coreclr#9641.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f54472efaf841cdcaf01dfe6263b91976045dc1e
chcosta [Fri, 17 Feb 2017 20:47:10 +0000 (12:47 -0800)]
Merge pull request dotnet/coreclr#9658 from chcosta/fix_coreclr_packaging
Exclude ni files from linux arm32 builds
Commit migrated from https://github.com/dotnet/coreclr/commit/
fcbfefa9c8c1beb0cd7f58bdbac1bfed3b55052c
Jiyoung Giuliana Yun [Fri, 17 Feb 2017 20:43:52 +0000 (05:43 +0900)]
Synchronous toolchain.cmake files with CoreFX (dotnet/coreclr#9409)
Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
849ad718ba1fe739ac1264fddc0609e67b95816f
Pat Gavlin [Fri, 17 Feb 2017 20:13:25 +0000 (12:13 -0800)]
Merge pull request dotnet/coreclr#8843 from mikedn/decompose-cast-mul
Improve int->long cast decomposition
Commit migrated from https://github.com/dotnet/coreclr/commit/
43c54ac30145db2d47f4b36e01f09ffda55b30b4
Joseph Tremoulet [Fri, 17 Feb 2017 19:40:17 +0000 (14:40 -0500)]
Merge pull request dotnet/coreclr#9615 from JosephTremoulet/UpdateCompareVN
Update array length compare value numbers on CSE
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c7dcced6dee612d221a10621bf616604a5625a5
Dan Moseley [Fri, 17 Feb 2017 19:18:50 +0000 (11:18 -0800)]
Merge pull request dotnet/coreclr#9649 from dotnet-bot/master-UpdateDependencies
Update CoreFx to beta-25017-02 (master)
Commit migrated from https://github.com/dotnet/coreclr/commit/
45cad42ae0345e0b7f07ad8d6503d4582c13bae0
Dan Moseley [Fri, 17 Feb 2017 19:13:59 +0000 (11:13 -0800)]
Merge pull request dotnet/coreclr#9228 from fujiy/fixcorefx4805
Add/Expose String.EndsWith(char) and String.StartsWith(char)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5e62652d9bdd65de5d63271bd5d55979dd491501
Russ Keldorph [Fri, 17 Feb 2017 19:03:05 +0000 (11:03 -0800)]
Merge pull request dotnet/coreclr#9656 from RussKeldorph/corefx_x86
Fix corefx x86 testing and small netci.groovy fixes
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4744e3ae844e4d2f982352c2da7f2ff35c3a796
Christopher Costa [Fri, 17 Feb 2017 18:46:41 +0000 (10:46 -0800)]
Remove ubuntu 16.10 arm build from packaging
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d029a774109c462cf7a3f7f4a821fe3a7a6e4ae
Steve MacLean [Fri, 17 Feb 2017 18:25:37 +0000 (13:25 -0500)]
[ARM64/Unix] (dotnet/coreclr#9500)
* [Arm64/Unix] Update arm64 *.S files to match *.asm
* [Arm64/Unix] Fix CONTEXTToNativeContext()
* [Arm64/Unix] ThrowExceptionFromContextInternal
* [Arm64/Unix] Preserve x8 argument register
* [ARM64/Unix] Add CFI directives
Add native unwind info
* [Arm64/Unix] Fix RtlRestoreContext
* [Arm64/Unix] Restore FP from CurrentContextPointers
* [Arm64/Unix] fix pointer math
* [Arm64/Unix] Fix CallDescrWorkerInternal personality
* [Arm64/Unix] More Fp fixups
* [Arm64/Unix] CallEHFunclet machine state
Restore non-volatile machine state in CallEHFunclet
* [Arm64/Unix] CallDescrWorkerInternal
Use empty stack slot to save argument
* [Arm64/Unix] RtlVirtualUnwind update pointers
* [Arm64] LazyMachState fixes
* [Arm64/Unix] disable USE_REDIRECT_FOR_GCSTRESS
When FEATURE_PAL is enableds USE_REDIRECT_FOR_GCSTRESS
is not supported
* [Arm64] ClearRegDisplayArgumentAndScratchRegisters()
* [Arm64] Remove unnecesary copy in TransitionFrame
* [Arm64/Unix] Fix comment per review
* [Arm64/Unix] move constants per review
* [Arm64/Unix] Use ldp per review
Also fix indentation
* [Arm64/Unix] Fix indentation per review
* [Arm64/Unix] Remove m_Unwound per review comments
* [Arm64/Unix] Use PREPARE_EXTERNAL_VAR to access globals
* [Arm64/Unix] Fix more whitespace per earlier review comments
Commit migrated from https://github.com/dotnet/coreclr/commit/
9baa44aa334cf6f032e4abeae10dc1b960aaeb57
Christopher Costa [Fri, 17 Feb 2017 18:23:20 +0000 (10:23 -0800)]
Remove contraction from property name
Commit migrated from https://github.com/dotnet/coreclr/commit/
df7e04de090091845944ea0014984c57a8bd79e4
Christopher Costa [Fri, 17 Feb 2017 18:20:58 +0000 (10:20 -0800)]
Exclude ni files from linux arm32 builds
Commit migrated from https://github.com/dotnet/coreclr/commit/
93b0aab44386eb5f297bc86ccaabdf125e55ce8f
Russ Keldorph [Fri, 17 Feb 2017 17:12:04 +0000 (09:12 -0800)]
Fix corefx x86 testing and small netci.groovy fixes
run-corefx-tests.py fixes
- Switch to using the same corefx build switches as the corefx CI.
netci.groovy fixes
- Add COMPlus_Ready2Run=0 to existing ZapDisable jobs to get the coverage
we intended to have in these jobs. Previously, R2R images were slipping
through.
- Add architecture to the trigger strings fore corefx jobs so it's
possible to request x86 corefx runs.
- Add the -u option to python command line in netci.groovy so Python
output is synchronized with subcommand output in the CI logs.
- Fix whitespace in name formatting of corefx_baseline jobs
- Remove trailing (sorry, my editor did this and now it is too hard to
undo. Add ?w=1 to Github diff URL to filter out ws diffs.)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9ce6f601426c86d48c1c8a78b3558c7456caa719
Jarret Shook [Fri, 17 Feb 2017 16:27:18 +0000 (08:27 -0800)]
Merge pull request dotnet/coreclr#9580 from sdmaclea/PR-ARM64-CROSSGENFAILS
[Arm64/Unix] Add crossgen fails
Commit migrated from https://github.com/dotnet/coreclr/commit/
9f4aae6ac42f846473e6f70f2ac19e8910c97ccc
Andy Ayers [Fri, 17 Feb 2017 16:04:55 +0000 (08:04 -0800)]
JIT: relax assert in fgMergeFinallyChains
In some rare and likely IL-only cases the jit may create unreachable
callfinallys. This trips up finally chain merging since it spots a
merge opportunity but no merge actually happens.
Relax the assertion checks so that `canMerge && !didMerge` is now ok.
Closes dotnet/coreclr#9651.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fc8c7ec56bc1cab1525c879f2c4776766830ab67
dotnet-bot [Fri, 17 Feb 2017 15:07:22 +0000 (15:07 +0000)]
Update CoreFx to beta-25017-02
Commit migrated from https://github.com/dotnet/coreclr/commit/
44eecaafa970523a4975fb92995be89fd14be8b2
Hanjoung Lee [Fri, 17 Feb 2017 11:39:26 +0000 (20:39 +0900)]
[x86/Linux] Remove unnecessary x86-specific part (dotnet/coreclr#9627)
This inlined assembly is no longer necessary for x86.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6570085031f7a03bd42cca3ffd82b00122d5e2a3
Jonghyun Park [Fri, 17 Feb 2017 11:11:46 +0000 (20:11 +0900)]
Clean up nested WIN64EXCEPTIONS (dotnet/coreclr#9644)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce0886d2cfd3f784a11a08e85ea5e4b98120afca
Jonghyun Park [Fri, 17 Feb 2017 09:27:17 +0000 (18:27 +0900)]
Clean up dummy implementation in regdisp.h (dotnet/coreclr#9643)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0143d5ca5bf5a14dfd9f4286b1b062352a95bf2e
Jonghyun Park [Fri, 17 Feb 2017 09:19:16 +0000 (18:19 +0900)]
[x86/Linux] Fix GetCallerSp (dotnet/coreclr#9384)
* [x86/Linux] Fix GetCallerSp
* Do NOT pop stack argument for TransitionFrame
* Add ResumeEsp to CONTEXT
Commit migrated from https://github.com/dotnet/coreclr/commit/
00fc8f9f212bc00eda9c94707b50e278d9b8d7c4
Drew Scoggins [Fri, 17 Feb 2017 08:45:22 +0000 (00:45 -0800)]
Merge pull request dotnet/coreclr#9645 from DrewScoggins/EmptyVariableFix
Fix x64 perf run break
Commit migrated from https://github.com/dotnet/coreclr/commit/
c75fee493ec0eb8b4ac57ac3ff69281531218386
Drew Scoggins [Fri, 17 Feb 2017 07:39:53 +0000 (23:39 -0800)]
Fix x64 perf run break
After the checkin to add legacy JIT testing support for x86 we broke x64
runs. THe issue is that we do not pass anything in to the TEST_ENV
variable on x64 and when a variable is empty and you attempt to use the
if exists syntax you fail. I have added a nonsense file name that we
set this to before we go through the args loop. I was not able to find a
better solution and want to get the lab unblocked, but any batch masters
feel free to solve this the right way.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ea4f8d694791b55b8ad088e93376b47d37e2410
Dan Moseley [Fri, 17 Feb 2017 05:45:12 +0000 (21:45 -0800)]
Merge pull request dotnet/coreclr#9642 from dotnet-bot/master-UpdateDependencies
Update CoreFx to beta-25017-01 (master)
Commit migrated from https://github.com/dotnet/coreclr/commit/
07ff08e604668610dcac16228d28b185f47e00c8
Dan Moseley [Fri, 17 Feb 2017 05:44:36 +0000 (21:44 -0800)]
Merge pull request dotnet/coreclr#9639 from parjong/fix/wrong_comment
Fix wrong comment
Commit migrated from https://github.com/dotnet/coreclr/commit/
c21e5d4d0fe5199040822b0ae30e4d1eb437e157