platform/upstream/coreclr.git
8 years agoMerge pull request #3195 from janvorli/fix-invalid-gcvalue
Jan Kotas [Wed, 17 Feb 2016 00:37:06 +0000 (16:37 -0800)]
Merge pull request #3195 from janvorli/fix-invalid-gcvalue

Fix INVALIDGCVALUE on Unix

8 years agoMerge pull request #3167 from mikem8361/tracing
Jan Vorlicek [Wed, 17 Feb 2016 00:18:07 +0000 (01:18 +0100)]
Merge pull request #3167 from mikem8361/tracing

Fix tracing lib problems in multiple PALs. Issue #3164.

8 years agoMerge pull request #3193 from richardlford/addtestlibs0216
Richard L Ford [Tue, 16 Feb 2016 22:55:47 +0000 (14:55 -0800)]
Merge pull request #3193 from richardlford/addtestlibs0216

Add libraries for tests that reference them.

8 years agoFix INVALIDGCVALUE on Unix
Jan Vorlicek [Tue, 16 Feb 2016 22:22:42 +0000 (23:22 +0100)]
Fix INVALIDGCVALUE on Unix

The INVALIDGCVALUE value loaded into the R11 in the JIT_WriteBarrier_Debug
and JIT_ByRefWriteBarrier is sign extended to 0xFFFFFFFFCCCCCCCD instead of
being the 0x00000000CCCCCCCD.
It was introduced during the early days of CoreCLR porting when I have
misread the error message that I was getting from Clang when compiling
mov R11, 0xCCCCCCCD and didn't know yet that loading 64 bit number requires
using the movabs mnemonics.

8 years agoMake dll project files build-only.
Richard L Ford [Tue, 16 Feb 2016 21:49:53 +0000 (13:49 -0800)]
Make dll project files build-only.

Dll project files need extra properties to avoid being run as tests.

8 years agoMerge pull request #3124 from AndyAyersMS/InlineRefactor3
Andy Ayers [Tue, 16 Feb 2016 21:08:59 +0000 (13:08 -0800)]
Merge pull request #3124 from AndyAyersMS/InlineRefactor3

Inline refactoring: start untangling observation and policy

8 years agoMerge pull request #3185 from janvorli/fix-exception-severity
Jan Vorlicek [Tue, 16 Feb 2016 20:57:32 +0000 (21:57 +0100)]
Merge pull request #3185 from janvorli/fix-exception-severity

Fix missing exception corruption severity setting

8 years agoAdd libraries for tests that reference them.
Richard L Ford [Tue, 16 Feb 2016 20:53:44 +0000 (12:53 -0800)]
Add libraries for tests that reference them.

This change adds dynamic link libraries that are referenced
by other tests.

8 years agoFix missing exception corruption severity setting
Jan Vorlicek [Mon, 15 Feb 2016 20:16:35 +0000 (21:16 +0100)]
Fix missing exception corruption severity setting

This change fixes missing exception corruption severity for exceptions
that were thrown by native code but didn't pass through any managed
frames yet.

We have seen assert in the RaiseTheException function when an exception
thrown from native code is caught in native code without passing through
any managed frames and then it is being thrown in a wrapper TargetInvocationException.

8 years agoInline refactoring: start untangling observation and policy
Andy Ayers [Mon, 8 Feb 2016 19:08:57 +0000 (11:08 -0800)]
Inline refactoring: start untangling observation and policy

Create set of observations that can be made during inlining. These
are implemented as a set of static tables plus some helper methods.
Each observation has an enum name, a type, a description string,
an impact, and a target.

For now most observations are about blocking issues and are classified
as having FATAL impact. There are a handful of INFORMATIONAL and
PERFORMANCE observations but they're not widely used yet.

This change also updates the bulk of the jit code to report
observations to the JitInlineResult instead of directly requesting
changes to the JitInlineResult state. Over on the JitInlineResult side,
the current legacy policy is implemented and fails fast if any blocking
observation is made. For now, any any FATAL impact observation must be
made via `noteFatal`, and all other observations be made via `note`.

As with the previous refactorings, this change tries not to alter
any code generation. There are a few cases where observations that
are made solely about the callee are now targeted that way instead of
being targeted at callsites. For instance a method that is marked by
COMPLUS_JitNoInline will never be inlined. This can sometimes lead to
localized code diffs, since the jit creates slightly different IR for a
call to an inline candidate than a call to a non-candidate, and is not
always able to undo this later if inlining fails. However the number of
diffs should be small. Will verify diffs further before merging. There
are no inlining changes crossgenning mscorlib.

