platform/upstream/coreclr.git
8 years agoMerge pull request #6296 from swgillespie/vscode-gitignore
Sean Gillespie [Fri, 15 Jul 2016 21:15:29 +0000 (14:15 -0700)]
Merge pull request #6296 from swgillespie/vscode-gitignore

Add VS Code local settings folder to gitignore

8 years agoMerge pull request #6295 from wtgodbe/initToolsFix
William Godbe [Fri, 15 Jul 2016 19:50:58 +0000 (12:50 -0700)]
Merge pull request #6295 from wtgodbe/initToolsFix

Stop chmoding nonexistant corerun file in Tools dir

8 years agoAdd VS Code local settings folder to gitignore
Sean Gillespie [Fri, 15 Jul 2016 19:00:17 +0000 (12:00 -0700)]
Add VS Code local settings folder to gitignore

8 years agoStop chmoding nonexistant corerun file in Tools dir
wtgodbe [Fri, 15 Jul 2016 18:10:49 +0000 (11:10 -0700)]
Stop chmoding nonexistant corerun file in Tools dir

8 years agoMerge pull request #6037 from sejongoh/linux_struct_arg
Sejong Oh [Fri, 15 Jul 2016 17:46:42 +0000 (10:46 -0700)]
Merge pull request #6037 from sejongoh/linux_struct_arg

Unecessary Linux stack argument copy

8 years agoMerge pull request #6249 from prajwal-aithal/devel/arm-ci-documentation
Jarret Shook [Fri, 15 Jul 2016 16:58:33 +0000 (09:58 -0700)]
Merge pull request #6249 from prajwal-aithal/devel/arm-ci-documentation

Documentation: Add documentation for building coreclr for emulator

8 years agoMerge pull request #6287 from MichalStrehovsky/removeAssertOnMustExpand
Michal Strehovský [Fri, 15 Jul 2016 06:11:27 +0000 (23:11 -0700)]
Merge pull request #6287 from MichalStrehovsky/removeAssertOnMustExpand

Remove assert validating intrinsic expansion on mustExpand

8 years agoMerge pull request #6050 from prajwal-aithal/devel/arm-ci-runtests
Jarret Shook [Thu, 14 Jul 2016 22:58:09 +0000 (15:58 -0700)]
Merge pull request #6050 from prajwal-aithal/devel/arm-ci-runtests

ARM-CI: Add tests to CI script

8 years agoRemove assert validating intrinsic expansion on mustExpand
Michal Strehovský [Thu, 14 Jul 2016 22:26:20 +0000 (15:26 -0700)]
Remove assert validating intrinsic expansion on mustExpand

The assert is incorrect. Consider expansion of
CORINFO_INTRINSIC_RTH_GetValueInternal, where the RuntimeTypeHandle was
created through a generic lookup helper call. The intrinsic expansion of
this sequence becomes the generic lookup helper call on it's own.

8 years agoRemove unnecessary copies for stack struct argument except:
Sejong OH [Mon, 11 Jul 2016 20:44:09 +0000 (13:44 -0700)]
Remove unnecessary copies for stack struct argument except:

  - struct is promoted to registers
  - fgMakeOutgoingStructArgCopy is called
  - tree pattern of obj - addr - simd operator

    *  call      void   foo
    ...
    +--*  obj       simd16
    |  \--*  addr      byref
    |     |  /--*  lclVar    simd16 V05 loc4
    |     \--*  simd      simd16 int -
    |        \--*  lclVar    simd16 V08 tmp1
    ...

8 years agoMerge pull request #6256 from wtgodbe/buildToolsVersion
William Godbe [Thu, 14 Jul 2016 20:20:44 +0000 (13:20 -0700)]
Merge pull request #6256 from wtgodbe/buildToolsVersion

Update to latest version of buildtools

8 years agoUpdate to latest version of buildtools
wtgodbe [Wed, 13 Jul 2016 17:29:43 +0000 (10:29 -0700)]
Update to latest version of buildtools

8 years agoMerge pull request #6276 from BruceForstall/LocAllocCleanup
Bruce Forstall [Thu, 14 Jul 2016 18:39:48 +0000 (11:39 -0700)]
Merge pull request #6276 from BruceForstall/LocAllocCleanup

Clean up localloc implementation

8 years agoClean up localloc implementation; improve AMD64 codegen for initialized locallocs
Bruce Forstall [Wed, 13 Jul 2016 23:00:35 +0000 (16:00 -0700)]
Clean up localloc implementation; improve AMD64 codegen for initialized locallocs

