platform/upstream/coreclr.git
8 years agoMerge pull request #3106 from briansull/issue_3032
Brian Sullivan [Wed, 10 Feb 2016 00:53:57 +0000 (16:53 -0800)]
Merge pull request #3106 from briansull/issue_3032

ARM64: For methods that have very large stack frames we need extra instructions

8 years agoFor methods that have very large stack frames we need an extra instruction
Brian Sullivan [Tue, 9 Feb 2016 22:07:39 +0000 (14:07 -0800)]
For methods that have very large stack frames we need an extra instruction
to load the offset when encoding the prolog/epilog instructions for funclets

Fixes Issue #3032
Incorporates code review feedback and provides a method called
genInstrWithConstant to handle the cases where we need extra instructions
Updated arm64\Tests.lst with additional tags:
MISSING_EXE, ISSUE_3104, ISSUE_3105 and NEED_TRIAGE

8 years agoMerge pull request #3055 from wtgodbe/serverGC
William Godbe [Tue, 9 Feb 2016 22:46:15 +0000 (14:46 -0800)]
Merge pull request #3055 from wtgodbe/serverGC

Re-enable server GC & lengthen timeouts

8 years agoRe-enable server GC & lengthen timeouts
William Godbe [Sat, 6 Feb 2016 00:25:51 +0000 (16:25 -0800)]
Re-enable server GC & lengthen timeouts

8 years agoMerge pull request #3100 from AndyAyersMS/FixWarning
Jan Kotas [Tue, 9 Feb 2016 20:24:49 +0000 (12:24 -0800)]
Merge pull request #3100 from AndyAyersMS/FixWarning

Fix const string literal warning

8 years agoMerge pull request #3099 from CarolEidt/x86IntArgs
Carol Eidt [Tue, 9 Feb 2016 19:09:52 +0000 (11:09 -0800)]
Merge pull request #3099 from CarolEidt/x86IntArgs

Constant and Popped Args for x86

8 years agoMerge pull request #3102 from mmitche/add-llitchev-to-allowed
Matt Mitchell [Tue, 9 Feb 2016 18:59:11 +0000 (10:59 -0800)]
Merge pull request #3102 from mmitche/add-llitchev-to-allowed

Add llitchev to allowed

8 years agofixup
Matt Mitchell [Tue, 9 Feb 2016 18:27:11 +0000 (10:27 -0800)]
fixup

8 years agoUpdate arm triggers to be in line with others
Matt Mitchell [Tue, 9 Feb 2016 18:24:13 +0000 (10:24 -0800)]
Update arm triggers to be in line with others

8 years agoConstant and Popped Args for x86
Carol Eidt [Tue, 9 Feb 2016 16:26:08 +0000 (08:26 -0800)]
Constant and Popped Args for x86

Add support for constant arguments,
and handle the case where the callee must pop the stack.

8 years agoFix const string literal warning
Andy Ayers [Tue, 9 Feb 2016 16:46:16 +0000 (08:46 -0800)]
Fix const string literal warning

This came up during an FI from LLVM, testing LLILC, see microsoft/llvm#140 .

8 years agoMerge pull request #3096 from gkhanna79/MonoCheck
Gaurav Khanna [Tue, 9 Feb 2016 06:31:27 +0000 (22:31 -0800)]
Merge pull request #3096 from gkhanna79/MonoCheck

Check for Mono presence until CoreCLR 3090 is fixed.

8 years agoCheck for Mono presence until CoreCLR 3090 is fixed.
Gaurav Khanna [Tue, 9 Feb 2016 04:39:51 +0000 (20:39 -0800)]
Check for Mono presence until CoreCLR 3090 is fixed.

8 years agoMerge pull request #3086 from gkhanna79/CIMscorlib
Matt Ellis [Tue, 9 Feb 2016 04:23:23 +0000 (20:23 -0800)]
Merge pull request #3086 from gkhanna79/CIMscorlib

Update CI to no longer request mscorlib build for osx/ubuntu on Windows.

8 years agoMerge pull request #3093 from dotnet-bot/from-tfs
Jan Kotas [Tue, 9 Feb 2016 04:00:54 +0000 (20:00 -0800)]
Merge pull request #3093 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #3091 from jkotas/revert-workaround
Jan Kotas [Tue, 9 Feb 2016 03:16:50 +0000 (19:16 -0800)]
Merge pull request #3091 from jkotas/revert-workaround

Revert "Add un-prefixed signatures as temporary workaround"