Some of the message strings associated with inlining failures have
changed. The messages use `caller` and `callee` to describe the two
methods involved, and `callsite` for the instance in question, and
deprecate `inlinee`. These message strings can be seen in the jit
dumps and logs and are reported back to the VM where they presumably
make their way into other diagnostic reporting streams.

Subsequent work will re-examine the FATAL observations and likely
reclassify a number of them to have less dramatic immediate impact.
Subsequent work will also begin extracting the policy into a separate
class to lay the groundwork for supporting alternate policies while
still being able to fall back to the legacy policy.

8 years agoMerge pull request #3179 from JohnChen0/crossgen-fprintf
John Chen [Tue, 16 Feb 2016 18:44:31 +0000 (10:44 -0800)]
Merge pull request #3179 from JohnChen0/crossgen-fprintf

Fix fprintf in crossgen

8 years agoMerge pull request #2992 from steveharter/FixSanitizerClrStartup
Steve Harter [Tue, 16 Feb 2016 16:02:26 +0000 (10:02 -0600)]
Merge pull request #2992 from steveharter/FixSanitizerClrStartup

Clang sanitizer: remove unaligned address check

8 years agoMerge pull request #3183 from janvorli/fix-unwound-funclet-stack-reporting
Jan Vorlicek [Mon, 15 Feb 2016 17:57:01 +0000 (18:57 +0100)]
Merge pull request #3183 from janvorli/fix-unwound-funclet-stack-reporting

Fix unwound funclet GC stack reporting on Unix

8 years agoMerge pull request #3157 from benaadams/QueueUserWorkItemCallback
Eric Eilebrecht [Mon, 15 Feb 2016 17:30:12 +0000 (09:30 -0800)]
Merge pull request #3157 from benaadams/QueueUserWorkItemCallback

Slimmer QueueUserWorkItemCallback

8 years agoFix unwound funclet GC stack reporting on Unix
Jan Vorlicek [Mon, 15 Feb 2016 12:44:13 +0000 (13:44 +0100)]
Fix unwound funclet GC stack reporting on Unix

This change fixes a problem with reporting object on stack for GC when
GC scan is performed right after a funclet is unwound during exception handling.
In such case, the parent of the funclet should report live object references,
but it was not doing so on Unix.
On Unix, the unwound funclet is detected in a different way than on Windows due
to the fact that the stack frames of the funclet are already reclaimed, while on
Windows, they are still there.
When we detect the unwound funclet on Unix, we set state of the stack walker so
that it behaves in the same way as on Windows. But we were missing one state
variable that makes the parent report the references instead of the funclet,
the m_fDidFuncletReportGCReferences.

8 years agoMerge pull request #3170 from krytarowski/netbsd-support-44
Jan Vorlicek [Mon, 15 Feb 2016 10:21:07 +0000 (11:21 +0100)]
Merge pull request #3170 from krytarowski/netbsd-support-44

Prefer BSD uuid over libuuid

8 years agoMerge pull request #3149 from krytarowski/netbsd-support-41
Jan Vorlicek [Mon, 15 Feb 2016 10:09:11 +0000 (11:09 +0100)]
Merge pull request #3149 from krytarowski/netbsd-support-41

Fix build issue on NetBSD: Include <time.h> for time(3) in gc.cpp

8 years agoMerge pull request #3171 from krytarowski/netbsd-support-45
Jan Vorlicek [Mon, 15 Feb 2016 10:04:34 +0000 (11:04 +0100)]
Merge pull request #3171 from krytarowski/netbsd-support-45

Add more CMake sugar for NetBSD

8 years agoMerge pull request #3160 from josteink/master
Jan Vorlicek [Mon, 15 Feb 2016 09:58:27 +0000 (10:58 +0100)]
Merge pull request #3160 from josteink/master

Make the coreclr build-process support rtags

8 years agoMerge pull request #3175 from krytarowski/netbsd-support-46
Jan Kotas [Sun, 14 Feb 2016 22:49:01 +0000 (14:49 -0800)]
Merge pull request #3175 from krytarowski/netbsd-support-46

Fix build issue on NetBSD: Remove unneeded -nostdinc++ flag

8 years agoFix fprintf in crossgen
John Chen (CLR) [Sun, 14 Feb 2016 22:25:32 +0000 (14:25 -0800)]
Fix fprintf in crossgen

CrossGen configures its stdout to allow only Unicode output functions.
Add a wrapper to fprintf to allow it to work inside crossgen.

