Aditya Mandaleeka [Mon, 2 May 2016 18:53:13 +0000 (11:53 -0700)]
Merge pull request dotnet/coreclr#4637 from adityamandaleeka/synch_cleanup
Remove SYNCHMGR_PIPE_BASED_THREAD_BLOCKING and clean up synchmanager
Commit migrated from https://github.com/dotnet/coreclr/commit/
ede2e6e2677ea633311d9041516e16a0ee6fc33c
Jan Kotas [Mon, 2 May 2016 18:05:17 +0000 (11:05 -0700)]
Merge pull request dotnet/coreclr#4709 from myungjoo/fix/4682
Match Inconsistent CMake/MSBuild Compiler Definitions
Commit migrated from https://github.com/dotnet/coreclr/commit/
a91aee5ca088e5d80835fc593d72d9cacd5d7480
Jan Kotas [Mon, 2 May 2016 17:49:32 +0000 (10:49 -0700)]
Merge pull request dotnet/coreclr#4688 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
7dd56b48bd99a776e8e7dd3638f59191c5013e9b
Bruce Forstall [Mon, 2 May 2016 17:26:23 +0000 (10:26 -0700)]
Merge pull request dotnet/coreclr#4692 from BruceForstall/FuncInfo
Add support for easily collecting JitFuncInfoLogFile for the tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
331031d2ca845025dffcaafcd8f8649ffc4db877
Mike McLaughlin [Mon, 2 May 2016 17:06:21 +0000 (10:06 -0700)]
Merge pull request dotnet/coreclr#4543 from krytarowski/netbsd-support-73
NetBSD limits name of a semaphore to 15 characters (inc. null)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b8a7a8258b8c4a3a39c416a64d221b4ac81fef48
Kyungwoo Lee [Mon, 2 May 2016 16:53:33 +0000 (09:53 -0700)]
Merge pull request dotnet/coreclr#4621 from kyulee1/floatarg
ARM64: Enable Varargs with float argument.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6434710d0259795f12d1e693cfb1766aff060d61
Kyungwoo Lee [Wed, 27 Apr 2016 14:40:19 +0000 (07:40 -0700)]
ARM64: Enable Varargs with float argument.
Fixes https://github.com/dotnet/coreclr/issues/2989
ARM64 ABI does not allow float register arguments for vararg calls.
All such float arguments should be copied to integer registers.
In Lower, I explicitly add a GT_COPY for such case and support the code-gen
to expand it properly using `fmov`.
I also skip genFnPrologCalleeRegArgs() for vararg since we've already
saved all integer registers in the prolog.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3b6637462b86bb921857b71973400cedcd97614b
Kyungwoo Lee [Mon, 2 May 2016 16:32:09 +0000 (09:32 -0700)]
Merge pull request dotnet/coreclr#4699 from kyulee1/testlst
ARM64: Tests.lst Update
Commit migrated from https://github.com/dotnet/coreclr/commit/
18c69dba7a9cb5766884f65327c1e24b67d90c6f
Andy Ayers [Mon, 2 May 2016 16:06:16 +0000 (09:06 -0700)]
Merge pull request dotnet/coreclr#4689 from AndyAyersMS/NoInlineRange
Implement JitNoInlineRange
Commit migrated from https://github.com/dotnet/coreclr/commit/
07982f3ad47d305dec74a7ae40a8ab41d88953b9
Bruce Forstall [Fri, 29 Apr 2016 22:52:43 +0000 (15:52 -0700)]
Add support for easily collecting JitFuncInfoLogFile for the tests
Simply uncomment one of the three methods for doing the collection in
the ryujit_x86_testenv.cmd file.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d1d1424fe501fbfe9e45e01f753205abe4ed3be6
Yi Zhang (CLR) [Mon, 2 May 2016 07:42:57 +0000 (00:42 -0700)]
Merge pull request dotnet/coreclr#4710 from yizhang82/array_warn_fix
Fix warnings in ByValArray
Commit migrated from https://github.com/dotnet/coreclr/commit/
e18a26aabee632497cbf4be6258c3c930d004824
Russ Keldorph [Mon, 2 May 2016 04:49:44 +0000 (21:49 -0700)]
Merge pull request dotnet/coreclr#4707 from RussKeldorph/gcincomp
Mark some GC tests incompatible with GCStress
Commit migrated from https://github.com/dotnet/coreclr/commit/
4d1c4398863afdf5d6511d69402eb2123eec2327
Russ Keldorph [Mon, 2 May 2016 04:44:09 +0000 (21:44 -0700)]
Merge pull request dotnet/coreclr#4704 from RussKeldorph/lotsofinlines
Mark LotsOfInlines tests as optimization-sensitive
Commit migrated from https://github.com/dotnet/coreclr/commit/
edd4739dfc865a14dafcd0c97c70e7ec4dab70b3
Yi Zhang (CLR) [Mon, 2 May 2016 04:03:03 +0000 (21:03 -0700)]
Fix warnings
Commit migrated from https://github.com/dotnet/coreclr/commit/
de7fb68db2c83cb31927270d97bf993437cf61c4
Jonghyun Park [Mon, 2 May 2016 02:09:50 +0000 (11:09 +0900)]
Fix dotnet/coreclr#4496 (dotnet/coreclr#4503)
* Fix dotnet/coreclr#4496
This commit revises legecy codegen to inserts a bkpt instruction if the current BB
and next BB is not in the same exception handling region.
This code is backported from ARM64 codegen.
* Update ControlPcIsUnwound in UnwindManagedExceptionPassX
* Enable only for ARM32
Enable the patch only for ARM32 in order to fix build break in other
architecture.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0a889368329270f766686f45f69a47082d18e252
MyungJoo Ham [Mon, 2 May 2016 01:58:49 +0000 (10:58 +0900)]
Disable WIN32_REGISTRY for UNIX platforms
Unlike managed build scripts, FEATURE_WIN32_REGISTRY has been
enabled for UNIX-like systems in CMake native build scripts.
Fix dotnet/coreclr#4682 part 3.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
8d55cd34e8192ac9679e7f1b34b0b1709154c943
John Chen [Sun, 1 May 2016 08:15:42 +0000 (01:15 -0700)]
Merge pull request dotnet/coreclr#4556 from JohnChen0/r2r
Ready-to-Run support for generic methods without generic dictionary
Commit migrated from https://github.com/dotnet/coreclr/commit/
84e2177f7844f7cf1ee2c7ae689396170d6a522a
Russ Keldorph [Sun, 1 May 2016 06:16:41 +0000 (23:16 -0700)]
Mark some GC tests incompatible with GCStress
These tests rely on counting numbers of collections, which is unreliable
(or at best different than what the test expects) under GCStress.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2fcfdc4c87229a4d884eb1b25cac79d6f3f3648
John Chen (CLR) [Mon, 25 Apr 2016 08:55:00 +0000 (01:55 -0700)]
Support generic methods without generic dictionary
Commit migrated from https://github.com/dotnet/coreclr/commit/
9d2590dc37aea56bee9f03d2597eaa1ce1bb62c5
Russ Keldorph [Sun, 1 May 2016 04:24:18 +0000 (21:24 -0700)]
Mark LotsOfInlines tests as optimization-sensitive
The LotsOfInlines test times out under COMPlus_JitStress=1.
(http://dotnet-ci.cloudapp.net/job/dotnet_coreclr/job/master/job/x64_checked_windows_nt_jitstress1/48/testReport/).
This change disables it from running under JitStress modes that might
affect optimizations required for it to run in reasonable time.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f905eebbdee855daeeee39d79feefd5ca8362702
Mike McLaughlin [Sat, 30 Apr 2016 18:55:55 +0000 (11:55 -0700)]
Merge pull request dotnet/coreclr#4653 from mikem8361/shimrace
Fix issue dotnet/coreclr#4298 "SIGSEGV_libcoreclr.so!Debugger::GetArgCount"
Commit migrated from https://github.com/dotnet/coreclr/commit/
ae0b815a0483ebdc861da14d41f3f4c10d3a477a
Kyungwoo Lee [Sat, 30 Apr 2016 14:07:54 +0000 (07:07 -0700)]
ARM64: Test.lst Update
Fixes https://github.com/dotnet/coreclr/issues/3970
Fixes https://github.com/dotnet/coreclr/issues/4411
Since https://github.com/dotnet/coreclr/pull/4655 is merged, these tests
seem to be passed in the lab.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9d67164b600977e2b02de158a17d9eee20f831c7
Kyungwoo Lee [Sat, 30 Apr 2016 14:02:54 +0000 (07:02 -0700)]
Merge pull request dotnet/coreclr#4687 from kyulee1/zap
ARM64: Enabling Crossgen End-to-End Mscorlib
Commit migrated from https://github.com/dotnet/coreclr/commit/
960ab5c916e371bf6d05fe4407c874cce3066063
Aditya Mandaleeka [Sat, 30 Apr 2016 02:46:17 +0000 (19:46 -0700)]
Merge pull request dotnet/coreclr#4698 from adityamandaleeka/fix_ci_corefxbins
Fix CI: Update directory check for case with multiple CoreFX directories
Commit migrated from https://github.com/dotnet/coreclr/commit/
5224df88a12d00f51fa04ee0e6a25e14eaeaebda
Aditya Mandaleeka [Sat, 30 Apr 2016 02:20:54 +0000 (19:20 -0700)]
Use Unix version of WORKSPACE.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2857e839ac16de85d3f14a822200984e3029198c
Aditya Mandaleeka [Sat, 30 Apr 2016 02:15:30 +0000 (19:15 -0700)]
Update directory check for case with multiple CoreFX directories.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e7c4d9625412f4788785c5d2925ab7a54326409d
Michelle McDaniel [Sat, 30 Apr 2016 01:24:09 +0000 (18:24 -0700)]
Merge pull request dotnet/coreclr#4691 from adiaaida/longOperators
Separate NYIs for arithmetic operators on longs
Commit migrated from https://github.com/dotnet/coreclr/commit/
6c933f666a4c87fa3fff3ace45b1d27ecb2ad75a
Andy Ayers [Wed, 27 Apr 2016 21:22:35 +0000 (14:22 -0700)]
Implement JitNoInlineRange
Rework and cleanup ConfigMethodRange. Give it a configurable size. Do
some error detection when parsing the range string. Update comments
and add notes at existing usage sites about the behavior when the
range string is not specified.
Use ConfigMethodRange to implement a JitNoInlineRange option that
suppresses inlining in a specified set of methods. Set this up so
inlning still happens if the range string is empty. Choose capacity so
it can hold the entire range string's set of ranges. Add a new
observation for the cases where enabling this JIT option disables
inlines.
Make compMethodHash available for INLINE_DATA builds. Report this hash
in the Xml inline dumps, so it can provide hash values to feed into
JitNoInlineRange strings.
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf5f1b19e6b331997477a04ed1c75cd3903fb1e7
Aditya Mandaleeka [Sat, 30 Apr 2016 01:18:50 +0000 (18:18 -0700)]
Merge pull request dotnet/coreclr#4695 from adityamandaleeka/fix_ci_corefxbins
Modify CI to pass in multiple CoreFX bin directories
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce442ea8588c586915d2f598b852d8125edfd77f
Aditya Mandaleeka [Sat, 30 Apr 2016 00:26:38 +0000 (17:26 -0700)]
Add cascading CoreFX directories to Unix CI run
Commit migrated from https://github.com/dotnet/coreclr/commit/
a169b30d9f8b041249c13994d1314c9a43a3f1bd
Aditya Mandaleeka [Sat, 30 Apr 2016 00:15:40 +0000 (17:15 -0700)]
Allow multiple CoreFX bin directories to be specified in runtest.sh.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0f102c524429678f3c5922c9940d2e98254cfffb
Michelle McDaniel [Fri, 8 Apr 2016 17:10:42 +0000 (10:10 -0700)]
Separate NYIs for arithmetic operators on longs
To make it more obvious which long operators are causing the NYI to hit,
split out the different operators with their own NYI.
Commit migrated from https://github.com/dotnet/coreclr/commit/
048e057642a36483893f1fe7d705c839847b2873
Bruce Forstall [Fri, 29 Apr 2016 22:26:33 +0000 (15:26 -0700)]
Merge pull request dotnet/coreclr#4676 from BruceForstall/x86Testing
Change RyuJIT/x86 testing
Commit migrated from https://github.com/dotnet/coreclr/commit/
93074f1f28f147727affc5672b28545b7968e05d
Bruce Forstall [Fri, 29 Apr 2016 03:03:03 +0000 (20:03 -0700)]
Change RyuJIT/x86 testing
Change the RyuJIT/x86 test runs so we don't set COMPLUS_AltJitAssertOnNYI=1
by default. This means when the JIT hits an NYI, it falls back to
the legacy x86 back-end instead of raising an assert. The issues.targets
test exclusion file is changed to only exclude those tests that fail,
due to assert or silent bad codegen, in this mode, rather than the
(currently) much, much larger number of exclusions if COMPLUS_AltJitAssertOnNYI=1
is set.
The version of issues.targets is renamed as ryujit_x86_no_fallback_issues.targets.
This is a issues.targets file that contains exclusions for running
with RyuJIT/x86 and COMPLUS_AltJitAssertOnNYI=1, so NYI turn into
asserts.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9de31570146c2d957296f11c28f3a44c0401d5e6
Kyungwoo Lee [Fri, 29 Apr 2016 17:29:28 +0000 (10:29 -0700)]
ARM64: Enabling Crossgen End-to-End Mscorlib
Fixes https://github.com/dotnet/coreclr/issues/4350
Fixes https://github.com/dotnet/coreclr/issues/4615
This is a bit large change across VM/Zap/JIT to properly support crossgen
scenario.
1. Fix incorrect `ldr` encoding with size.
2. Enforce JIT data following JIT code per method by allocating them together.
This guarantees correct PC-relative encoding for such constant data access
without fix-up.
3. For the general fix-up data acceess, use `adrp/add` instruction pairs with fix-ups.
Two more relocations types are implemented in all sides.
4. Interface dispatch stub is now implemented which is needed for
interface call for crossgen.
I've verified hello world runs with mscorlib.ni.dll.
Commit migrated from https://github.com/dotnet/coreclr/commit/
45798f661f8c8c042f3582cde8b611d1c9c7343f
Kamil Rytarowski [Fri, 29 Apr 2016 21:35:19 +0000 (23:35 +0200)]
Treat NetBSD like FreeBSD and OSX in PAL_VirtualUnwind() (dotnet/coreclr#4551)
This fixes hangs in the runtime observed while running CoreFX managed tests.
Thanks @janvorli and @myungjoo
Fix dotnet/coreclr#4380
Commit migrated from https://github.com/dotnet/coreclr/commit/
0f81ad3359b817ba0735db78cef1bd2fcab555a9
shion [Fri, 29 Apr 2016 21:33:40 +0000 (16:33 -0500)]
Add query handling of IUnknown for MergeTokenManager and CMapToken (dotnet/coreclr#4563)
Commit migrated from https://github.com/dotnet/coreclr/commit/
66c8e59fcc4cbf384f2170aea07e9c968a7f97d7
shion [Fri, 29 Apr 2016 21:33:03 +0000 (16:33 -0500)]
Add query handling of ICLRPrivResource for Assembly::CLRPrivResourceAssembly (dotnet/coreclr#4562)
Commit migrated from https://github.com/dotnet/coreclr/commit/
14ecf5a950b248d2499fc18be322f4f8c606e4c6
Jonghyun Park [Fri, 29 Apr 2016 21:27:47 +0000 (06:27 +0900)]
Specify the signedness of 'char' in HFA testcases (dotnet/coreclr#4680)
In C#, sbyte always represents 8-bit signed interger.
However, the signedness of char in C is undefined, and the default
signedness of char in ARM is unsigned.
The native code for HFA test does not specify the signedness of char,
and thus the native code assumes that it is unsigned, but the managed
code assumes that it is signed, which leads to unittest failure in ARM.
This commit specifies the signedness of 'char' in order to fix dotnet/coreclr#4639.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d7a09f7dd6578abeca118c07bb23fd17c470ccbf
Pat Gavlin [Fri, 29 Apr 2016 20:23:52 +0000 (13:23 -0700)]
Eliminate SEH interactions between the JIT and the EE during verification.
For compatibility reasons, `BadImageFormatException`s that are thrown when resolving tokens
during verification are transformed instead into verification exceptions. This transformation
currently takes place in the JIT: the JIT wraps relevant calls to `ICorJitInfo::resolveToken` with
a `__try`/`__except` that handles any exceptions that arise due to invalid metadata. This method
cannot be relied on when consuming the JIT as a dynamic library on non-Windows platforms
due to type identity problems in the runtime's SEH emulation. Furthermore, these filters cannot
use the proposed solution to the JIT's other uses of SEH across the JIT/EE interface, since they
are more complex than a call to `ICorJitInfo::FilterException`. Instead, this change introduces a
new method, `ICorJitInfo::tryResolveToken`, which is only used during verification. This method
implements filtering that is equivalent to the current implementation, but does so in the EE rather
than in the JIT.
This is part of GitHub bugs dotnet/coreclr#3058 and dotnet/coreclr#4130.
[tfs-changeset: 1600443]
Commit migrated from https://github.com/dotnet/coreclr/commit/
f3a2277c8c37a29417562cfa478935ddbb801fe7
Swaroop Sridhar [Fri, 29 Apr 2016 20:11:48 +0000 (13:11 -0700)]
Merge pull request dotnet/coreclr#4655 from swaroop-sridhar/aagc3
ARM64: Update FP-context-pointer in ExceptionFrame
Commit migrated from https://github.com/dotnet/coreclr/commit/
23d0b7a74a67094c070af3477d06677bf19173d0
Lakshmi Priya [Fri, 29 Apr 2016 19:47:00 +0000 (12:47 -0700)]
Merge pull request dotnet/coreclr#4662 from Priya91/ubuntu1604
Remove Ubuntu15.10 support.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f03813fa76903cac9cd9db50b15d5903efdcd3e8
Mike McLaughlin [Tue, 26 Apr 2016 23:57:31 +0000 (16:57 -0700)]
Fix issue dotnet/coreclr#4298 "SIGSEGV_libcoreclr.so!Debugger::GetArgCount"
The fix is to remove the call to TerminateDebugger in the EE shutdown
path. The reason was to clean up the transport pipe files but that
still happens in coreclr_uninitialize called by the host.
Also added code to clean up the transport named pipes and semaphores
on the debugger side when it detects that the target process has
terminated before it sends the ExitProcess notification.
Plumbed the cleanup call from dbi's ExitProcess code through the
native pipe line to the transport and then to pipe code.
Add PAL_CleanupTargetProcess for the "continue" named semaphore cleanup.
Found and fixed a minor race in dbgshim register runtime startup.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9607acec3f53c4d7ac41b60d8a82affaee07832b
Bruce Forstall [Fri, 29 Apr 2016 18:01:57 +0000 (11:01 -0700)]
Merge pull request dotnet/coreclr#4670 from BruceForstall/Fix3596
Fix 3596: attempt to spill a returned fp local w/o a frame location
Commit migrated from https://github.com/dotnet/coreclr/commit/
bdedbc29af654cb896157cc99f262f9fedba48f0
Bruce Forstall [Fri, 29 Apr 2016 18:01:21 +0000 (11:01 -0700)]
Merge pull request dotnet/coreclr#4656 from BruceForstall/x86fp
Update RyuJIT/x86 XMM register definitions and usage
Commit migrated from https://github.com/dotnet/coreclr/commit/
a4f308ab5ee73323bb09c291746c30b21ba40ab4
Sean Gillespie [Fri, 29 Apr 2016 16:46:46 +0000 (09:46 -0700)]
Merge pull request dotnet/coreclr#4658 from swgillespie/gc-perf-typo
Fix a typo in GCMetrics that provides the wrong generation's statistics
Commit migrated from https://github.com/dotnet/coreclr/commit/
601b1051c1022d5f764224e35be59f02a6074ad0
MyungJoo Ham [Fri, 29 Apr 2016 10:38:58 +0000 (19:38 +0900)]
ARM Enable MulticoreJIT for mscorlib.dll build
The native parts of CoreCLR has kept FEATURE_MULTICOREJIT
for ARM devices from the beginning while MSCORLIB.DLL's
build scripts has kept it disabled for ARM.
Because many ARM devices are multicore and
the native part is using FEATURE_MULTICOREJIT anyway,
in order to remove the inconsistency, we enable
FEATURE_MULTICOREJIT for mscorlib build as well.
Fix dotnet/coreclr#4682 part 2.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
762162705bd9a11c82233b7162f5fee15d8ab548
MyungJoo Ham [Fri, 29 Apr 2016 10:34:36 +0000 (19:34 +0900)]
Ensure FEATURE_MANAGED_ETW isn't set for TargetUnix 2
The commit dotnet/coreclr@
82492f7fe7d91331508cb1bf9b33e2e9725d9898
has disabled FEATURE_MANAGED_ETW for UNIX builds.
However, the commit somehow omitted updating
CMakeList accordingly while updating msbuild scripts.
This patch does the same for CMake scripts.
Fixes dotnet/coreclr#4682 part 1.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
617e1311f42be82fcf3a1a9f6e9218cfaa1de8bf
Jiyoung Giuliana Yun [Fri, 29 Apr 2016 09:28:35 +0000 (18:28 +0900)]
enable build of arm-softfp cross target component. (dotnet/coreclr#4636)
Fix dotnet/coreclr#4635
Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
91b1067a8b6ebd43262e1578d02bf4fdcd6ba818
Rahul Kumar [Fri, 29 Apr 2016 06:07:56 +0000 (23:07 -0700)]
Merge pull request dotnet/coreclr#4652 from rahku/arm64EnableR2R
Enable ReadyToRun feature for arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
f38508be8b91cf50aac153514d5c2eb6d29eb3b4
MyungJoo Ham [Fri, 29 Apr 2016 05:15:19 +0000 (14:15 +0900)]
ARM: Fix compiler definition inconsistency (dotnet/coreclr#4673)
Fix the following inconsistency
CoreCLR-Native @ Linux/ARM: FEATURE_STUBS_AS_IL not defined
CoreCLR-Managed @ Linux/ARM: FEATURE_STUBS_AS_IL defined
This _partially_ fixes dotnet/coreclr#3635
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
eef33308b1e6d6bef2eb98d9e72a41d0e5584b61
Jonghyun Park [Fri, 29 Apr 2016 02:57:34 +0000 (11:57 +0900)]
Embrace bash message with " (dotnet/coreclr#4633)
This commit tries to fix dotnet/coreclr#4631.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4d360446f70d3fb72ff4f04e8119416e61678f81
Bruce Forstall [Fri, 29 Apr 2016 01:50:18 +0000 (18:50 -0700)]
Fix 3596: attempt to spill a returned fp local w/o a frame location
Instead of checking !lvRegister, check lvOnFrame.
Fixes dotnet/coreclr#3596.
Commit migrated from https://github.com/dotnet/coreclr/commit/
303fdbc7b4150fc6b01fe297f73cefa8758afc1a
Lakshmi Priya Sekar [Fri, 29 Apr 2016 01:21:08 +0000 (18:21 -0700)]
Remove Ubuntu15.10 support.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7d3789fcdca6fa702b292cd903946c397dbb3519
Gaurav Khanna [Fri, 29 Apr 2016 00:19:31 +0000 (17:19 -0700)]
Merge pull request dotnet/coreclr#4643 from gkhanna79/LoadJIT
Load JIT from a custom location
Commit migrated from https://github.com/dotnet/coreclr/commit/
a3617d5dc2de62d86c2c554d94f070315ff23aa8
Sean Gillespie [Fri, 29 Apr 2016 00:05:10 +0000 (17:05 -0700)]
Fix a typo in GCMetrics that provides the wrong generation's statistics
Commit migrated from https://github.com/dotnet/coreclr/commit/
06d8b35d150262abcac5ae1f46b1c7aed1162fed
Rahul Kumar [Wed, 20 Apr 2016 23:27:04 +0000 (16:27 -0700)]
Enable ReadyToRun feature for arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
ef161ab2bb87207f52c7db9472fd5a027dbe5f12
Bruce Forstall [Thu, 28 Apr 2016 22:03:41 +0000 (15:03 -0700)]
Update RyuJIT/x86 XMM register definitions and usage
Change the register definition to not include XMM8 through XMM15,
which are not available on x86.
Also, put a few things previously under _TARGET_AMD64_ instead
under !LEGACY_BACKEND to make them available for RyuJIT/x86.
There are more things to do to enable AVX. For example, size_t is
used for code bytes, but expects to be able to store >32 bits. This
work is just a start.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a8d1e1b6b0f2628d5aa031d547b08f144bf4a5bb
Swaroop Sridhar [Thu, 28 Apr 2016 21:50:40 +0000 (14:50 -0700)]
ARM64: Update FP-context-pointer in ExceptionFrame
Update the CurrentContextPointers for FP and LR registers
in FaultingExceptionFrame::UpdateRegDisplay()
This change fixes a few GCStress=0xC failures on ARM64.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c738dd88c4f29684d4b75afccb87be6ce8a196af
Brian Sullivan [Thu, 28 Apr 2016 21:19:02 +0000 (14:19 -0700)]
Merge pull request dotnet/coreclr#4632 from briansull/multireg-struct-promote
ARM64: Enable Struct Promotion for most Mutireg structs
Commit migrated from https://github.com/dotnet/coreclr/commit/
e9bc870cbba0178ae30c3cfdf65ba2ef2bdd229e
Bruce Forstall [Thu, 28 Apr 2016 20:32:16 +0000 (13:32 -0700)]
Merge pull request dotnet/coreclr#4646 from BruceForstall/Fix3516
Fix 3516: Change an emitter #ifdef _TARGET_AMD64_ to !LEGACY_BACKEND
Commit migrated from https://github.com/dotnet/coreclr/commit/
d81c96d505e549e48be03630555cdab7b0bf4eb3
Bruce Forstall [Thu, 28 Apr 2016 20:31:17 +0000 (13:31 -0700)]
Merge pull request dotnet/coreclr#4645 from BruceForstall/UpdateRyuJITx86Exclusions
Update RyuJIT/x86 test exclusion list
Commit migrated from https://github.com/dotnet/coreclr/commit/
fc0a1f760ffe09bc935712efeeca5a5aaa7be16c
Bruce Forstall [Thu, 28 Apr 2016 20:30:07 +0000 (13:30 -0700)]
Merge pull request dotnet/coreclr#4644 from BruceForstall/LocallocAndPSPSym
Improve AMD64 PSPSym behavior
Commit migrated from https://github.com/dotnet/coreclr/commit/
3593c4f00a93054d1507a621c6b11f8b45a9c300
Gaurav Khanna [Wed, 27 Apr 2016 23:35:21 +0000 (16:35 -0700)]
Load JIT from a custom location
Commit migrated from https://github.com/dotnet/coreclr/commit/
2385b697ea4eeaa7314fafd32415e943601211cf
Brian Sullivan [Thu, 28 Apr 2016 18:49:29 +0000 (11:49 -0700)]
Updated morph.cpp
Commit migrated from https://github.com/dotnet/coreclr/commit/
3409b720cb88934d7ee9dd1201357db926c26c4f
Bruce Forstall [Thu, 28 Apr 2016 15:24:13 +0000 (08:24 -0700)]
Improve AMD64 PSPSym behavior
The implementation for localloc in a function with EH, and hence with a PSPSym,
currently pops off the outgoing argument space, but not the adjacent PSPSym,
does the localloc allocation, then adjusts the stack pointer again to allocate
space for a PSPSym as well as the outgoing argument space. Finally, it copies
the PSPSym value to the new PSPSym location.
Thus, we end up with multiple copies of the PSPSym on the stack frame.
PSPSym is a RSP-relative local variable, so some users access the lowest
copy on the stack, while other users access the highest (original) copy
on the stack. (Funclets access the original copy because they get the
establisher frame as an argument, and the establisher frame for AMD64 is
the Initial-SP, the copy of RSP before any localloc has occurred.
Specifically, it is a fixed offset from the RBP frame pointer as specified
in the unwind info.)
This change makes several improvements:
1. The PSPSym is never copied during localloc processing. It turns out the
original copy is sufficient, and is always available. To make this work,
the PSPSym local var is changed to be frame pointer relative. We still locate
the PSPSym immediately above the outgoing argument space, lower than any
frame alignment space, so we need to set the PSPSym variable stack offset
specifically after the frame alignment has been calculated. We always have
a frame pointer with either EH or localloc. Thus, localloc will now allocate
the correct, minimal amount of (aligned) space. Note that localloc is commonly
used in IL stubs, so the benefits here are more widespread than might be expected
from just user code.
2. When generating code to call finally clauses, we would load up the PSPSym
as the first argument, as required by the calling convention for finallys.
However, if we are in a function without localloc, and are generating code
for the main function (not a funclet), then the value stored in the PSPSym
slot will be exactly the current value of the stack pointer. So, simply copy
RSP, which is smaller and simpler code.
Each of these changes improves code size. Even for functions without localloc,
accessing PSPSym via RBP instead of RSP is generally smaller.
This fixes dotnet/coreclr#4570.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e138040532dc3f99b868b0f142e6aadeea9ff89f
Bruce Forstall [Thu, 28 Apr 2016 18:15:25 +0000 (11:15 -0700)]
Update RyuJIT/x86 test exclusion list
1. Remove exclusions for dotnet/coreclr#3549, which is now fixed.
2. Add exclusion for new EH test case.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d82b4a80094514a116ff76402720dd7008b07d37
Bruce Forstall [Thu, 28 Apr 2016 18:10:46 +0000 (11:10 -0700)]
Merge pull request dotnet/coreclr#4622 from BruceForstall/FixCobolLegacyX86
Fix regression in internal Cobol test
Commit migrated from https://github.com/dotnet/coreclr/commit/
754ddf5385a2bc8290ef91b7648cdd4f759dec5a
Bruce Forstall [Thu, 28 Apr 2016 16:48:19 +0000 (09:48 -0700)]
Fix 3516: Change an emitter #ifdef from _TARGET_AMD64_ to !LEGACY_BACKEND
Commit migrated from https://github.com/dotnet/coreclr/commit/
20dba2ee0e9eb45e63a6b67f7ec3414216b4e0ea
Carol Eidt [Thu, 28 Apr 2016 16:28:35 +0000 (09:28 -0700)]
Merge pull request dotnet/coreclr#4611 from CarolEidt/Fix4412
Mark a multi-reg return type LclVar of GT_RETURN(LclVar) as DoNotEnregister
Commit migrated from https://github.com/dotnet/coreclr/commit/
1a0b0e31e8505621e065cb08ace408a12595fcf9
Michelle McDaniel [Thu, 28 Apr 2016 16:25:49 +0000 (09:25 -0700)]
Merge pull request dotnet/coreclr#4602 from adiaaida/x86Exclude
Add exclusions for RyuJIT x86 and x86 TestEnv
Commit migrated from https://github.com/dotnet/coreclr/commit/
ae6ed3e0d156455d4b2dd8792dab94acfb957854
Bruce Forstall [Wed, 27 Apr 2016 18:18:56 +0000 (11:18 -0700)]
Fix regression in internal Cobol test
The x86 (legacy backend) JIT was asserting because an optimization created the wrong size int constant node.
This was a regression introduced with https://github.com/dotnet/coreclr/pull/3385
Commit migrated from https://github.com/dotnet/coreclr/commit/
c6dcfd374c89a2a6f77818311d4eefbe6000c011
chunseoklee [Thu, 28 Apr 2016 13:27:07 +0000 (22:27 +0900)]
Linux Mint support for mscorlib.dll (dotnet/coreclr#4610)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ccbabf30d4d9bde05e9a843713b29542279cd92a
Evgeny Pavlov [Thu, 28 Apr 2016 11:38:51 +0000 (15:38 +0400)]
Initial support of lldb-3.8 for libsosplugin (dotnet/coreclr#4473)
Commit migrated from https://github.com/dotnet/coreclr/commit/
50d2b7c240cc2c6cd8419f13c33236f2d2e3e85c
Jan Kotas [Thu, 28 Apr 2016 11:35:47 +0000 (04:35 -0700)]
Refuse to compile references to nativecallable methods in R2R images (dotnet/coreclr#4627)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c8a355dc6c1f8211119ef149a069d803bd6a76f8
Jan Kotas [Thu, 28 Apr 2016 11:25:40 +0000 (04:25 -0700)]
Merge pull request dotnet/coreclr#4572 from JohnChen0/crossgen-createpdb
Enable crossgen /createpdb command on Windows
Commit migrated from https://github.com/dotnet/coreclr/commit/
2e0435a492f079f10e49d15ab17d54f72731dc29
Rama krishnan Raghupathy [Thu, 28 Apr 2016 05:38:31 +0000 (22:38 -0700)]
Merge pull request dotnet/coreclr#4614 from ramarag/fragileNIstartup
Arm64:Fxing up VM helper Table in mscorlib NI
Commit migrated from https://github.com/dotnet/coreclr/commit/
1cbcfdc1243230929720f41c57ecdc1ca344b608
Aditya Mandaleeka [Thu, 28 Apr 2016 02:21:46 +0000 (19:21 -0700)]
Remove SYNCHMGR_PIPE_BASED_THREAD_BLOCKING and clean up synchmanager.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b34f916daa9758a435ccbb4c709a7c738bd99507
Andy Ayers [Thu, 28 Apr 2016 00:30:20 +0000 (17:30 -0700)]
Merge pull request dotnet/coreclr#4625 from AndyAyersMS/FullInliner
Inliner: implement FullPolicy
Commit migrated from https://github.com/dotnet/coreclr/commit/
dfcb7f042e4be3976a6b551891c8ef8bbcf5906b
Jan Kotas [Thu, 28 Apr 2016 00:09:59 +0000 (17:09 -0700)]
Merge pull request dotnet/coreclr#4626 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
7915b99a39470889cb6abf1d98338299e7bda00a
Jan Kotas [Thu, 28 Apr 2016 00:08:26 +0000 (17:08 -0700)]
Fix FileLoadException message for CoreCLR (dotnet/coreclr#4624)
Fix FileLoadException message for CoreCLR
Commit migrated from https://github.com/dotnet/coreclr/commit/
01372d2578f8c265bd5368a20e416a5798b8534a
Sejong Oh [Thu, 28 Apr 2016 00:06:43 +0000 (17:06 -0700)]
Merge pull request dotnet/coreclr#4578 from sejongoh/vector3_testcase_update
Update Vector3 Interop testcases
Commit migrated from https://github.com/dotnet/coreclr/commit/
b030d38df2af63a491c3783165b2f40040be6db3
Brian Sullivan [Wed, 27 Apr 2016 22:53:15 +0000 (15:53 -0700)]
StructPromote_0428
Enable Struct promotion for 16-byte structs on Arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
b324afc3e3175a41e53e46d8dfd9d5916908b348
Maoni Stephens [Wed, 27 Apr 2016 22:39:21 +0000 (15:39 -0700)]
Merge pull request dotnet/coreclr#4585 from Maoni0/numa
bug fix in os wrapper
Commit migrated from https://github.com/dotnet/coreclr/commit/
25a263e6cc19d740292a9cb6b831ddde5def9d53
Sejong Oh [Mon, 25 Apr 2016 22:58:50 +0000 (15:58 -0700)]
Update Vector3 Interop testcases
Commit migrated from https://github.com/dotnet/coreclr/commit/
2158b95c97eec94e92e1fd4c3de79babcbebbe35
Rama Krishnan Raghupathy [Sat, 16 Apr 2016 01:37:16 +0000 (18:37 -0700)]
Arm64:Fxing up VM helper Table in mscorlib NI
Commit migrated from https://github.com/dotnet/coreclr/commit/
dfca8c96878395a388d02a2f313120ab5510298a
Carol Eidt [Wed, 27 Apr 2016 00:53:51 +0000 (17:53 -0700)]
Mark lvIsMultiRegArgOrRet returned lclVars lvDoNotEnregister
Mark multi-reg returns in Lowering, where there are set to be contained.
This is done in Lowering::TreeNodeInfoInit to confine it to the case
of returns.
Fixes dotnet/coreclr#4412
Commit migrated from https://github.com/dotnet/coreclr/commit/
f1a0a7f0aa6c145f2f40baf99d9f56d36c19d516
Lubomir Litchev [Wed, 27 Apr 2016 20:33:34 +0000 (13:33 -0700)]
Merge pull request dotnet/coreclr#4594 from LLITCHEV/EnableGCStressOnx86
Enable use of disassembler for the x86 platform.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4767162f22398e553d70c8099d25bfe478a439a
Michelle McDaniel [Tue, 26 Apr 2016 18:09:13 +0000 (11:09 -0700)]
Add exclusions for RyuJIT x86 and x86 TestEnv
This change adds exclusions with their issue numbers for the x86 RyuJIT
bring up. Additionally, this change adds the x86 TestEnv script for
running runtests.cmd with protojit.dll.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7fc7b76bd8dad144c62b848f98e24551ebcfca0a
Aditya Mandaleeka [Wed, 27 Apr 2016 18:49:29 +0000 (11:49 -0700)]
Merge pull request dotnet/coreclr#4309 from adityamandaleeka/sigterm
Add support for handling SIGTERM gracefully [WIP]
Commit migrated from https://github.com/dotnet/coreclr/commit/
597f60b93facd540ca18fe6bf7aa3bb022f3da8b
Andy Ayers [Wed, 27 Apr 2016 02:54:33 +0000 (19:54 -0700)]
Inliner: implement FullPolicy
The FullPolicy will be used to grow maximal potential inline trees
for methods. It inlines all legal candidates subject to depth and
size limits. Add a config flag to select this as the policy to use.
Also add a config flag so the inline depth limit becomes adjustable,
and rework the code so that checking this limit is now a matter of
policy. Add in an implementation max depth limit of 1000.
Revise names of some statics to make their intent clearer, and add some
missing header comments.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8bed64ec2b36608367fc8c075b796b1bd34ab89f
Joseph Tremoulet [Wed, 27 Apr 2016 18:10:02 +0000 (14:10 -0400)]
Merge pull request dotnet/coreclr#4591 from JosephTremoulet/Filter
Separate TryDsc and ExnFlowDsc
Commit migrated from https://github.com/dotnet/coreclr/commit/
f049401e96a04eb3828f062b3b2b28d7ffd7f971
Bruce Forstall [Wed, 27 Apr 2016 16:55:29 +0000 (09:55 -0700)]
Merge pull request dotnet/coreclr#4586 from BruceForstall/FixUnreachedAsserts
Fix two "unreached" asserts, and other related cleanups
Commit migrated from https://github.com/dotnet/coreclr/commit/
b11748d264173b7eb65f8463306bb00a5c0e206d
Jan Kotas [Wed, 27 Apr 2016 16:38:36 +0000 (09:38 -0700)]
Merge pull request dotnet/coreclr#4606 from dotnet-bot/from-tfs
[tfs-changeset: 1599408]
Commit migrated from https://github.com/dotnet/coreclr/commit/
8b48e4378b9825f91bbe50cb94f97519c1350737
Lubomir Litchev [Wed, 27 Apr 2016 16:38:20 +0000 (09:38 -0700)]
Fix for a badly placed assert in the *unix arg passing classification. (dotnet/coreclr#4608)
There is a badly placed assert in the *nix arg passing classification.
This change moves the assert before incrementing the field count and adds
test for the problem.
Fixes issue dotnet/coreclr#4584.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6e6791a374e42e293d099e24c61a68ef34793e61
Bruce Forstall [Wed, 27 Apr 2016 16:34:54 +0000 (09:34 -0700)]
Merge pull request dotnet/coreclr#4587 from BruceForstall/FixCkFinite
Fix ckfinite for doubles for RyuJIT/x86
Commit migrated from https://github.com/dotnet/coreclr/commit/
1da89fe00fa48d589c4817093497bf8bfcfdc34a
Jose Perez Rodriguez [Wed, 27 Apr 2016 15:59:04 +0000 (08:59 -0700)]
Fix issue 4367 where file description of native tools is wrong (dotnet/coreclr#4598)
Fix issue 4367 where file description of native tools is wrong
Commit migrated from https://github.com/dotnet/coreclr/commit/
59fcb93d6ca5df0caee211b77a8e902f6f806c62
Andy Ayers [Wed, 27 Apr 2016 15:55:39 +0000 (08:55 -0700)]
Merge pull request dotnet/coreclr#4613 from AndyAyersMS/InlineTreeXML
Update inline xml so it's deserializable
Commit migrated from https://github.com/dotnet/coreclr/commit/
133afaa3726e19b18b1c1c68d5e746b2a4405190
Joseph Tremoulet [Mon, 4 Apr 2016 21:25:20 +0000 (17:25 -0400)]
Separate TryDsc and ExnFlowDsc
Supplement the helpers for finding a block's `TryDsc` (the `EHblkDsc` of
the innermost `try` region containing it) and a block's `HndDsc` (the
`EHblkDsc` of the innermost handler it is part of) with helpers for
finding a block's `ExnFlowDsc` (the `EHblkDsc` of the innermost handler to
which control may be transferred if an exception occurs in the given
block).
The `ExnFlowDsc` is the same as the `TryDsc` in most cases, but differs
for blocks in filter expressions -- when an exception escapes a filter,
that new exception is discarded and the search for a handler for the prior
exception is resumed at the next-outer handler, which corresponds to the
next-outer try enclosing the try that the filter protects. This is not
the try enclosing the filter itself for "mutual-protect" clauses such as
are generated for
try {
...
} catch when (E) { // <-- E is not in the 'try' but an exception
... // in it causes flow to go to the 'finally'
} finally {
...
}
This change adds helpers around the `ExnFlowDsc` and updates code that
was using the `TryDsc`/`TryIndex` where appropriate.
This fixes dotnet/coreclr#4044.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0029475f1bc2cf20aee290d453d9e8e7bc738d84
Bruce Forstall [Tue, 26 Apr 2016 05:27:40 +0000 (22:27 -0700)]
Fix two "unreached" asserts
The asserts as written would never fire. Replace them with asserts that will.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e298a8c8d7128953ad717f8b167210860bac928f