8 years agoMerge pull request #3084 from AndyAyersMS/InlineRefactor2b
Andy Ayers [Tue, 9 Feb 2016 03:07:30 +0000 (19:07 -0800)]
Merge pull request #3084 from AndyAyersMS/InlineRefactor2b

Inline refactor: revise checks in fgFindJumpTargets

8 years agoMerge pull request #2905 from AndyAyersMS/NewILTests
Andy Ayers [Tue, 9 Feb 2016 03:07:12 +0000 (19:07 -0800)]
Merge pull request #2905 from AndyAyersMS/NewILTests

Some tests for caller/callee type mismatches

8 years agoMerge pull request #3083 from AndyAyersMS/InlineRefactor2a
Andy Ayers [Tue, 9 Feb 2016 01:56:43 +0000 (17:56 -0800)]
Merge pull request #3083 from AndyAyersMS/InlineRefactor2a

Inliner refactoring: inline impAbortInline

8 years agoMerge pull request #3087 from sivarv/master
Sivarv [Tue, 9 Feb 2016 01:35:59 +0000 (17:35 -0800)]
Merge pull request #3087 from sivarv/master

Fix to SquareRootUInt16 test failure under JitStress=1/2

8 years agoMerge pull request #3067 from erozenfeld/MultToShiftVN
Eugene Rozenfeld [Mon, 8 Feb 2016 23:37:52 +0000 (15:37 -0800)]
Merge pull request #3067 from erozenfeld/MultToShiftVN

Preserve value numbers when morphing multiplication into shift.

8 years agoUpdate CI to no longer request mscorlib build for osx/ubuntu on Windows.
Gaurav Khanna (CLR) [Mon, 8 Feb 2016 20:16:01 +0000 (12:16 -0800)]
Update CI to no longer request mscorlib build for osx/ubuntu on Windows.

8 years agoRevert "Add un-prefixed signatures as temporary workaround"
Jan Kotas [Mon, 8 Feb 2016 22:32:32 +0000 (14:32 -0800)]
Revert "Add un-prefixed signatures as temporary workaround"

This reverts commit fb80bad2ed19970472ddefe539520abef42a52d0.

8 years agoMerge pull request #2981 from kouvel/Fixes
Koundinya Veluri [Mon, 8 Feb 2016 22:13:12 +0000 (14:13 -0800)]
Merge pull request #2981 from kouvel/Fixes

Miscellaneous fixes

8 years agoPreserve value numbers when morphing multiplication into shift.
Eugene Rozenfeld [Sat, 6 Feb 2016 07:09:43 +0000 (23:09 -0800)]
Preserve value numbers when morphing multiplication into shift.

This change fixes a morpher transformation of multiplication to shift
to preserve the value number of the tree since the new shift expression
will compute the same value as the old multiplication expression.
Without that change we were getting  asserts in fgMoveOpsLeft,
which expects to see value numbers on trees it transforms.

Closes #2920.

8 years agoFix to SquareRootUInt16 test failure under JitStress=1/2
sivarv [Mon, 8 Feb 2016 21:03:11 +0000 (13:03 -0800)]
Fix to SquareRootUInt16 test failure under JitStress=1/2

JitStress=1/2 is inducing GS check as a result of which the Vector argument
gets shadow copied.  But on the shadow copy lcl var SIMD specific state
is not set and as a result of which rationalization doesn't happen
properly leading to silent bad codegen.

8 years agoInline refactor: revise checks in fgFindJumpTargets
Andy Ayers [Mon, 8 Feb 2016 20:23:57 +0000 (12:23 -0800)]
Inline refactor: revise checks in fgFindJumpTargets

In this method, the inliner will check for unsupported opcodes and
similar things. Refactor these checks to directly bail out if an
issue is discovered, rather than going to a common handler snippet.

There are two functionality changes:

First, if an unsupported opcode is found (currently: switch, jmp,
calli, localloc, cpblk, mkrefany, rethrow) mark the inlinee as
never inlinable, rather than just failing the current attempt.
This should not change externally visible behavior but will improve
jit TP marginally if such cases are common.

Second, for NETCF quirk handling, make sure to guard some of the
observations with a check that we're reading the IL for inlining.

8 years agoMerge pull request #2898 from adityamandaleeka/remove_sigprocmask
Aditya Mandaleeka [Mon, 8 Feb 2016 19:45:39 +0000 (11:45 -0800)]
Merge pull request #2898 from adityamandaleeka/remove_sigprocmask

Use pthread_sigmask to change the mask of blocked signals.