8 years agoSlimmer QueueUserWorkItemCallback
Ben Adams [Fri, 12 Feb 2016 09:25:33 +0000 (09:25 +0000)]
Slimmer QueueUserWorkItemCallback

8 years agoPrefer BSD uuid over libuuid
Kamil Rytarowski [Sat, 13 Feb 2016 20:25:32 +0000 (21:25 +0100)]
Prefer BSD uuid over libuuid

This fixes recent NetBSDbuild breakage:
../libcoreclrpal.a(miscpalapi.cpp.o): In function `CoCreateGuid':
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/misc/miscpalapi.cpp:356: undefined reference to `uuid_generate_random'
clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation)

No need to link against libuuid.

Add detection of BSD-styl <uuid.h>.
Few Linux distros ship with custom <uuid.h> and they aren't compatibile.

8 years agoMerge pull request #3162 from dotnet-bot/from-tfs
Jan Kotas [Sun, 14 Feb 2016 14:25:01 +0000 (06:25 -0800)]
Merge pull request #3162 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoFix build issue on NetBSD: Remove unneeded -nostdinc++ flag
Kamil Rytarowski [Sun, 14 Feb 2016 14:17:15 +0000 (15:17 +0100)]
Fix build issue on NetBSD: Remove unneeded -nostdinc++ flag

This flag isn't recognized by clang on NetBSD:
clang-3.9: warning: argument unused during compilation: '-nostdinc++'

$ pkg_info |grep -E 'lldb|llvm|clang'
llvm-3.9.0nb20160213 Low Level Virtual Machine compiler infrastructure
clang-3.9.0nb20160213 C language family frontend for LLVM
lldb-3.9.0nb20160213 next generation, high-performance debugger

$ uname -a
NetBSD chieftec 7.99.26 NetBSD 7.99.26 (GENERIC) #0: Wed Feb 10 21:58:18 UTC 2016
root@chieftec:/tmp/netbsd-tmp/sys/arch/amd64/compile/GENERIC amd64

This flag was disabled also for Darwin in #125 by @jkotas

8 years agoFix build issue on NetBSD: Add time(3) to PAL
Kamil Rytarowski [Fri, 12 Feb 2016 02:40:30 +0000 (03:40 +0100)]
Fix build issue on NetBSD: Add time(3) to PAL

Otherwise it triggers linker warnings.

/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/gc/gc.cpp:33869:
warning: warning: reference to compatibility time(); include <time.h> for correct reference

$ uname -a
NetBSD chieftec 7.99.25 NetBSD 7.99.25 (GENERIC) #0: Fri Dec 25 20:51:06 UTC 2015  root@chieftec:/tmp/netbsd-tmp/sys/arch/amd64/compile/GENERIC amd64

8 years agoMerge pull request #3172 from RussKeldorph/redisable
Russ Keldorph [Sun, 14 Feb 2016 13:39:35 +0000 (05:39 -0800)]
Merge pull request #3172 from RussKeldorph/redisable

Re-disable tests failing due to #2728

8 years agoRe-disable tests failing due to #2728
Russ Keldorph [Sun, 14 Feb 2016 04:48:26 +0000 (20:48 -0800)]
Re-disable tests failing due to #2728

8 years agoAdd more CMake sugar for NetBSD
Kamil Rytarowski [Sun, 14 Feb 2016 03:31:57 +0000 (04:31 +0100)]
Add more CMake sugar for NetBSD

This resolves 'gen-dactable-rva.sh does not print to dactablerva.h' #3168

This fixes issue with g_dacTable unavailable in libcoreclr.so.

This patch assumes GNU ld(1) on NetBSD

Thanks to Bruce Mitchener @waywardmonkeys for pointing out ld(1) nits.

8 years agoMake the build-process support rtags
Jostein Kjønigsen [Sat, 13 Feb 2016 20:18:42 +0000 (21:18 +0100)]
Make the build-process support rtags

Rtags depends on cmake to export its build commands in order to index
the codebase.

Adding this flag makes cmake do that.

8 years agoMerge pull request #3161 from richardlford/restoredllnames0212
Richard L Ford [Sat, 13 Feb 2016 03:33:59 +0000 (19:33 -0800)]
Merge pull request #3161 from richardlford/restoredllnames0212

Restore original dll names, use Define constants.

8 years agoFix tracing lib problems in multiple PALs. Issue #3164.
Mike McLaughlin [Fri, 12 Feb 2016 22:47:12 +0000 (14:47 -0800)]
Fix tracing lib problems in multiple PALs. Issue #3164.