8 years agoMerge pull request #6274 from hqueue/arm/xor_swap
Brian Sullivan [Thu, 14 Jul 2016 14:14:50 +0000 (07:14 -0700)]
Merge pull request #6274 from hqueue/arm/xor_swap

Introduce XOR swap to legacy codegen for ARM32

8 years agoIntroduce XOR swap to legacy codegen for ARM32
Hyung-Kyu Choi [Thu, 14 Jul 2016 07:23:57 +0000 (16:23 +0900)]
Introduce XOR swap to legacy codegen for ARM32

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
8 years agodocs: Add building coreclr for emulator
Prajwal A N [Wed, 13 Jul 2016 04:12:12 +0000 (13:12 +0900)]
docs: Add building coreclr for emulator

Added documentation for building coreclr for the Linux ARM Emulator.

Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
8 years agoMerge pull request #6263 from stephentoub/remove_serializable
Stephen Toub [Thu, 14 Jul 2016 02:50:23 +0000 (22:50 -0400)]
Merge pull request #6263 from stephentoub/remove_serializable

Add #if FEATURE_SERIALIZATION around customized [Serializable]s

8 years agoMerge pull request #6257 from rahku/crossgen
Rahul Kumar [Thu, 14 Jul 2016 02:26:40 +0000 (19:26 -0700)]
Merge pull request #6257 from rahku/crossgen

ARM64:Similar to arm, in order to preserve volatile semantics MemoryB…