8 years agoInliner refactoring: inline impAbortInline
Andy Ayers [Mon, 8 Feb 2016 19:42:42 +0000 (11:42 -0800)]
Inliner refactoring: inline impAbortInline

Inline this helper method at its 3 call sites, and delete it.

8 years agoFix build breaks in the CTP JIT.
Pat Gavlin [Mon, 8 Feb 2016 18:53:02 +0000 (10:53 -0800)]
Fix build breaks in the CTP JIT.

These breaks were due to unguarded usage of constants that are not present in the CTP JIT/EE interface.

[tfs-changeset: 1573367]

8 years agoMerge pull request #3050 from sejongoh/add_more_stress_modes_to_corefx_windows_testing
Matt Mitchell [Mon, 8 Feb 2016 18:50:27 +0000 (10:50 -0800)]
Merge pull request #3050 from sejongoh/add_more_stress_modes_to_corefx_windows_testing

Add more JIT stress modes to corefx testing

8 years agoMerge pull request #3043 from gkhanna79/FixNugetPkg
Gaurav Khanna [Mon, 8 Feb 2016 07:17:02 +0000 (23:17 -0800)]
Merge pull request #3043 from gkhanna79/FixNugetPkg

 Generate Microsoft.NETCore.Runtime.CoreCLR nuget packages

8 years agoChange to support Microsoft.NetCore.Runtime.CoreCLR nuget package generation.
Gaurav Khanna (CLR) [Fri, 5 Feb 2016 00:22:06 +0000 (16:22 -0800)]
Change to support Microsoft.NetCore.Runtime.CoreCLR nuget package generation.

8 years agoMerge pull request #3073 from krytarowski/netbsd-support-36
Jan Kotas [Sun, 7 Feb 2016 21:19:14 +0000 (13:19 -0800)]
Merge pull request #3073 from krytarowski/netbsd-support-36

Make missing libunwind fatal on NetBSD

8 years agoMake missing libunwind fatal on NetBSD
Kamil Rytarowski [Sun, 7 Feb 2016 17:37:33 +0000 (18:37 +0100)]
Make missing libunwind fatal on NetBSD

8 years agoMerge pull request #2973 from krytarowski/netbsd-support-25
Jan Kotas [Sun, 7 Feb 2016 15:54:15 +0000 (07:54 -0800)]
Merge pull request #2973 from krytarowski/netbsd-support-25

Disable FEATURE_HIJACK in NetBSD as unimplemented

8 years agoMerge pull request #3072 from krytarowski/netbsd-support-35
Jan Kotas [Sun, 7 Feb 2016 15:40:38 +0000 (07:40 -0800)]
Merge pull request #3072 from krytarowski/netbsd-support-35

Fix build on NetBSD: Support different versions of "struct reg"

8 years agoFix build on NetBSD: Support different versions of "struct reg"
Kamil Rytarowski [Sun, 7 Feb 2016 12:32:18 +0000 (13:32 +0100)]
Fix build on NetBSD: Support different versions of "struct reg"

FreeBSD style: ".r_rax"
NetBSD x86_64 style: ".regs[_R_RAX]"

NetBSD i386 style: "._r_eax" will be defined once the amd64 version will be
finished.

8 years agoDisable FEATURE_HIJACK in NetBSD as unimplemented
Kamil Rytarowski [Tue, 2 Feb 2016 01:37:06 +0000 (02:37 +0100)]
Disable FEATURE_HIJACK in NetBSD as unimplemented

Solution suggested by Jan Kotas (Microsoft).

8 years agoMerge pull request #3071 from dotnet/revert-3062-instrumentation
Jan Kotas [Sun, 7 Feb 2016 05:52:43 +0000 (21:52 -0800)]
Merge pull request #3071 from dotnet/revert-3062-instrumentation

Revert "Temporary instrumentation in native image loading"

8 years agoMerge pull request #3070 from jkotas/crossgen-fix
Jan Kotas [Sun, 7 Feb 2016 05:52:35 +0000 (21:52 -0800)]
Merge pull request #3070 from jkotas/crossgen-fix

Fix loading of native images on Unix

8 years agoRevert "Temporary instrumentation in native image loading"
Jan Kotas [Sun, 7 Feb 2016 03:48:33 +0000 (19:48 -0800)]
Revert "Temporary instrumentation in native image loading"

8 years agoFix loading of native images on Unix
Jan Kotas [Sun, 7 Feb 2016 03:40:58 +0000 (19:40 -0800)]
Fix loading of native images on Unix