Moved the tracepointprovider loading in miscpalapi.cpp to separate library that
is only linked by libcoreclr.so.

8 years agoMerge pull request #3145 from erozenfeld/PreserveCastVN
Eugene Rozenfeld [Fri, 12 Feb 2016 23:47:39 +0000 (15:47 -0800)]
Merge pull request #3145 from erozenfeld/PreserveCastVN

Preserve value numbers when discarding a cast.

8 years agoFix hfa_interop to omit ".dll" from DLLName
Richard L Ford [Fri, 12 Feb 2016 23:19:34 +0000 (15:19 -0800)]
Fix hfa_interop to omit ".dll" from DLLName

For interoperability cross platform, the DLL name given to the
DllImport attribute should not include the suffix since
dynamic link libraries use a different suffix on different
systems.

8 years agoMerge pull request #3159 from mikem8361/security
Mike McLaughlin [Fri, 12 Feb 2016 22:44:53 +0000 (14:44 -0800)]
Merge pull request #3159 from mikem8361/security

Change the transport pipe and runtime startup semaphores permissions

8 years agoClang sanitizer: remove unaligned address check
Steve Harter [Tue, 2 Feb 2016 23:31:21 +0000 (17:31 -0600)]
Clang sanitizer: remove unaligned address check

8 years agoFix build issue #788907: crossgen /createpdb not working
dotnet-bot [Fri, 12 Feb 2016 21:45:59 +0000 (13:45 -0800)]
Fix build issue #788907: crossgen /createpdb not working

[tfs-changeset: 1575079]

8 years agoRestore original dll names, use Define constants.
Richard L Ford [Fri, 12 Feb 2016 21:07:54 +0000 (13:07 -0800)]
Restore original dll names, use Define constants.

This changes set has no functional change, rather it cleans
up some aspects of a previous port.

When the hfa dlls were originally ported it was not known that
C# #defines could be used in the tests, so source files that
use #if were expanded to multiple source files with the preprocessing
being done manually. This changes goes back to using the original
files with appropriate define constants in the project files.

In addition, when these dlls were ported abbreviated names were
used. This change restores the dll names to the originals.

8 years agoMerge pull request #3153 from briansull/issue_2816_v2
Brian Sullivan [Fri, 12 Feb 2016 20:51:02 +0000 (12:51 -0800)]
Merge pull request #3153 from briansull/issue_2816_v2

Fix issues with passing 16-byte structs on Arm64

8 years agoChange the transport pipe and dbgshim runtime startup semaphores permissions to user...
Mike McLaughlin [Thu, 11 Feb 2016 21:28:09 +0000 (13:28 -0800)]
Change the transport pipe and dbgshim runtime startup semaphores permissions to user only

Since the mechanism used to enumerate process modules (/proc/xxxx/maps on Linux, running
vmvmap on OSX) is user only and the default group new users get on OSX is the same ("staff")
restricting the transport pipes and runtime startup named semaphores to user only is the
right way to go.

If we find some reason to give groups permissions, we can always change that later though
the process module enumeration would have to be figured out.

8 years agoFix issues with passing 16-byte structs on Arm64
Brian Sullivan [Fri, 12 Feb 2016 03:30:55 +0000 (19:30 -0800)]
Fix issues with passing 16-byte structs on Arm64

Properly track the GC pointers that are being loaded/stored or copied from these pass by value structs.
Implements passing 16-byte value types in the outgoing stack area, previously not implemented.
Added utility method getJitGCtype for converting the VM's CorInfoGCType to the JIT's var_types enum
Added utility method getStructGcPtrsFromOp to examine a GT_LDOPB or GT_LCL_VAR
 that represents a 16-byte struct and get the GC layout information
Allow LSRA to pick two consecutive registers to pass 16-byte structs on the stack
Added utility methods checkAndAssignInterval and checkAndClearInterval to handle the
 second register used to pass arguments on ARM64.

8 years agoMerge pull request #3121 from sejongoh/add_combo_stress_options
Sejong Oh [Fri, 12 Feb 2016 18:25:30 +0000 (10:25 -0800)]
Merge pull request #3121 from sejongoh/add_combo_stress_options

Add JitStress x JitStressRegs combo stress tests

8 years agoMerge pull request #3158 from krytarowski/netbsd-support-44
Jan Vorlicek [Fri, 12 Feb 2016 18:08:06 +0000 (19:08 +0100)]
Merge pull request #3158 from krytarowski/netbsd-support-44