8 years agoMake StubHelpers::ProcessByrefValidationList NOTHROW (#6258)
Jan Vorlicek [Wed, 13 Jul 2016 22:54:42 +0000 (00:54 +0200)]
Make StubHelpers::ProcessByrefValidationList NOTHROW (#6258)

This change fixes StubHelpers::ProcessByrefValidationList so that it doesn't throw.
While there was a EX_TRY / EX_CATCH, the catch handler calls FormatValidationMessage
to format the message before aborting the process and that function can throw.

The fix is to wrap the inside of the EX_CATCH in one more EX_TRY / EX_CATCH and
abort the process without message if there is an exception in the FormatValidationMessage.

8 years agoMerge pull request #6205 from stephentoub/environmentaugments
Stephen Toub [Wed, 13 Jul 2016 22:51:38 +0000 (18:51 -0400)]
Merge pull request #6205 from stephentoub/environmentaugments

Add EnvironmentAugments to coreclr

8 years agoMerge pull request #6182 from wateret/fix-6051
Carol Eidt [Wed, 13 Jul 2016 22:44:44 +0000 (15:44 -0700)]
Merge pull request #6182 from wateret/fix-6051

[ARM-softfp/Linux] Get precise type for struct

8 years agoAdd #if FEATURE_SERIALIZATION around non-functional [Serializable]
Stephen Toub [Wed, 13 Jul 2016 22:43:45 +0000 (18:43 -0400)]
Add #if FEATURE_SERIALIZATION around non-functional [Serializable]

We're adding BinaryFormatter to corefx.  At present, ISerializable and friends are declared in corefx rather than being exported from System.Private.Corelib.  As a result, there are a fair number of types in mscorlib that try to customize their serialization, but because they're doing so using interfaces that aren't exported (and in some cases, aren't even currently compiled in), a formatter outside of Corelib sees a type as serializable but then tries to serialize it using the default rules and fails.

This commit ifdefs the [Serializable] attribute on types that try to customize their serialization.  If in the future we decide we want to expose ISerializable and friends from Corelib in order to enable the serialization of these types (which we'll likely want to), e.g Delegate, Exception, etc. we'll need to turn on FEATURE_SERIALIZATION for coreclr, and these will all come back automatically.

8 years agoMerge pull request #6255 from wtgodbe/targetingpack
William Godbe [Wed, 13 Jul 2016 22:14:26 +0000 (15:14 -0700)]
Merge pull request #6255 from wtgodbe/targetingpack

Build the TargetingPack package as part of build-packages scripts

8 years agoMerge pull request #6254 from pgavlin/RemoveRenameUpdatedVars
Pat Gavlin [Wed, 13 Jul 2016 22:11:13 +0000 (15:11 -0700)]
Merge pull request #6254 from pgavlin/RemoveRenameUpdatedVars

Remove RenameUpdatedVars.

8 years agoConditionally compile EnvironmentAugments.cs for coreclr
Stephen Toub [Wed, 13 Jul 2016 20:51:54 +0000 (16:51 -0400)]
Conditionally compile EnvironmentAugments.cs for coreclr

8 years agoAdd EnvironmentAugments to coreclr
Stephen Toub [Sat, 9 Jul 2016 21:46:12 +0000 (17:46 -0400)]
Add EnvironmentAugments to coreclr

8 years agoMerge pull request #6251 from BruceForstall/Localloc
Bruce Forstall [Wed, 13 Jul 2016 20:30:33 +0000 (13:30 -0700)]
Merge pull request #6251 from BruceForstall/Localloc

Implement localloc for RyuJIT/x86

8 years agoImplement localloc for RyuJIT/x86
Bruce Forstall [Tue, 12 Jul 2016 23:38:17 +0000 (16:38 -0700)]
Implement localloc for RyuJIT/x86

Fixes #4182

Change RyuJIT to generate localloc code for x86 the same way legacy JIT does.
E.g., use a push/dec loop for initialized memory. And avoid using "sub esp"
to keep the emitter from tracking stack pointer adjustments.

8 years agoMerge pull request #6224 from BruceForstall/Fix4177
Bruce Forstall [Wed, 13 Jul 2016 20:15:02 +0000 (13:15 -0700)]
Merge pull request #6224 from BruceForstall/Fix4177

Fix #4177: RyuJIT/x86 NYI related to lvaArgType()

8 years agoFix #4177: RyuJIT/x86 NYI related to lvaArgType()
Bruce Forstall [Mon, 11 Jul 2016 23:44:41 +0000 (16:44 -0700)]
Fix #4177: RyuJIT/x86 NYI related to lvaArgType()

For x86, this function can simply return the variable type. There is
no need to map struct types. The function actually will never be
called on x86 for struct types because it is only called for register
arguments.

This NYI was only hit in the case of JMP calls. I fixed two cases
in the JMP implementation where FEATURE_VARARGS code assumed AMD64, due
to the Windows AMD64 ABI convention to pass float varargs values in both
integer and floating point registers. I put that under `#ifdef _TARGET_AMD64_`.

This removes 426 NYI.

8 years agoMerge pull request #6253 from stephentoub/stop_stripping_serializable
Stephen Toub [Wed, 13 Jul 2016 19:21:36 +0000 (15:21 -0400)]
Merge pull request #6253 from stephentoub/stop_stripping_serializable

Stop BclRewriter from trimming serializable metadata

8 years agoARM64:Similar to arm, in order to preserve volatile semantics MemoryBarrier instructi...
Rahul Kumar [Wed, 13 Jul 2016 19:06:44 +0000 (12:06 -0700)]
ARM64:Similar to arm, in order to preserve volatile semantics MemoryBarrier instructions needs to be inserted. Otherwise writes to memory locations can be re-ordered. For eg. In function leave_spin_lock() we set holding_thread to -1 and then set pSpinLock->lock to -1. Without memorybarrier it is possible for different threads to see pSpinLock->lock new value of -1 and old value of holding_thread. This causes assertion pSpinLock->holding_thread == (Thread*)-1 in function enter_spin_lock() to fire

8 years agoMerge pull request #6247 from ellismg/add-back-exception-members
Matt Ellis [Wed, 13 Jul 2016 17:50:26 +0000 (10:50 -0700)]
Merge pull request #6247 from ellismg/add-back-exception-members

Add back some surface area to thinned corelib

8 years agobuild the TargetingPack package as part of build-packages scripts
wtgodbe [Wed, 13 Jul 2016 17:21:50 +0000 (10:21 -0700)]
build the TargetingPack package as part of build-packages scripts

8 years agoStop BclRewriter from trimming serializable metadata
Stephen Toub [Wed, 13 Jul 2016 15:36:34 +0000 (11:36 -0400)]
Stop BclRewriter from trimming serializable metadata

8 years agoRemove RenameUpdatedVars.
Pat Gavlin [Tue, 12 Jul 2016 21:48:52 +0000 (14:48 -0700)]
Remove RenameUpdatedVars.

The variable renaming performed by rationalize was originally intended
(according to its comments) to allow assignments that were embedded in
subtrees to be hoisted out into a preceding statement. It appears that
this logic has been removed, so the rename pass is no longer needed.

8 years ago[ARM-softfp/Linux] Get precise type for pointer-size struct
Hanjoung Lee [Wed, 13 Jul 2016 10:39:21 +0000 (19:39 +0900)]
[ARM-softfp/Linux] Get precise type for pointer-size struct

Compiler::getPrimitiveTypeForStruct may return TYP_FLOAT but is off on softfp.
So we need to check that in another way rather than `IsHfa()`.
Otherwise struct types with single float32 will make inconsistency in gentree.
Which ends up with assert failure "Bad IL: Illegal assignment of float into integer!".

Check is done in Compiler::getPrimitiveTypeForStruct, by isSingleFloat32Struct.

Fix #6051

8 years agoMerge pull request #6246 from rahku/crossgen
Rahul Kumar [Wed, 13 Jul 2016 01:08:53 +0000 (18:08 -0700)]
Merge pull request #6246 from rahku/crossgen

Arm64: remove gcstress_fail tag from certain tests in tests.lst

8 years agoAdd back some surface area to thinned corelib
Matt Ellis [Wed, 13 Jul 2016 01:08:37 +0000 (18:08 -0700)]
Add back some surface area to thinned corelib

We are working on expsosing some existing exception types from
System.Runtime in CoreFX. The implementations will facade over
System.Private.CoreLib, but we need to make sure all the members we expect
to expose from the contract are present in the implementation assembly.

Expose the missing members for ExecutionEngineException,
NotFiniteNumberException and ExternalException.

8 years agoMerge pull request #6244 from AndyAyersMS/FixDataCollection
Andy Ayers [Wed, 13 Jul 2016 01:06:43 +0000 (18:06 -0700)]
Merge pull request #6244 from AndyAyersMS/FixDataCollection

Inliner: Update data collection by targeting a single inline

8 years agoArm64: remove gcstress_fail tag from certain tests in tests.lst
Rahul Kumar [Wed, 13 Jul 2016 01:05:12 +0000 (18:05 -0700)]
Arm64: remove gcstress_fail tag from certain tests in tests.lst

8 years agoMerge pull request #6226 from rahku/crossgen
Rahul Kumar [Wed, 13 Jul 2016 01:01:22 +0000 (18:01 -0700)]
Merge pull request #6226 from rahku/crossgen

ARM64: In GetDelegateTarget a portion of the _WIN64 code was under _T…

8 years agoSuppress Interactive Shell when running PS
Matt Ellis [Wed, 13 Jul 2016 00:58:02 +0000 (17:58 -0700)]
Suppress Interactive Shell when running PS

On recent builds of Windows/PowerShell it seems like PS wants to write a
prompt after invoking the script, which causes a problem because that puts
extra gunk into the generated source file from h2inc, which causes
downstream failures.

8 years agoMerge pull request #6225 from pgavlin/RationalizeCleanup
Pat Gavlin [Wed, 13 Jul 2016 00:10:37 +0000 (17:10 -0700)]
Merge pull request #6225 from pgavlin/RationalizeCleanup

Refactor top-level comma rewriting.

8 years agoAdd a comment at the use of RewriteTopLevelComma.
Pat Gavlin [Wed, 13 Jul 2016 00:09:58 +0000 (17:09 -0700)]
Add a comment at the use of RewriteTopLevelComma.

8 years agoInliner: Update data collection by targeting a single inline
Andy Ayers [Tue, 12 Jul 2016 23:12:46 +0000 (16:12 -0700)]
Inliner: Update data collection by targeting a single inline

The inliner currently will record detailed data about the last successful
inline performed (given a build with DEBUG or INLINE_DATA defined).
However, for purposes of inline profitability analysis we might be more
interested in the data from an earlier inline.

This change creates a mechanism where the replay log can flag one inline
per method as the target of data collection. The inliner checks for this
attribute during replay and captures that inline's data.

8 years agoRefactor top-level comma rewriting.
Pat Gavlin [Mon, 11 Jul 2016 22:03:42 +0000 (15:03 -0700)]
Refactor top-level comma rewriting.

Top-level commas were being handled in three separate parts of
rationalize: TreeTransformRationalization, RewriteSimpleTransforms,
and DoPhase. Furthermore, the transform performed by the latter
was distinct from the transforms performed by the former two parts,
as those parts called out to RewriteTopLevelComma in order to do
the necessary rewrite. This change collects the two transforms
in RewriteTopLevelComma and centralizes the comma handling in
RewriteSimpleTransforms.

With the comma handling centralized in RewriteSimpleTransforms,
TreeTransformRationalization was not doing much of anything, so
it has been removed and RewriteSimpleTransforms renamed to
TreeTransformRationalization.

8 years agoactive exception regression fix (#6117)
chunseoklee [Tue, 12 Jul 2016 21:28:26 +0000 (06:28 +0900)]
active exception regression fix (#6117)

This patch fixes regression caused by 597e160 commit.
Previous PAL_VirtualUnwind does not set CONTEXT_UNWOUND_TO_CALL
properly. In this patch, the flag is added for non-signaled exception.

8 years agoFix !PrintException (pe) -lines bug where line number/source info is not being displa...
Mike McLaughlin [Tue, 12 Jul 2016 21:12:45 +0000 (14:12 -0700)]
Fix !PrintException (pe) -lines bug where line number/source info is not being displayed. (#6241)

The argument bLineNumbers to FormatGeneratedException was being used a local flag.

8 years agoExpose missing members of Array to prep for dotnet/corefx#9998. (#6230)
Dan Moseley [Tue, 12 Jul 2016 20:26:53 +0000 (13:26 -0700)]
Expose missing members of Array to prep for dotnet/corefx#9998.  (#6230)

* Expose missing members of Array to prep for dotnet/corefx#9998. modelgen.exe is helpful.

* Remove dead code

* Implement Array.LongLength.

* Revert "Implement Array.LongLength."

This reverts commit fdf7e96172d3b816551b827b6a45fbc692b0551d.

* Revert "Remove dead code"

This reverts commit 432087c2d6f826db93fa30a07476dc2decb12633.

* Expose Array.GetLongLength from VM

8 years agoARM64: In GetDelegateTarget a portion of the _WIN64 code was under _TARGET_AMD64_...
Rahul Kumar [Tue, 12 Jul 2016 01:10:13 +0000 (18:10 -0700)]
ARM64: In GetDelegateTarget a portion of the _WIN64 code was under _TARGET_AMD64_ whereas at other places (like NDirectStubLinker::DoNDirect & InlinedCallFrame::HasFunction ) related code is under _WIN64. Make the code in GetDelegateTarget to be in sync with other functions and remove ifdef _TARGET_ADM64_. Without this change for arm64 InlinedCallFrame::m_datum stores unmanaged target pointer but StackWalker assumes it to be a NDirectMethodDesc and tries to dereference it and crashes.

8 years agoMerge pull request #6137 from papaslavik/int_softfp_fix
Bruce Forstall [Tue, 12 Jul 2016 18:16:22 +0000 (11:16 -0700)]
Merge pull request #6137 from papaslavik/int_softfp_fix

Fix for #5877: pre-spill just the floating arguments

8 years agoMerge pull request #5966 from mikedn/x86-neg-long
Bruce Forstall [Tue, 12 Jul 2016 18:14:56 +0000 (11:14 -0700)]
Merge pull request #5966 from mikedn/x86-neg-long

Implement GT_NEG decomposition

8 years agoMerge pull request #6198 from briansull/multireg-refactor
Brian Sullivan [Tue, 12 Jul 2016 17:06:13 +0000 (10:06 -0700)]
Merge pull request #6198 from briansull/multireg-refactor

Refactor and cleanup work for passing and returning struct types

8 years agoMerge pull request #5948 from jyoungyun/fix/issue_5947
Jarret Shook [Tue, 12 Jul 2016 14:31:50 +0000 (07:31 -0700)]
Merge pull request #5948 from jyoungyun/fix/issue_5947

Add testsRunningInsideARM.txt

8 years agoFix exceptions in GC wave 2 (#6220)
Jan Vorlicek [Tue, 12 Jul 2016 07:44:15 +0000 (09:44 +0200)]
Fix exceptions in GC wave 2 (#6220)

I've removed blocks with PAL_TRY that were under CATCH_GC. I also had to
fix contract problem in GCToEEInterface::GcStartWork that was marked as
THROWS due to StubHelpers::ProcessByrefValidationList being marked as
THROWS, but the StubHelpers::ProcessByrefValidationList in fact doesn't
throw since it has body wrapped in EX_TRY / EX_CATCH.

This also fixes a problem that started to appear after my previous exceptions
fix change.

8 years agoImplement GT_NEG decomposition
Mike Danes [Thu, 23 Jun 2016 19:02:50 +0000 (22:02 +0300)]
Implement GT_NEG decomposition

8 years agoRefactor and cleanup work for passing and returning struct types
Brian Sullivan [Thu, 7 Jul 2016 20:23:20 +0000 (13:23 -0700)]
Refactor and cleanup work for passing and returning struct types

Replaces argOrReturnTypeForStruct with two new methods:
  getArgTypeForStruct - Provides information on how to pass a struct type
  getReturnTypeForStruct - Provides information on how to return a struct type

A struct can be passed or return in the following different ways:
1. A struct type may be passed/returned as a primitive type when its size is small
2. A struct type may be passed/returned by reference to a copy
3. A struct type may be passed/returned by value using multiple registers
4. A struct type may be passed by value using a copy on the stack

Incorporated code review feedback with expanded comments.

8 years agoMerge pull request #6215 from dotnet-bot/UpdateDependencies20160711061707
Aditya Mandaleeka [Mon, 11 Jul 2016 22:11:03 +0000 (15:11 -0700)]
Merge pull request #6215 from dotnet-bot/UpdateDependencies20160711061707

Updating External dependencies to beta-24311-00

8 years agoMerge pull request #6221 from pgavlin/RemoveDeadCodeInRationalize
Pat Gavlin [Mon, 11 Jul 2016 22:00:29 +0000 (15:00 -0700)]
Merge pull request #6221 from pgavlin/RemoveDeadCodeInRationalize

Remove dead code in Rationalize.

8 years agoRemove dead code in Rationalize.
Pat Gavlin [Mon, 11 Jul 2016 20:38:30 +0000 (13:38 -0700)]
Remove dead code in Rationalize.

Most of the removed code deals with QMARK rewriting. These nodes
are now rewritten as part of fgMorph, so the rationalizer does not
need to deal with them (other than asserting that they do not
exist).

Other dead code:
- The `Rationalizations` type
- A few split-related declarations and helpers

8 years agoMerge pull request #6204 from AndyAyersMS/ModelPolicyDepthCheck
Andy Ayers [Mon, 11 Jul 2016 18:10:56 +0000 (11:10 -0700)]
Merge pull request #6204 from AndyAyersMS/ModelPolicyDepthCheck

Inliner: add depth check to ModelPolicy

8 years agoMerge pull request #6216 from hqueue/fix/typo_20160710
Aditya Mandaleeka [Mon, 11 Jul 2016 17:27:00 +0000 (10:27 -0700)]
Merge pull request #6216 from hqueue/fix/typo_20160710

Fix a misleading typo in comment

8 years agoMerge pull request #6202 from BruceForstall/RefactorDecomp
Bruce Forstall [Mon, 11 Jul 2016 17:20:03 +0000 (10:20 -0700)]
Merge pull request #6202 from BruceForstall/RefactorDecomp

Refactor RyuJIT/x86 long decomposition code

8 years agoFix a misleading typo in comment
Hyung-Kyu Choi [Mon, 11 Jul 2016 14:40:38 +0000 (23:40 +0900)]
Fix a misleading typo in comment

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
8 years agoAvoid repeated virtual method calls in List.Contains (#6212)
James Ko [Mon, 11 Jul 2016 12:30:13 +0000 (08:30 -0400)]
Avoid repeated virtual method calls in List.Contains (#6212)

8 years agoUpdating External dependencies to beta-24311-00
dotnet-bot [Mon, 11 Jul 2016 06:17:06 +0000 (06:17 +0000)]
Updating External dependencies to beta-24311-00

8 years agoRefactor RyuJIT/x86 long decomposition code
Bruce Forstall [Sat, 9 Jul 2016 01:38:59 +0000 (18:38 -0700)]
Refactor RyuJIT/x86 long decomposition code

All decomposition code is now in decompose.cpp, in a Decompose class.
Each node type that is decomposed has its own member function to do
the decomposition. Various helpers have been added to reduce code
duplication. In general, though, the code is as it was before.

8 years agoInliner: add depth check to ModelPolicy
Andy Ayers [Sat, 9 Jul 2016 17:58:02 +0000 (10:58 -0700)]
Inliner: add depth check to ModelPolicy

Give the ModelPolicy the standard depth bailout logic. This mainly
serves to prevent runaway inlining for recursive methods marked with
AggressiveInlining attributes.

8 years agoMerge pull request #6201 from AndyAyersMS/LowerCallsiteWeight
Andy Ayers [Sat, 9 Jul 2016 15:47:14 +0000 (08:47 -0700)]
Merge pull request #6201 from AndyAyersMS/LowerCallsiteWeight

Inliner: updates to ModelPolicy

8 years agoMerge pull request #6190 from dotnet-bot/from-tfs
Brian Sullivan [Sat, 9 Jul 2016 02:14:10 +0000 (19:14 -0700)]
Merge pull request #6190 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoInliner: updates to ModelPolicy
Andy Ayers [Fri, 8 Jul 2016 00:53:43 +0000 (17:53 -0700)]
Inliner: updates to ModelPolicy

Updates to bring CS and TP impact of the ModelPolicy into more acceptable
ranges.

For CS, reduce the call site weights to values that are more in keeping
with the legacy policy weights. Local test runs show this does not
drastically alter CQ and brings CS down below LegacyPolicy levels, on
average.

Implement an early out rejection based solely on ILSize. The threshold
value is set by conservatively determining when ILSize alone indicates
the method in question will never be inlined (note the policy itself
does not have an explicit ILSize cutoff). See comments for
`ModelPolicy::NoteInt` for details. Note if we adjust the model's size
and profitability estimates, this threshould will also need updating.

CQ (as measured by the CoreCLR perf tests) continues to show about a
2.5% geomean improvement over LegacyPolicy.

8 years agoFix exceptions in GC (#6192)
Jan Vorlicek [Fri, 8 Jul 2016 23:56:00 +0000 (01:56 +0200)]
Fix exceptions in GC (#6192)

The GC code in general doesn't expect exceptions to be thrown from functions
it calls. However, the event creation functions were in fact throwing, so
in case of OOM, exception would be thrown from various places of the code.
This change creates non-throwing versions of the event creation functions
and replaces all usages of the throwing ones in the GC.
In addition, I've removed blocks with PAL_TRY that were under NO_CATCH_HANDLERS
define and also added Object::SetAppDomainNoThrow, which allowed me to removed
EX_TRY from GCHeap::StressHeap where the Object::SetAppDomain was called before.

8 years agoMerge pull request #6193 from BruceForstall/FixTypos
Bruce Forstall [Fri, 8 Jul 2016 23:33:19 +0000 (16:33 -0700)]
Merge pull request #6193 from BruceForstall/FixTypos

Fix some typos in comments

8 years agoMerge pull request #6195 from rahku/crossgen
Rahul Kumar [Fri, 8 Jul 2016 23:30:51 +0000 (16:30 -0700)]
Merge pull request #6195 from rahku/crossgen

Fix SOS bpmd for windows

8 years agoMerge pull request #6197 from wtgodbe/heapVerify
William Godbe [Fri, 8 Jul 2016 23:26:18 +0000 (16:26 -0700)]
Merge pull request #6197 from wtgodbe/heapVerify

Add new scenario to code coverage job

8 years agoAdd new scenario to code coverage job
wtgodbe [Fri, 8 Jul 2016 22:49:32 +0000 (15:49 -0700)]
Add new scenario to code coverage job

8 years agoMerge pull request #6176 from sivarv/lsraTodo
Sivarv [Fri, 8 Jul 2016 22:15:39 +0000 (15:15 -0700)]
Merge pull request #6176 from sivarv/lsraTodo

Optimize use of a reg-optional lclVar that is marked for both reload and spillAfter

8 years agoFix SOS bpmd for windows
Rahul Kumar [Fri, 8 Jul 2016 22:03:41 +0000 (15:03 -0700)]
Fix SOS bpmd for windows

8 years agoFix some typos in comments
Bruce Forstall [Fri, 8 Jul 2016 21:24:24 +0000 (14:24 -0700)]
Fix some typos in comments

8 years agoFixing the build break/unsigned to signed warning.
Tarek Mahmoud Sayed [Fri, 8 Jul 2016 18:47:55 +0000 (11:47 -0700)]
Fixing the build break/unsigned to signed warning.
This checkin onbehalf of Tijoytk

[tfs-changeset: 1616784]

8 years agoOptimize use of a reg-optional lclVar that is marked for both reload
sivarv [Fri, 8 Jul 2016 00:19:28 +0000 (17:19 -0700)]
Optimize use of a reg-optional lclVar that is marked for both reload
and spillAfter.

8 years agoMerge pull request #6163 from josteink/resolve-python
Aditya Mandaleeka [Fri, 8 Jul 2016 18:35:42 +0000 (11:35 -0700)]
Merge pull request #6163 from josteink/resolve-python

Resolve Python2.7 when executable is not called 'python'.

8 years agoUpdate contributor guidelines (#6183)
Rich Lander [Fri, 8 Jul 2016 18:34:50 +0000 (11:34 -0700)]
Update contributor guidelines (#6183)

8 years agoMerge pull request #6177 from BruceForstall/FixMultiregStructArgNyi
Bruce Forstall [Fri, 8 Jul 2016 17:45:10 +0000 (10:45 -0700)]
Merge pull request #6177 from BruceForstall/FixMultiregStructArgNyi

Fix RyuJIT/x86 fgMorphMultiregStructArg NYI

8 years agoARM-CI: Add tests to CI script
Prajwal A N [Wed, 29 Jun 2016 07:50:10 +0000 (16:50 +0900)]
ARM-CI: Add tests to CI script

Previously we just built coreclr for the emulator rootfs
With this PR, we add the ability to perform selected
tests using the built binaries in the emulated environment

We copy artifacts from the Windows build only job and the corefx
Linux ARM Emulator job and use the same to run the build and the
test

Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
8 years agoResolve Python2.7 when executable is not called 'python'.
Jostein Kjønigsen [Thu, 7 Jul 2016 08:49:20 +0000 (10:49 +0200)]
Resolve Python2.7 when executable is not called 'python'.

8 years agoFix for #5877: pre-spill just the floating arguments
Viacheslav Nikolaev [Wed, 6 Jul 2016 08:58:00 +0000 (11:58 +0300)]
Fix for #5877: pre-spill just the floating arguments

8 years agoFix RyuJIT/x86 fgMorphMultiregStructArg NYI
Bruce Forstall [Fri, 8 Jul 2016 00:55:27 +0000 (17:55 -0700)]
Fix RyuJIT/x86 fgMorphMultiregStructArg NYI

The code leading to the fgMorphMultiregStructArg NYI shouldn't have been taken for x86.
In fgMorphArgs, I put the setting of `hasMultiregStructArgs = true` in one case under `#ifdef`.

Disable tests failing with a newly exposed assert, `'isPhiDefn || type != TYP_STRUCT'`,
tracked by #6180.

I also fixed a number of asserts on strings that would never fail the way they were
written -- `assert("string")` instead of `assert(!"string")` -- and fixed some typos/grammar.

8 years agoMerge pull request #6081 from adityamandaleeka/virtual_temp
Aditya Mandaleeka [Fri, 8 Jul 2016 00:26:40 +0000 (17:26 -0700)]
Merge pull request #6081 from adityamandaleeka/virtual_temp

Clean up unused code related to memory mapping

8 years agoMerge pull request #6021 from CarolEidt/LessConservativeGtObj
Carol Eidt [Thu, 7 Jul 2016 23:29:34 +0000 (16:29 -0700)]
Merge pull request #6021 from CarolEidt/LessConservativeGtObj

Less conservative gt obj

8 years agoMerge pull request #6175 from tijoytom/master
tijoytom [Thu, 7 Jul 2016 23:26:34 +0000 (16:26 -0700)]
Merge pull request #6175 from tijoytom/master

MarshalAs(UnManaged.ByValArray) overflow.[Resubmitting the PR]

8 years agoMerge pull request #6150 from sivarv/lsraRefactor
Sivarv [Thu, 7 Jul 2016 23:23:56 +0000 (16:23 -0700)]
Merge pull request #6150 from sivarv/lsraRefactor

Outstanding code review feedback from reg-optional PR #6092

8 years agoMerge pull request #6170 from wtgodbe/signarm
William Godbe [Thu, 7 Jul 2016 22:32:04 +0000 (15:32 -0700)]
Merge pull request #6170 from wtgodbe/signarm

Revert sign.builds so that arm64 bins can be signed

8 years agoMerge pull request #6173 from kyulee1/gc03
Kyungwoo Lee [Thu, 7 Jul 2016 22:20:20 +0000 (15:20 -0700)]
Merge pull request #6173 from kyulee1/gc03

ARM64: Enable Daily Job for GcStress0x3

8 years agoMarshalAs(UnManaged.ByValArray) overflow.
Tijoy Tom Kalathiparambil [Thu, 7 Jul 2016 22:03:01 +0000 (15:03 -0700)]
MarshalAs(UnManaged.ByValArray) overflow.
For non-blittable embedded array in structs we ignored the SizeConst and wrote past the
buffer when number of elementsin the arrayis greater than SizeConst.Fix is to truncate
the array at SizeConst
MarshalAs(UnManaged.ByValTStr)
Very subtle case when the SizeConst == Number of bytes required to marshal , we
write the null one past the buffer.This happens only on  machine with non-english
(multi-byte) locale as default. Fix is to check the number of bytes required and
truncate the correctly leaving space for the terminating null.

8 years agoARM64: Enable Daily Job for GcStress0x3
Kyungwoo Lee [Thu, 7 Jul 2016 21:45:02 +0000 (14:45 -0700)]
ARM64: Enable Daily Job for GcStress0x3

8 years agoMerge pull request #6090 from kyulee1/gctest3
Kyungwoo Lee [Thu, 7 Jul 2016 21:41:34 +0000 (14:41 -0700)]
Merge pull request #6090 from kyulee1/gctest3

ARM64: Test Update for GcStress0x3

8 years agoAvoid box allocation in Encoding.EncodingName (#6142)
Justin Van Patten [Thu, 7 Jul 2016 21:18:47 +0000 (14:18 -0700)]
Avoid box allocation in Encoding.EncodingName (#6142)

`Encoding.EncodingName` concatenates a `string` with an `int` via
`string.Concat(object, object)`, which results in the `int` being
boxed.

This change avoids the box by calling `int.ToString()`,
allowing `string.Concat(string, string)` to be used.