R2R images that were compiled from architecture-specific IL images failed to load with bad image format exception on Unix. The fix is to take IMAGE_FILE_MACHINE_NATIVE_OS_OVERRIDE into account for the platform check.

8 years agoMerge pull request #3066 from gkhanna79/Fix3049
Jan Kotas [Sun, 7 Feb 2016 00:33:29 +0000 (16:33 -0800)]
Merge pull request #3066 from gkhanna79/Fix3049

Fix for CoreCLR issue 3049

8 years agoFix for CoreCLR issue 3049
Gaurav Khanna [Sat, 6 Feb 2016 22:10:46 +0000 (14:10 -0800)]
Fix for CoreCLR issue 3049

8 years agoMerge pull request #3062 from jkotas/instrumentation
Jan Kotas [Sat, 6 Feb 2016 21:37:32 +0000 (13:37 -0800)]
Merge pull request #3062 from jkotas/instrumentation

Temporary instrumentation in native image loading

8 years agoTemporary instrumentation for PE file loading
Jan Kotas [Sat, 6 Feb 2016 07:16:30 +0000 (23:16 -0800)]
Temporary instrumentation for PE file loading

8 years agoMerge pull request #3059 from jkotas/intrinsics
Jan Kotas [Sat, 6 Feb 2016 18:14:11 +0000 (10:14 -0800)]
Merge pull request #3059 from jkotas/intrinsics

Improve robustness of intrinsic fallback path

8 years agoMerge pull request #3063 from dotnet/revert-3027-remove_security_checks
Stephen Toub [Sat, 6 Feb 2016 18:03:11 +0000 (13:03 -0500)]
Merge pull request #3063 from dotnet/revert-3027-remove_security_checks

Revert "Remove useless security checks"

8 years agoMerge pull request #3061 from stephentoub/update_index
Jan Kotas [Sat, 6 Feb 2016 16:51:57 +0000 (08:51 -0800)]
Merge pull request #3061 from stephentoub/update_index

Tweak Enum.TryParse whitespace skipping slightly

8 years agoRevert "Remove useless security checks"
Jan Kotas [Sat, 6 Feb 2016 16:45:25 +0000 (08:45 -0800)]
Revert "Remove useless security checks"

8 years agoMerge pull request #3060 from dotnet-bot/from-tfs
Jan Kotas [Sat, 6 Feb 2016 15:45:09 +0000 (07:45 -0800)]
Merge pull request #3060 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoTweak Enum.TryParse whitespace skipping slightly
stephentoub [Sat, 6 Feb 2016 15:04:43 +0000 (10:04 -0500)]
Tweak Enum.TryParse whitespace skipping slightly

As a simple addendum to my previous Enum.TryParse change, if the string
begins with whitespace, we already know where the whitespace ends, so we
don't need to retraverse it.

8 years agoMerge pull request #3048 from sejongoh/add_unit_test_for_issue_2580
Sejong Oh [Sat, 6 Feb 2016 10:59:01 +0000 (02:59 -0800)]
Merge pull request #3048 from sejongoh/add_unit_test_for_issue_2580

Add unit test for issue 2580

8 years agoAdd corefx baseline
Sejong Oh [Sat, 6 Feb 2016 10:58:17 +0000 (02:58 -0800)]
Add corefx baseline

8 years agoAdd unit test for issue 2580
Sejong Oh [Fri, 5 Feb 2016 21:07:57 +0000 (13:07 -0800)]
Add unit test for issue 2580

- The test checks if code generation for ushort is correct.

8 years agoDelete mdil support from coreclr
Jan Kotas [Sat, 6 Feb 2016 08:10:40 +0000 (00:10 -0800)]
Delete mdil support from coreclr

[tfs-changeset: 1573006]

8 years agoImprove robustness of intrinsic fallback path
Jan Kotas [Sat, 6 Feb 2016 07:09:29 +0000 (23:09 -0800)]
Improve robustness of intrinsic fallback path

- The fallback path for intrinsics nodes is assumed to be direct call. Verify this assumption using no_way assert instead of regular assert.
- Make VM to always tell the JIT to use direct calls for intrinsics, even in version resilient code

8 years agoChange corefx jit stress scenario names due to git complaining too long
Sejong Oh [Sat, 6 Feb 2016 05:19:39 +0000 (21:19 -0800)]
Change corefx jit stress scenario names due to git complaining too long
file name