Fix build on NetBSD: Allow to overload definition of wchar_t

8 years agoMerge pull request #3088 from RussKeldorph/testwarn
Russ Keldorph [Fri, 12 Feb 2016 13:35:22 +0000 (05:35 -0800)]
Merge pull request #3088 from RussKeldorph/testwarn

Fix warnings in JIT test build

8 years agoFix build on NetBSD: Allow to overload definition of wchar_t
Kamil Rytarowski [Fri, 12 Feb 2016 11:39:31 +0000 (12:39 +0100)]
Fix build on NetBSD: Allow to overload definition of wchar_t

This allows to build 100% of the sources on NetBSD.

In file included from /tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/safecrt/safecrt_output_l.c:70:
/usr/pkg/bin/../lib/clang/3.9.0/include/stddef.h:90:24: error: typedef redefinition with different types ('int' vs 'unsigned short')
typedef __WCHAR_TYPE__ wchar_t;
                       ^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/inc/pal_char16.h:32:17: note: expanded from macro 'wchar_t'
                ^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/inc/pal_char16.h:44:24: note: previous definition is here
typedef unsigned short wchar_t;
                       ^
/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/inc/pal_char16.h:32:17: note: expanded from macro 'wchar_t'
                ^
1 error generated.

Closes wchar_t redefinition broken on NetBSD #2937

8 years agoMerge pull request #3150 from krytarowski/netbsd-support-42
Jan Kotas [Fri, 12 Feb 2016 06:08:41 +0000 (22:08 -0800)]
Merge pull request #3150 from krytarowski/netbsd-support-42

Fix build issue on NetBSD: Include <stdlib.h> for alloca(3)

8 years agoMerge pull request #3146 from mikem8361/vso190301
Mike McLaughlin [Fri, 12 Feb 2016 03:44:31 +0000 (19:44 -0800)]
Merge pull request #3146 from mikem8361/vso190301

Fix VSO bug #190301 contract problems in DACRaiseException.

8 years agoFix build issue on NetBSD: Include <stdlib.h> for alloca(3)
Kamil Rytarowski [Fri, 12 Feb 2016 02:46:46 +0000 (03:46 +0100)]
Fix build issue on NetBSD: Include <stdlib.h> for alloca(3)

Header <alloca.h> isn't needed on other supported systems either.

/tmp/pkgsrc-tmp/wip/coreclr-git/work/coreclr/src/pal/src/file/directory.cpp:605:
warning: Warning: reference to the libc supplied alloca(3); this most likely will
not work. Please use the compiler provided version of alloca(3), by supplying the
appropriate compiler flags (e.g. not -std=c89).

$ uname -a
NetBSD chieftec 7.99.25 NetBSD 7.99.25 (GENERIC) #0: Fri Dec 25 20:51:06 UTC 2015  root@chieftec:/tmp/netbsd-tmp/sys/arch/amd64/compile/GENERIC amd64

8 years agoMerge pull request #3076 from krytarowski/netbsd-support-37
Jan Vorlicek [Fri, 12 Feb 2016 01:31:15 +0000 (02:31 +0100)]
Merge pull request #3076 from krytarowski/netbsd-support-37

Permit to inject additional CMake arguments via environment variables

8 years agoFix VSO bug #190301 contract problems in DACRaiseException.
Mike McLaughlin [Thu, 11 Feb 2016 22:25:21 +0000 (14:25 -0800)]
Fix VSO bug #190301 contract problems in DACRaiseException.

Added the proper contracts to the DAC notification functions.

8 years agoMerge pull request #3122 from krytarowski/netbsd-support-40
Jan Vorlicek [Fri, 12 Feb 2016 00:49:35 +0000 (01:49 +0100)]
Merge pull request #3122 from krytarowski/netbsd-support-40

Fix build on NetBSD: Include <cstdarg> for va_list

8 years agoPreserve value numbers when discarding a cast.
Eugene Rozenfeld [Fri, 12 Feb 2016 00:41:31 +0000 (16:41 -0800)]
Preserve value numbers when discarding a cast.

This is a fix for an assert during CSE. After processing a CSE definition
the tree got morphed. During morphing a cast was discarded by narrowing
the operand of the cast. The value number of the operand was cleared. Later,
when processing a use of the CSE, the code was attempting to process the side effects
in the tree of the use and was encountering a node with no value number resulting
in an assert. The fix is to transfer the value number from the cast node to the narrowed
operand.

8 years agoMerge pull request #3136 from sivarv/simdfix2
Sivarv [Fri, 12 Feb 2016 00:22:45 +0000 (16:22 -0800)]
Merge pull request #3136 from sivarv/simdfix2

Fix to issue #2970

8 years agoMerge pull request #3082 from sejongoh/update_corefx_build_steps
Sejong Oh [Thu, 11 Feb 2016 23:32:03 +0000 (15:32 -0800)]
Merge pull request #3082 from sejongoh/update_corefx_build_steps

Fixed corefx build failures

8 years agoMerge pull request #3132 from stephentoub/taskscheduler_tracking
Stephen Toub [Thu, 11 Feb 2016 23:15:17 +0000 (18:15 -0500)]
Merge pull request #3132 from stephentoub/taskscheduler_tracking

Track TaskSchedulers only when debugger attached

8 years agoMerge pull request #3139 from stephentoub/task_id_perf
Stephen Toub [Thu, 11 Feb 2016 23:15:06 +0000 (18:15 -0500)]
Merge pull request #3139 from stephentoub/task_id_perf

Fix access to Task.Id while finishing continuations

8 years agoUpdated build steps to fix corefx build issues
Sejong Oh [Wed, 10 Feb 2016 01:20:06 +0000 (17:20 -0800)]
Updated build steps to fix corefx build issues

8 years agoFix access to Task.Id while finishing continuations
stephentoub [Thu, 11 Feb 2016 21:41:43 +0000 (16:41 -0500)]
Fix access to Task.Id while finishing continuations

Task.Id is lazily-initialized with an interlocked operation and we strive to avoid accessing it anywhere in Task's internals on hot paths, but apparently when some ETW logging was added around continuations, calls were added that access Task.Id even if logging is disabled.  This is accounting for ~30% of the cycles consumed in a TCS Task's lifecycle!  This commit fixes it by making sure these accesses to Id are guarded.

8 years agoFix to issue #2970
sivarv [Thu, 11 Feb 2016 19:39:05 +0000 (11:39 -0800)]
Fix to issue #2970

The repro is a case of one of the method called is returning Vector3/4 type value.
On unix such a struct will gets returned in two registers and hence will
be assigned to a local by importer and marked as multiRegArgOrRet=1.
But it doesn't ensure that the local will not be register allocated.
For the repro case it gets register allocated.

IR: GT_LCL_FLD(tmp1) = GT_CALL returning SIMD12

Codgen routine genStoreRegisterReturnInLclVar() for stroing a struct returned in two registers to a lcl var or lcl_fld
is making the assumption that lcl var will be on stack not in a register.
This may not be true for SIMD structs returned in two registers.

For now to workaround Codegen limitation marking tmp1 as DoNoEnregister.

Fixes #2970

8 years agoMerge pull request #3137 from wtgodbe/disable
William Godbe [Thu, 11 Feb 2016 21:05:13 +0000 (13:05 -0800)]
Merge pull request #3137 from wtgodbe/disable

Disable pri 1 tests failing in the CI

8 years agoDisable pri 1 tests failing in the CI
William Godbe [Thu, 11 Feb 2016 20:33:44 +0000 (12:33 -0800)]
Disable pri 1 tests failing in the CI

8 years agoTrack TaskSchedulers only when debugger attached
stephentoub [Thu, 11 Feb 2016 18:06:41 +0000 (13:06 -0500)]
Track TaskSchedulers only when debugger attached

Today the base TaskScheduler ctor registers every created scheduler in a ConditionalWeakTable.  This is then used in the internal TaskScheduler.GetTaskSchedulersForDebugger() to enable a debugger to find all of the schedulers that are active and then in turn find all tasks scheduled to them.  However, for scenarios that involve creating many, many schedulers, this registration adds up to a non-trivial cost, both in time and space, and is only relevant for debugging.  Plus, since this mechanism was introduced, Visual Studio has additional ways of tracking tasks for display in the Tasks window, e.g. ETW events.

This commit simply makes that registration more pay-for-play, only doing it if the debugger is attached at the time of the scheduler's creation.

8 years agoAdd jitstress x jitstressregs
Sejong Oh [Wed, 10 Feb 2016 23:59:41 +0000 (15:59 -0800)]
Add jitstress x jitstressregs

8 years agoMerge pull request #3119 from ellismg/add-rhel72
Matt Mitchell [Thu, 11 Feb 2016 16:27:48 +0000 (08:27 -0800)]
Merge pull request #3119 from ellismg/add-rhel72

Add Red Hat Enterprise Linux 7.2 Runs