8 years agoMerge pull request #3056 from krytarowski/netbsd-support-34
Jan Kotas [Sat, 6 Feb 2016 04:06:47 +0000 (20:06 -0800)]
Merge pull request #3056 from krytarowski/netbsd-support-34

Fix NetBSD build: Define virtual destructors when needed

8 years agoFix NetBSD build: Define virtual destructors when needed
Kamil Rytarowski [Sat, 6 Feb 2016 02:16:55 +0000 (03:16 +0100)]
Fix NetBSD build: Define virtual destructors when needed

This fixes the following error with recent Clang (3.9.0nb20160205):

In file included from /tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/synchmgr/synchcontrollers.cpp:20:
In file included from /tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/synchmgr/synchmanager.hpp:24:
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/include/pal/synchcache.hpp:146:13: error: destructor called on non-final 'CorUnix::CSynchWaitController' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
            pobj->~T();
            ^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/synchmgr/synchmanager.hpp:724:31: note: in instantiation of member function 'CorUnix::CSynchCache<CorUnix::CSynchWaitController>::Add' requested here
            m_cacheWaitCtrlrs.Add(pthrCurrent, pCtrlr);
                              ^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/include/pal/synchcache.hpp:146:20: note: qualify call to silence this warning
            pobj->~T();
                   ^
                   CorUnix::CSynchWaitController::
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/include/pal/synchcache.hpp:146:13: error: destructor called on non-final 'CorUnix::CSynchStateController' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
            pobj->~T();
            ^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/synchmgr/synchmanager.hpp:741:32: note: in instantiation of member function 'CorUnix::CSynchCache<CorUnix::CSynchStateController>::Add' requested here
            m_cacheStateCtrlrs.Add(pthrCurrent, pCtrlr);
                               ^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/include/pal/synchcache.hpp:146:20: note: qualify call to silence this warning
            pobj->~T();
                   ^
                   CorUnix::CSynchStateController::
2 errors generated.

8 years agoMerge pull request #3044 from pgavlin/CoreRTPInvoke
Pat Gavlin [Sat, 6 Feb 2016 02:25:52 +0000 (18:25 -0800)]
Merge pull request #3044 from pgavlin/CoreRTPInvoke

Generate P/Invoke transitions for CoreRT.

8 years agoMerge pull request #3051 from AndyAyersMS/InlineRefactor2
Andy Ayers [Sat, 6 Feb 2016 02:08:23 +0000 (18:08 -0800)]
Merge pull request #3051 from AndyAyersMS/InlineRefactor2

Inliner refactoring: consolidate logging, reporting and dumping

8 years agoMerge pull request #3026 from Dmitry-Me/clarifyKeepAliveUsage1
Jan Kotas [Sat, 6 Feb 2016 01:33:52 +0000 (17:33 -0800)]
Merge pull request #3026 from Dmitry-Me/clarifyKeepAliveUsage1

No need to stick to end of method

8 years agoMerge pull request #3052 from sivarv/master
Sivarv [Sat, 6 Feb 2016 00:38:49 +0000 (16:38 -0800)]
Merge pull request #3052 from sivarv/master

Fix to assert failure 'ret->OperGet() == GT_RETURN' morph.cpp

8 years agoMerge pull request #3053 from wtgodbe/serverGC
Jan Kotas [Sat, 6 Feb 2016 00:07:26 +0000 (16:07 -0800)]
Merge pull request #3053 from wtgodbe/serverGC

Disable usage of Server GC for ubuntu PR test builds in CI

8 years agoMerge pull request #3046 from adityamandaleeka/env_pal
Jan Kotas [Fri, 5 Feb 2016 23:59:25 +0000 (15:59 -0800)]
Merge pull request #3046 from adityamandaleeka/env_pal

Remove InternalStrdup from PAL

8 years agoInliner refactoring: consolidate logging, reporting and dumping
Andy Ayers [Thu, 4 Feb 2016 07:01:42 +0000 (23:01 -0800)]
Inliner refactoring: consolidate logging, reporting and dumping

With this change the responsibility for dumping, logging, and reporting
inline decisions is moved into the JitInlineResult class instead of being
distributed throughout the code base. This insures all the relevant inline
information is handled in a consistent manner.

The JitInlineResult is updated to hold a compiler instance and now
requires a context string describing the what the jit is doing as it evaluates
an inline candidate. There are 4 distinct contexts in use currently.

8 years agoFix a few more binary exprs for the CC.
Pat Gavlin [Fri, 5 Feb 2016 22:42:31 +0000 (14:42 -0800)]
Fix a few more binary exprs for the CC.