8 years agoMerge pull request #3126 from jkotas/crossgen
Jan Kotas [Thu, 11 Feb 2016 10:48:05 +0000 (02:48 -0800)]
Merge pull request #3126 from jkotas/crossgen

Change crossgen defaults

8 years agoMerge pull request #3120 from erozenfeld/MultToShiftVN1
Eugene Rozenfeld [Thu, 11 Feb 2016 08:00:26 +0000 (00:00 -0800)]
Merge pull request #3120 from erozenfeld/MultToShiftVN1

Small correction for #3067.

8 years agoMerge pull request #3127 from AndyAyersMS/FlakyTestDisable
Andy Ayers [Thu, 11 Feb 2016 07:29:34 +0000 (23:29 -0800)]
Merge pull request #3127 from AndyAyersMS/FlakyTestDisable

Disable test causing Ubuntu failures

8 years agoDisable test causing Ubuntu failures
Andy Ayers [Thu, 11 Feb 2016 03:53:53 +0000 (19:53 -0800)]
Disable test causing Ubuntu failures

Fails because of mismatched System.IO versions. See #3117 for some
discussion.

8 years agoChange crossgen defaults
Jan Kotas [Thu, 11 Feb 2016 03:35:01 +0000 (19:35 -0800)]
Change crossgen defaults

Change crossgen to generate R2R images by default

8 years agoMerge pull request #3118 from jkotas/buffercopy
Jan Kotas [Thu, 11 Feb 2016 02:47:45 +0000 (18:47 -0800)]
Merge pull request #3118 from jkotas/buffercopy

Add a fast path for byte[] to Buffer.BlockCopy

8 years agoAdd a fast path for byte[] to Buffer.BlockCopy
Jan Kotas [Wed, 10 Feb 2016 17:18:13 +0000 (09:18 -0800)]
Add a fast path for byte[] to Buffer.BlockCopy

8 years agoFix build on NetBSD: Include <cstdarg> for va_list
Kamil Rytarowski [Thu, 11 Feb 2016 00:02:51 +0000 (01:02 +0100)]
Fix build on NetBSD: Include <cstdarg> for va_list

8 years agoSmall correction for #3067.
Eugene Rozenfeld [Wed, 10 Feb 2016 23:50:41 +0000 (15:50 -0800)]
Small correction for #3067.

The code to change multiplication to shift shouldn't be
under LEA_AVAILABLE since the code to process multiplication
by power of 2 isn't.

8 years agoAdd Red Had Enterprise Linux 7.2 Runs
Matt Ellis [Wed, 10 Feb 2016 22:55:34 +0000 (14:55 -0800)]
Add Red Had Enterprise Linux 7.2 Runs

8 years agoAdd new parameter with settable option: cmakeargs
Kamil Rytarowski [Mon, 8 Feb 2016 11:02:20 +0000 (12:02 +0100)]
Add new parameter with settable option: cmakeargs

This will allow to pass user-defined CMake arguments.

One of the users is pkgsrc, which defines it to following example string:
-DPYVERSSUFFIX:STRING=2.7 -DCMAKE_INSTALL_PREFIX:PATH=/usr/pkg \
-DCMAKE_MODULE_PATH:PATH=/tmp/pkgsrc-tmp/wip/coreclr-git/work/.buildlink/cmake-Modules \
-DCMAKE_SKIP_RPATH:BOOL=TRUE -DCMAKE_INSTALL_LIBDIR:PATH=lib \
-DCMAKE_INSTALL_MANDIR:PATH=man

Without these values unmodified build.sh won't integrate with pkgsrc as
expected.

Solution suggested by Jan Vorli (Microsoft)

While there, there was need to alter loop type to handle options passed to
arguments. As a bonus, new loop should be POSIX confirming.

8 years agoMerge pull request #3112 from mikem8361/sosfix
Mike McLaughlin [Wed, 10 Feb 2016 22:37:25 +0000 (14:37 -0800)]
Merge pull request #3112 from mikem8361/sosfix

Fix SOS managed breakpoints when coreclr symbols are stripped.

8 years agoFix SOS managed breakpoints when coreclr symbols are stripped.
Mike McLaughlin [Tue, 9 Feb 2016 01:47:31 +0000 (17:47 -0800)]
Fix SOS managed breakpoints when coreclr symbols are stripped.

Added a SOS DAC interface (ISOSDacInterface4::GetClrNotification) to get the exception
notification arguments instead of using the GetLastExceptionInformation function from the lldb
sosplugin that depends on coreclr symbols being present.

On the coreclr side, the clr notification arguments are saved in a global variable that is DAC
accessible. A critical section was added to protect this global variable while the special
exception is raised.

Setting the internal COMPlus_DebugBreakOnAssert environment variable causes 3 or 4 breaks in
the debugger with no reason.  It was breaking in the function that was determining whether it
should break.  I was using COMPlus_BreakOnEELoad=2 to break after coreclr was loaded and initialized
to set managed breakpoints and on a debug build it generates an assert (on release just a DebugBreak).

8 years agoFix warnings in test build
Russ Keldorph [Sun, 7 Feb 2016 02:44:28 +0000 (18:44 -0800)]
Fix warnings in test build

```
warning : Layout specified for auto-layout class
    C:\git\coreclr\tests\src\JIT\Directed\PREFIX\unaligned\1\add.ilproj
    C:\git\coreclr\tests\src\JIT\Directed\PREFIX\volatile\1\add.ilproj

warning : Non-nested class has nested visibility (0x00000102), changed to non-nested (0x00000101)
    C:\git\coreclr\tests\src\JIT\jit64\regress\vsw\153682\test.ilproj

warning : Reference to undeclared extern assembly '<assembly>'. Attempting autodetect
    C:\git\coreclr\tests\src\JIT\Methodical\explicit\misc\_il_dbgrefarg_box_f8.ilproj (System.Console)
    C:\git\coreclr\tests\src\JIT\Methodical\explicit\misc\_il_relrefarg_box_f8.ilproj (System.Console)
    C:\git\coreclr\tests\src\JIT\Methodical\tailcall_v4\hijacking.ilproj (mscorlib, System.Threading, System.Threading.Thread)

warning : Undefined implementation in ExportedType '<type>' -- ExportType not emitted
    C:\git\coreclr\tests\src\JIT\Regression\CLR-x86-JIT\V1-M09.5-PDC\b32879\b32879.ilproj (HiDad, _vbProject)
    C:\git\coreclr\tests\src\JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b65423\b65423.ilproj (b1904)

warning C4311: 'type cast': pointer truncation from 'void *' to 'unsigned int' (+redundant C4302)
    C:\git\coreclr\bin\Native\src\JIT\Directed\pinning\object-pin\mirror.vcxproj
```

8 years agoMerge pull request #3107 from wtgodbe/reenable
William Godbe [Wed, 10 Feb 2016 18:10:15 +0000 (10:10 -0800)]
Merge pull request #3107 from wtgodbe/reenable

Re-enable previously disabled tests that are now passing on non-Windows platforms

8 years agoMerge pull request #3095 from krytarowski/netbsd-support-38
Jan Kotas [Wed, 10 Feb 2016 16:43:19 +0000 (08:43 -0800)]
Merge pull request #3095 from krytarowski/netbsd-support-38

Add support for Floating Point registers in ucontext_t on NetBSD

8 years agoMerge pull request #3114 from mmitche/switch-to-auto
Matt Mitchell [Wed, 10 Feb 2016 16:22:10 +0000 (08:22 -0800)]
Merge pull request #3114 from mmitche/switch-to-auto

Switch to auto images

8 years agoSwitch to auto images
Matt Mitchell [Wed, 10 Feb 2016 16:21:19 +0000 (08:21 -0800)]
Switch to auto images

8 years agoMerge pull request #3110 from jkotas/event-tracing
Jan Kotas [Wed, 10 Feb 2016 03:06:50 +0000 (19:06 -0800)]
Merge pull request #3110 from jkotas/event-tracing

Make Unix event tracing conditionally enabled

8 years agoMerge pull request #3108 from sivarv/gcstressfix
Sivarv [Wed, 10 Feb 2016 01:18:21 +0000 (17:18 -0800)]
Merge pull request #3108 from sivarv/gcstressfix

Fix to gc-stress issue #2921.

8 years agoMake Unix event tracing conditionally enabled
Jan Kotas [Wed, 10 Feb 2016 01:15:06 +0000 (17:15 -0800)]
Make Unix event tracing conditionally enabled

Add condition around the expensive event tracing code to enable it conditionally only if the event tracing is enabled

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 agoFix to gc-stress issue #2921.
sivarv [Tue, 9 Feb 2016 22:54:14 +0000 (14:54 -0800)]
Fix to gc-stress issue #2921.

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 previously disabled tests that are now passing on non-Windows platforms
William Godbe [Tue, 9 Feb 2016 22:45:47 +0000 (14:45 -0800)]
Re-enable previously disabled tests that are now passing on non-Windows platforms

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.