8 years agoCorrected typo in second comment line.
sivarv [Fri, 5 Feb 2016 22:01:43 +0000 (14:01 -0800)]
Corrected typo in second comment line.

8 years agoAddress CR feedback.
Pat Gavlin [Fri, 5 Feb 2016 22:38:34 +0000 (14:38 -0800)]
Address CR feedback.

8 years agoDisable usage of Server GC for ubuntu PR test builds in CI
William Godbe [Fri, 5 Feb 2016 22:09:47 +0000 (14:09 -0800)]
Disable usage of Server GC for ubuntu PR test builds in CI

8 years agoAdd more JIT stress modes to corefx testing
Sejong Oh [Fri, 5 Feb 2016 21:24:10 +0000 (13:24 -0800)]
Add more JIT stress modes to corefx testing

8 years agoMerge pull request #3030 from krytarowski/netbsd-support-32
Jan Kotas [Fri, 5 Feb 2016 21:12:48 +0000 (13:12 -0800)]
Merge pull request #3030 from krytarowski/netbsd-support-32

Fix build on NetBSD: Walkaround compiler strictness regarding const c…

8 years agoMerge pull request #3045 from benpye/allow-llvm-unwind
Jan Kotas [Fri, 5 Feb 2016 21:10:07 +0000 (13:10 -0800)]
Merge pull request #3045 from benpye/allow-llvm-unwind

Detect libunwind features allowing LLVMs libunwind to be used

8 years agoMerge pull request #2995 from krytarowski/netbsd-support-29
Jan Kotas [Fri, 5 Feb 2016 21:09:39 +0000 (13:09 -0800)]
Merge pull request #2995 from krytarowski/netbsd-support-29

Fix build on NetBSD: Mark destructors of few classes as virtual

8 years agoRemove InternalStrdup
Aditya Mandaleeka [Fri, 5 Feb 2016 20:05:21 +0000 (12:05 -0800)]
Remove InternalStrdup

8 years agoMerge pull request #3033 from janvorli/test-checked-optimization
Jan Vorlicek [Fri, 5 Feb 2016 19:46:48 +0000 (20:46 +0100)]
Merge pull request #3033 from janvorli/test-checked-optimization

Fix checked build compiler options

8 years agoMerge pull request #3042 from ellismg/add-pal-tests-to-skiptests-directive
Matt Ellis [Fri, 5 Feb 2016 19:29:04 +0000 (11:29 -0800)]
Merge pull request #3042 from ellismg/add-pal-tests-to-skiptests-directive

Have `skiptests` control PAL tests as well

8 years agoMerge pull request #3000 from sejongoh/add_windows_corefx_test_with_jit_stress_modes
Sejong Oh [Fri, 5 Feb 2016 19:07:25 +0000 (11:07 -0800)]
Merge pull request #3000 from sejongoh/add_windows_corefx_test_with_jit_stress_modes

Add corefx testing with JitStress=1 on Windows

8 years agoDetect libunwind features allowing LLVMs libunwind to be used
Ben Pye [Fri, 5 Feb 2016 16:34:36 +0000 (16:34 +0000)]
Detect libunwind features allowing LLVMs libunwind to be used

8 years agoGenerate P/Invoke transitions for CoreRT.
Pat Gavlin [Wed, 20 Jan 2016 21:44:43 +0000 (13:44 -0800)]
Generate P/Invoke transitions for CoreRT.

This change adds support for CoreRT-style P/Invoke transitions
to RyuJIT. Instead of the usual inlined transition code, these
transitions are made up of calls to two new JIT helpers:

    PInvokeTransitionFrame frame; // opaque local
    CORINFO_HELP_INIT_PINVOKE_FRAME(&frame);
    ...
    CORINFO_HELP_JIT_PINVOKE_BEGIN(&frame);
    target(...);
    CORINFO_HELP_JIT_PINVOKE_END(&frame);
    ...

The preemptive mode constraints apply between calls to
JIT_PINVOKE_BEGIN and JIT_PINVOKE_END: no managed references
may be live only in registers and managed references may not
be manipulated.

8 years agoMerge pull request #3010 from AndyAyersMS/FixVersionIssue
Jan Kotas [Fri, 5 Feb 2016 07:23:30 +0000 (23:23 -0800)]
Merge pull request #3010 from AndyAyersMS/FixVersionIssue

Fix version issue with System.IO for serialization tests

8 years agoMerge pull request #3027 from stephentoub/remove_security_checks
Jan Kotas [Fri, 5 Feb 2016 07:21:37 +0000 (23:21 -0800)]
Merge pull request #3027 from stephentoub/remove_security_checks

Remove useless security checks

8 years agoMerge pull request #3039 from dotnet-bot/from-tfs
Jan Kotas [Fri, 5 Feb 2016 07:20:00 +0000 (23:20 -0800)]
Merge pull request #3039 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #3041 from krytarowski/netbsd-support-33
Jan Kotas [Fri, 5 Feb 2016 07:19:00 +0000 (23:19 -0800)]
Merge pull request #3041 from krytarowski/netbsd-support-33

Fix NetBSD build: Retire unneeded PAL_fpos_t and fgetpos() fsetpos()

8 years agoHave `skiptests` control PAL tests as well
Matt Ellis [Fri, 5 Feb 2016 06:33:14 +0000 (22:33 -0800)]
Have `skiptests` control PAL tests as well

Don't build the PAL test projects when `skiptests` is passed to
build.sh.

8 years agoMerge pull request #3031 from gkhanna79/FixBatch
Gaurav Khanna [Fri, 5 Feb 2016 04:41:45 +0000 (20:41 -0800)]
Merge pull request #3031 from gkhanna79/FixBatch

Cleanup VS2013 reference

8 years agoSome tests for caller/callee type mismatches
Andy Ayers [Thu, 28 Jan 2016 21:37:20 +0000 (13:37 -0800)]
Some tests for caller/callee type mismatches

Ensure the jit can avoid or back out of inlines where types are
mismatched. Remove some assertion checking that was looking at
call actuals versus formals and instead let the newly added inline
bail out handle cases where there are mismatches.

8 years agoMerge pull request #3038 from AndyAyersMS/FixInlineAssert
Andy Ayers [Fri, 5 Feb 2016 04:28:25 +0000 (20:28 -0800)]
Merge pull request #3038 from AndyAyersMS/FixInlineAssert

Remove assert from the JitInlineResult dtor

8 years agoFix NetBSD build: Retire unneeded PAL_fpos_t and fgetpos() fsetpos()
Kamil Rytarowski [Fri, 5 Feb 2016 03:34:06 +0000 (04:34 +0100)]
Fix NetBSD build: Retire unneeded PAL_fpos_t and fgetpos() fsetpos()

These functions are unused. Linux version was unimplemented.

Removal suggested by Jan Kotas (Microsoft) to get rid of these functions.

The current code resulted with the following errors with the recent Clang/LLVM
(3.9.0nb20160131 snapshot) on NetBSD-7.99.25:

/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/cruntime/file.cpp:858:20: error: no viable overloaded '='
        native_pos = *pos;
        ~~~~~~~~~~ ^ ~~~~

/usr/include/stdio.h:67:16: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'PAL_fpos_t' (aka 'unsigned long') to 'const __sfpos' for 1st argument
typedef struct __sfpos {
               ^
/usr/include/stdio.h:67:16: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'PAL_fpos_t' (aka 'unsigned long') to '__sfpos' for 1st argument
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/cruntime/file.cpp:860:14: error: assigning to 'PAL_fpos_t' (aka 'unsigned long') from incompatible type 'fpos_t' (aka '__sfpos')
        *pos = native_pos;
             ^ ~~~~~~~~~~
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/cruntime/file.cpp:904:20: error: no viable overloaded '='
        native_pos = *pos;
        ~~~~~~~~~~ ^ ~~~~
/usr/include/stdio.h:67:16: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'const PAL_fpos_t' (aka 'const unsigned long') to 'const __sfpos' for 1st argument
typedef struct __sfpos {
               ^
/usr/include/stdio.h:67:16: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'const PAL_fpos_t' (aka 'const unsigned long') to '__sfpos' for 1st argument
3 errors generated.

Possible implementation for NetBSD (attached here for historical references):
+--- src/pal/src/cruntime/file.cpp.orig 2016-01-28 19:04:13.000000000 +0000
++++ src/pal/src/cruntime/file.cpp
+@@ -844,6 +844,15 @@ PAL_fgetpos (
+     // TODO: implement for Linux if required
+     ASSERT(FALSE);
+     return -1;
++#elif defined(__NetBSD__)
++    off_t native_pos;
++
++    if ((native_pos = ftello(f->bsdFilePtr)) == -1)
++        return -1;
++
++    *pos = native_pos;
++
++    return 0;
+ #else
+     int    nRetVal = -1;
+     fpos_t native_pos;
+@@ -890,6 +899,14 @@ PAL_fsetpos (
+     // TODO: implement for Linux if required
+     ASSERT(FALSE);
+     return  -1;
++#elif defined(__NetBSD__)
++    off_t native_pos;
++
++    native_pos = *pos;
++    if (fseeko(f->bsdFilePtr, native_pos, SEEK_SET) == -1)
++        return -1;
++
++    return 0;
+ #else
+     int    nRetVal = -1;
+     fpos_t native_pos;

We cannot go better on NetBSD. This implementation might still have issues
with e.g. Unicode.

This closes #3029 "PAL fpos_t clash with NetBSD libraries"

Thanks Peter Jas (@jasonwilliams200OK) for hacking session on it.

8 years agoMake a few JIT interface changes to accommodate CoreRT:
Pat Gavlin [Fri, 5 Feb 2016 01:57:33 +0000 (17:57 -0800)]
Make a few JIT interface changes to accommodate CoreRT:
- Add support for providing extended flags for a compile invocation. In order to preserve binary compatibility with older definitions of ICorJitCompiler, this involved adding a new method to ICJI to fetch the flags. This method is only called if no flags are provided to the compiler via compileMethod.
- Add helper definitions for CORINFO_HELP_PINVOKE_{BEGIN,END} for CoreRT
- Add a flag to CorJitFlag2 to indicate that the aforementioned heleprs should be used instead of generating inline transitions
- Add a new method, getAddressOfPInvokeTarget, to the JIT/EE interface. This method can return a direct target for a PInvoke call in addition to an indirect or double-indirect target.

[tfs-changeset: 1572442]

8 years agoFix checked build optimization
Jan Vorlicek [Thu, 4 Feb 2016 21:20:24 +0000 (22:20 +0100)]
Fix checked build optimization

The initialization of the checked build compiler flags in the compiler
override files had no effect, since cmake handles the _INIT variables
only for the four standard configurations.

8 years agoMerge pull request #3036 from weshaggard/RemoveTestDependencyFeed
Wes Haggard [Fri, 5 Feb 2016 00:56:27 +0000 (16:56 -0800)]
Merge pull request #3036 from weshaggard/RemoveTestDependencyFeed

Remove dotnet-coreclr-testDependencies feed

8 years agoAdd corefx testing with JIT stress modes on Windows
Sejong Oh [Wed, 3 Feb 2016 06:17:26 +0000 (22:17 -0800)]
Add corefx testing with JIT stress modes on Windows

8 years agoRemove assert from the JitInlineResult dtor
Andy Ayers [Thu, 4 Feb 2016 22:22:53 +0000 (14:22 -0800)]
Remove assert from the JitInlineResult dtor

Don't assert here, instead rely on existing checks in the
frames that create JitInlineResults to verify an appropriate
decision was made.

Closes #3037.

8 years agoRemove dotnet-coreclr-testDependencies feed
Wes Haggard [Thu, 4 Feb 2016 22:10:44 +0000 (14:10 -0800)]
Remove dotnet-coreclr-testDependencies feed

As part of our feed migration this feed was deleted and so restore
started failing. It only contained one package so I that package on
our dotnet-core feed and eliminated the need for this one extra feed.

8 years agoCleanup VS2013 reference
Gaurav Khanna [Thu, 4 Feb 2016 19:18:12 +0000 (11:18 -0800)]
Cleanup VS2013 reference

8 years agoFix build on NetBSD: Walkaround compiler strictness regarding const conversion
Kamil Rytarowski [Thu, 4 Feb 2016 19:07:04 +0000 (20:07 +0100)]
Fix build on NetBSD: Walkaround compiler strictness regarding const conversion

This commit walks-around over-cautious Clang/LLVM alerts like:

/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/tests/palsuite/c_runtime/sscanf/test4/test4.c:32:33: error: implicit conversion from
                'int' to 'short' changes value from 65535 to -1 [-Werror,-Wconstant-conversion]
 DoShortNumTest("-1", "%hd", 65535);
                ^~~~~~~~~~~~~~~~~~~

This closes #2968 "implicit conversion from 'int' to 'short' changes value from 65535 to -1"

Thanks Jan Kotas (Microsoft) for pointers.

8 years agoRemove security checks.
Vance Morrison [Sat, 23 Jan 2016 00:34:37 +0000 (16:34 -0800)]
Remove security checks.

These are holdovers from Silverlight days.   We don't support code access security in coreclr.