platform/upstream/coreclr.git
7 years agoMerge pull request #11268 from sdmaclea/PR-ARM64-two-gc-attributes
Brian Sullivan [Fri, 28 Apr 2017 17:57:50 +0000 (10:57 -0700)]
Merge pull request #11268 from sdmaclea/PR-ARM64-two-gc-attributes

[Arm64] Support two GC attributes in pair forms

7 years agoFix R2R issue with virtual method resolving to non-generic base (#11289)
Yi Zhang (CLR) [Fri, 28 Apr 2017 15:41:29 +0000 (08:41 -0700)]
Fix R2R issue with virtual method resolving to non-generic base (#11289)

7 years agoMerge pull request dotnet/corert#3446 from jkotas/nmirror-merge
Jan Kotas [Thu, 27 Apr 2017 23:47:53 +0000 (16:47 -0700)]
Merge pull request dotnet/corert#3446 from jkotas/nmirror-merge

Merge nmirror to master

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoAdd assert
Steve MacLean [Fri, 28 Apr 2017 02:08:48 +0000 (22:08 -0400)]
Add assert

7 years agoRemove comment
Steve MacLean [Fri, 28 Apr 2017 02:03:49 +0000 (22:03 -0400)]
Remove comment

7 years agoUpdate CoreClr, CoreFx to preview2-25227-03, preview2-25227-02, respectively (#11249)
dotnet bot [Fri, 28 Apr 2017 01:26:02 +0000 (18:26 -0700)]
Update CoreClr, CoreFx to preview2-25227-03, preview2-25227-02, respectively (#11249)

7 years agoFix lsra memory consumption (#11233)
Sergey Andreenko [Fri, 28 Apr 2017 01:06:34 +0000 (18:06 -0700)]
Fix lsra memory consumption (#11233)

* Rename ClearD to OldStyleClearD

* create fast ClearD function.

The new ClearD reuses existing buffer and assumes that epoch wasn't
changed.

* Reuse existing buffer for the predSet in lsra.

* Use fast ClearD in LSRA.

* Use fast ClearD in liveness

* Fix the comment

* delete the test from issues

7 years agoFix issues exposed by building with MSVC and /permissive-. (#11269)
Xiang Fan [Thu, 27 Apr 2017 23:48:13 +0000 (16:48 -0700)]
Fix issues exposed by building with MSVC and /permissive-. (#11269)

Using full-qualified name to declare members inside class is ill-formed and incorrectly allowed by MSVC.
MSVC now gives error when /permissive- is used.

7 years agoEnable R2R jitstress jobs for x86
Russ Keldorph [Thu, 27 Apr 2017 22:25:59 +0000 (15:25 -0700)]
Enable R2R jitstress jobs for x86

7 years agoAllow conversions between enum and underlying type
Jan Kotas [Thu, 27 Apr 2017 20:49:10 +0000 (13:49 -0700)]
Allow conversions between enum and underlying type

Fixes https://github.com/dotnet/corefx/issues/13816

7 years agoDisallow conversions between Object* and Object in Array.Copy
Jan Kotas [Thu, 27 Apr 2017 20:48:16 +0000 (13:48 -0700)]
Disallow conversions between Object* and Object in Array.Copy

Fixes https://github.com/dotnet/coreclr/issues/10646

7 years agoUnify fetching LoadContext for Dynamic Assemblies (#11264)
Gaurav Khanna [Thu, 27 Apr 2017 22:36:24 +0000 (15:36 -0700)]
Unify fetching LoadContext for Dynamic Assemblies (#11264)

7 years ago[Arm64] Use ldp for mismatched GC types in genPutArgStk
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Thu, 27 Apr 2017 19:20:21 +0000 (19:20 +0000)]
[Arm64] Use ldp for mismatched GC types in genPutArgStk

7 years ago[Arm64] Support two GC attributes in pair forms
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Thu, 27 Apr 2017 19:15:16 +0000 (19:15 +0000)]
[Arm64] Support two GC attributes in pair forms

Also use in genCodeForCpObj

7 years ago[Arm64] Clean up genPutArgStk (#11239)
Steve MacLean [Thu, 27 Apr 2017 21:32:29 +0000 (17:32 -0400)]
[Arm64] Clean up genPutArgStk (#11239)

* [Arm64] Clean up genPutArgStk

Use ldp/stp in more case
Simplify code by eliminating most addrReg conflict cases

* Fix formatting

7 years agoTurn on unwind information at informational level rather than Info level. (#11257)
Vance Morrison [Thu, 27 Apr 2017 19:43:38 +0000 (12:43 -0700)]
Turn on unwind information at informational level rather than Info level. (#11257)

This is bascically a bug fix.   Quite a while ago we wanted to be able to collect stacks (which needed JIT names, and unwind information)
without collecting all verbose CLR events (in particular the GC allocation Tick events).   We did this in most places but missed this one.

7 years agoRemove unused TreeNodeInfo::isHelperCallWithKills field (#11259)
Bruce Forstall [Thu, 27 Apr 2017 19:41:43 +0000 (12:41 -0700)]
Remove unused TreeNodeInfo::isHelperCallWithKills field (#11259)

Remove unused TreeNodeInfo::isHelperCallWithKills field

7 years agoMerge pull request #11224 from parjong/fix/arm_unaligned_ldobj
Bruce Forstall [Thu, 27 Apr 2017 18:21:27 +0000 (11:21 -0700)]
Merge pull request #11224 from parjong/fix/arm_unaligned_ldobj

[ARM/Linux] Honor unaligned prefix for ldobj instruction

7 years ago[WIP] Enable binding to CoreLib as NI image (#11040)
Gaurav Khanna [Thu, 27 Apr 2017 17:46:47 +0000 (10:46 -0700)]
[WIP] Enable binding to CoreLib as NI image (#11040)

Enable binding to CoreLib as NI image

7 years agoMerge pull request #11255 from mskvortsov/FixPutArgReg
Bruce Forstall [Thu, 27 Apr 2017 17:45:36 +0000 (10:45 -0700)]
Merge pull request #11255 from mskvortsov/FixPutArgReg

[RyuJIT/ARM32] Update putarg_reg codegen

7 years agoMerge pull request #11258 from mskvortsov/FixConsumeReporting
Bruce Forstall [Thu, 27 Apr 2017 17:19:10 +0000 (10:19 -0700)]
Merge pull request #11258 from mskvortsov/FixConsumeReporting

Do not report out-of-order consuming if a node wasn't consumed at all

7 years agoFix a double-free encountered when failing to initialize a handle table bucket (...
Sean Gillespie [Thu, 27 Apr 2017 17:09:32 +0000 (10:09 -0700)]
Fix a double-free encountered when failing to initialize a handle table bucket (#11244)

* Fix a double-free encountered when failing to initialize a handle table bucket

* Don't free m_bucket in the destructor of HandleTableBucketHolder

7 years agoFix unittest `LPSTRTest` (#11096)
Hanjoung Lee [Thu, 27 Apr 2017 16:39:47 +0000 (01:39 +0900)]
Fix unittest `LPSTRTest` (#11096)

* Fix unittest `LPSTRTest`

The test case Interop.StringMarshalling.LPSTR.LPSTRTest
always returned exit code 100(pass) even if it actually failed.
This implements `ExitTest()` in the same manner with `LPTSTRTest`.

* Fix unittest `LPSTRTest` native

7 years agoMerge pull request #11219 from sdmaclea/PR-ARM64-CpObj-Use-LDP-STP
Brian Sullivan [Thu, 27 Apr 2017 15:53:42 +0000 (08:53 -0700)]
Merge pull request #11219 from sdmaclea/PR-ARM64-CpObj-Use-LDP-STP

[Arm64] Use ldp/stp in genCodeForCpObj()

7 years agoMerge pull request #11243 from sdmaclea/PR-ARM64-LDP-ALLOW-GCREFS
Brian Sullivan [Thu, 27 Apr 2017 15:51:39 +0000 (08:51 -0700)]
Merge pull request #11243 from sdmaclea/PR-ARM64-LDP-ALLOW-GCREFS

[Arm64] Update emitOutputInstr to support GC refs in ldp forms

7 years agoDo not report out-of-order consuming if node wasn't consumed at all
Mikhail Skvortcov [Thu, 27 Apr 2017 14:53:53 +0000 (17:53 +0300)]
Do not report out-of-order consuming if node wasn't consumed at all

7 years ago[x86/Linux] Disable USE_CALLER_SP_IN_FUNCLET in EH (#11247)
Jonghyun Park [Thu, 27 Apr 2017 14:50:39 +0000 (23:50 +0900)]
[x86/Linux] Disable USE_CALLER_SP_IN_FUNCLET in EH (#11247)

7 years agoRyuJIT/ARM32: Update GT_PUTARG_REG codegen.
Mikhail Skvortcov [Thu, 27 Apr 2017 10:54:35 +0000 (13:54 +0300)]
RyuJIT/ARM32: Update GT_PUTARG_REG codegen.

7 years ago[Arm64/Unix] Revise JIT_MemCpy (#11143)
Steve MacLean [Thu, 27 Apr 2017 04:50:37 +0000 (00:50 -0400)]
[Arm64/Unix] Revise JIT_MemCpy (#11143)

* [Arm64/Unix] Revise JIT_MemCpy

Use ldp/stp
Correctly handle short copy lengths
Simplify code & pseudo code
Use uint*_t to make pseudo code more readable

7 years agoFix building with only VS2017 installed. (#11182)
Felipe Pessoto [Thu, 27 Apr 2017 04:50:04 +0000 (01:50 -0300)]
Fix building with only VS2017 installed. (#11182)

The fix was originally made in https://github.com/dotnet/corefx/pull/18700

7 years agoMerge pull request #11240 from wtgodbe/SourceBranch
William Godbe [Thu, 27 Apr 2017 01:55:16 +0000 (18:55 -0700)]
Merge pull request #11240 from wtgodbe/SourceBranch

Use SourceBranch from pipebuild to define Helix Branch

7 years agoFix to respect readonly prefix for multidimensional array Address method (#11245)
Koundinya Veluri [Thu, 27 Apr 2017 01:42:48 +0000 (18:42 -0700)]
Fix to respect readonly prefix for multidimensional array Address method (#11245)

Fixes #9414
- Added missing 'else' back from regression in https://github.com/dotnet/coreclr/commit/97b4ff0b438261ba11b357008630076054a6f25d#diff-edc46b80f57431489a82311948a8234dL6424, which has the effect of passing null to the Address method's instParam to indicate the readonly prefix in order to bypass the type check

7 years agoFix filename display in exception messages (#11238)
Gaurav Khanna [Wed, 26 Apr 2017 23:53:58 +0000 (16:53 -0700)]
Fix filename display in exception messages (#11238)

7 years agoUpdate CoreClr, CoreFx to preview2-25226-02, preview2-25226-02, respectively (#11127)
dotnet bot [Wed, 26 Apr 2017 23:21:04 +0000 (16:21 -0700)]
Update CoreClr, CoreFx to preview2-25226-02, preview2-25226-02, respectively (#11127)

7 years agoDelete moved file
Jan Kotas [Wed, 26 Apr 2017 21:01:22 +0000 (14:01 -0700)]
Delete moved file

7 years agoMove DllNotFoundException, EntryPointNotFoundException to CoreLib (#3415)
Faizur Rahman [Wed, 26 Apr 2017 03:39:46 +0000 (20:39 -0700)]
Move DllNotFoundException, EntryPointNotFoundException to CoreLib (#3415)

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoFix timer callback time drift (#11220)
Koundinya Veluri [Wed, 26 Apr 2017 23:08:53 +0000 (16:08 -0700)]
Fix timer callback time drift (#11220)

Fixes #6408:
- The change to S.T.Timer is the actual fix, but fixed the timer firing on the thread pool timer thread similarly as well

7 years agoFix comment
Steve MacLean [Wed, 26 Apr 2017 22:53:08 +0000 (18:53 -0400)]
Fix comment

7 years ago[Arm64] Update emitOutputInstr to support GC refs in ldp forms
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Wed, 26 Apr 2017 22:39:03 +0000 (22:39 +0000)]
[Arm64] Update emitOutputInstr to support GC refs in ldp forms

7 years agoMerge pull request #11235 from pgavlin/VSO424019
Pat Gavlin [Wed, 26 Apr 2017 22:37:39 +0000 (15:37 -0700)]
Merge pull request #11235 from pgavlin/VSO424019

Require a frame pointer in methods with throw blocks for sources that…

7 years agoUse SourceBranch from pipebuild to define Helix Branch
wtgodbe [Wed, 26 Apr 2017 21:54:04 +0000 (14:54 -0700)]
Use SourceBranch from pipebuild to define Helix Branch

7 years agoFix and re-enable some GC finalizer tests (#11216)
Sean Gillespie [Wed, 26 Apr 2017 21:50:19 +0000 (14:50 -0700)]
Fix and re-enable some GC finalizer tests (#11216)

* Fix and re-enable some GC finalizer tests

* Make the Usage test a little more robust

7 years ago[Arm64] CpObj ldp/stp review feedback
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Wed, 26 Apr 2017 19:46:07 +0000 (19:46 +0000)]
[Arm64] CpObj ldp/stp review feedback

Rework asserts
Add comments
Format

7 years agoMerge pull request #11178 from sbomer/ilrt_factoring
Sven Boemer [Wed, 26 Apr 2017 21:02:36 +0000 (14:02 -0700)]
Merge pull request #11178 from sbomer/ilrt_factoring

Refactor ildasm round trip logic

7 years agoRequire a frame pointer in methods with throw blocks for sources that have mismatched...
Pat Gavlin [Wed, 26 Apr 2017 20:23:59 +0000 (13:23 -0700)]
Require a frame pointer in methods with throw blocks for sources that have mismatched stack depths.

This requirement effectively disables double-aligned frames (which are
effectively a special case of ESP frames). Without this change it is
possible for the JIT to generate a throw block with sources that have
mismatched offsets, which can lead to GC holes.

Fixes VSO 424019.

7 years agoMerge pull request #11218 from AndyAyersMS/FixReturnTypeMismatch
Andy Ayers [Wed, 26 Apr 2017 20:04:14 +0000 (13:04 -0700)]
Merge pull request #11218 from AndyAyersMS/FixReturnTypeMismatch

JIT: fix return type mismatch inlining block

7 years agoLookup System.Runtime and mscorlib references by Assembly name
Michael Letterle [Fri, 31 Mar 2017 15:31:53 +0000 (11:31 -0400)]
Lookup System.Runtime and mscorlib references by Assembly name

Rather than by alias.

Fixes #10595

7 years agoMerge pull request #11229 from wtgodbe/CrossgenFix
William Godbe [Wed, 26 Apr 2017 18:29:52 +0000 (11:29 -0700)]
Merge pull request #11229 from wtgodbe/CrossgenFix

Exit on failure of HelixPrep.proj

7 years agoExit on failure of HelixPrep.proj
wtgodbe [Wed, 26 Apr 2017 18:29:10 +0000 (11:29 -0700)]
Exit on failure of HelixPrep.proj

7 years agoRefactor ildasm round trip logic
Sven Boemer [Mon, 24 Apr 2017 17:12:38 +0000 (10:12 -0700)]
Refactor ildasm round trip logic

This change factors the Ildasm round trip logic so that it should not
require a separate test build. The ildasmroundtrip flag is no longer
passed to build-test.cmd; instead the wrapper scripts are always
generated with a check for an environment variable that can be set from
runtests.

Also remove separate test build for ilrt in the ci scripts

7 years agoEnable build with clang 4.0 (#11226)
Jan Vorlicek [Wed, 26 Apr 2017 14:10:13 +0000 (07:10 -0700)]
Enable build with clang 4.0 (#11226)

This change enables build with clang 4.0 and fixes a bunch of new errors that
the stricter compiler was reporting.

7 years agoFix thread wait to be resilient to real time clock changes on Unix (#11213)
Jan Vorlicek [Wed, 26 Apr 2017 13:48:20 +0000 (06:48 -0700)]
Fix thread wait to be resilient to real time clock changes on Unix (#11213)

This change fixes a problem that happens when a thread uses a timed wait
and the real time clock change in the system (e.g. due to the user action,
time server sync, leap second, etc). In such case, the wait may end up waiting
for shorter or longer period of time.
It fixes the issue for Thread.Sleep and timed wait on a process local synchronization
primitives by using CLOCK_MONOTONIC instead of CLOCK_REALTIME for waiting on
cond vars.
Unfortunately, the waits on cross process synchronication primitives like
named mutexes always use CLOCK_REALTIME, so this fix works on process local primitives
only.

7 years ago[x86/Linux] Stack alignment check in Hijack Helpers (#11221)
Jonghyun Park [Wed, 26 Apr 2017 12:49:07 +0000 (21:49 +0900)]
[x86/Linux] Stack alignment check in Hijack Helpers (#11221)

7 years ago[x86/Linux] Use appropriate FCALL macro for DateMarshaler__ConvertToNative (#11194)
Jonghyun Park [Wed, 26 Apr 2017 12:18:33 +0000 (21:18 +0900)]
[x86/Linux] Use appropriate FCALL macro for DateMarshaler__ConvertToNative (#11194)

7 years agoMerge pull request dotnet/corert#3429 from dotnet/nmirror
Michal Strehovský [Tue, 25 Apr 2017 20:13:36 +0000 (13:13 -0700)]
Merge pull request dotnet/corert#3429 from dotnet/nmirror

Merge nmirror to master

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoComment explaining use of FlushProcessWriteBuffers in StompWriteBarrier. (#10924)
Alan Lawrence [Wed, 26 Apr 2017 11:14:11 +0000 (12:14 +0100)]
Comment explaining use of FlushProcessWriteBuffers in StompWriteBarrier. (#10924)

7 years agoFix few clang analyzer warnings (#11185)
Jan Vorlicek [Wed, 26 Apr 2017 08:52:35 +0000 (01:52 -0700)]
Fix few clang analyzer warnings (#11185)

This change fixes two issues reported by the clang analyzer. In both cases, uninitialized
variable value was used in an error code path.

7 years ago[ARM/Linux] Honor unaligned prefix for ldobj instruction
Jonghyun Park [Wed, 26 Apr 2017 06:24:44 +0000 (15:24 +0900)]
[ARM/Linux] Honor unaligned prefix for ldobj instruction

7 years agoMerge pull request #11107 from BruceForstall/NumSuccImprovement
Bruce Forstall [Wed, 26 Apr 2017 04:17:48 +0000 (21:17 -0700)]
Merge pull request #11107 from BruceForstall/NumSuccImprovement

Num succ improvement

7 years agoMerge pull request #11204 from BruceForstall/FixArmAltjitGcinfo
Bruce Forstall [Wed, 26 Apr 2017 04:16:29 +0000 (21:16 -0700)]
Merge pull request #11204 from BruceForstall/FixArmAltjitGcinfo

Fix GCInfo library used by ARM/ARM64 protononjit builds

7 years agoMerge pull request #11215 from wtgodbe/ActuallyDoCrossgen
William Godbe [Wed, 26 Apr 2017 04:16:09 +0000 (21:16 -0700)]
Merge pull request #11215 from wtgodbe/ActuallyDoCrossgen

Set RunCrossGen=true for non-Windows R2R runs

7 years ago[Arm64] Use ldp/stp in genCodeForCpObj()
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Tue, 25 Apr 2017 23:03:36 +0000 (23:03 +0000)]
[Arm64] Use ldp/stp in genCodeForCpObj()

7 years agoMove DynamicHelperFrame::UpdateRegDisplay into cgenx86.cpp (#11193)
Jonghyun Park [Tue, 25 Apr 2017 23:31:29 +0000 (08:31 +0900)]
Move DynamicHelperFrame::UpdateRegDisplay into cgenx86.cpp (#11193)

* Move DynamicHelperFrame::UpdateRegDisplay into cgenx86.cpp

* Fix x86/Windows link error

7 years agoJIT: fix return type mismatch inlining block
Andy Ayers [Tue, 25 Apr 2017 23:06:44 +0000 (16:06 -0700)]
JIT: fix return type mismatch inlining block

If caller passes a directly substitutable expression whose
type is compatible with but not the same as the callee argument type,
and that argument is the callee's return value, the jit may
reject inlining the method because of a return type mismatch.

Fix is to retype the expressions we use in the callee's body
as the callee's type.

Closes #11211.

7 years agoSet RunCrossGen=true for non-Windows R2R runs
wtgodbe [Tue, 25 Apr 2017 22:40:22 +0000 (15:40 -0700)]
Set RunCrossGen=true for non-Windows R2R runs

7 years agoMerge pull request #11134 from pgavlin/VSO406163
Pat Gavlin [Tue, 25 Apr 2017 22:36:37 +0000 (15:36 -0700)]
Merge pull request #11134 from pgavlin/VSO406163

Fix fgNewBBinRegion when inserting into filters.

7 years agoMerge pull request #11110 from rartemev/issue_9880
Roman Artemev [Tue, 25 Apr 2017 22:24:09 +0000 (15:24 -0700)]
Merge pull request #11110 from rartemev/issue_9880

Made behavior to conform to ECMA for 'tail.call, pop, ret' case

7 years ago[RyuJIT/ARM32] Move genJumpKindsForTree into common part (#11103)
mskvortsov [Tue, 25 Apr 2017 22:01:43 +0000 (01:01 +0300)]
[RyuJIT/ARM32] Move genJumpKindsForTree into common part (#11103)

* Move genJumpKindsForTree() into codegenarmarch.cpp.

* Edit genJumpKindsForTree().

* Introduce genCodeForJumpTrue() for both ArmArch and XArch.

* Fix GT_JTRUE codegen for ARM32 by using genCodeForJumpTrue().

7 years agoFix GCInfo library used by ARM/ARM64 protononjit builds
Bruce Forstall [Tue, 25 Apr 2017 16:43:38 +0000 (09:43 -0700)]
Fix GCInfo library used by ARM/ARM64 protononjit builds

Otherwise, using the normal GCInfo library, the altjits will
assert creating GC info.

Create new "cross-target" builds of the GCInfo library.

7 years agoMerge pull request #11118 from rartemev/issue_10094
Roman Artemev [Tue, 25 Apr 2017 21:31:38 +0000 (14:31 -0700)]
Merge pull request #11118 from rartemev/issue_10094

Fixed netci.groove scripts to make CentOS and Ubuntu R2R jitstressregs builds worked.

7 years agoMade behavior to conform to ECMA for 'tail.call, pop, ret' case
Roman Artemev [Thu, 20 Apr 2017 00:49:25 +0000 (17:49 -0700)]
Made behavior to conform to ECMA for 'tail.call, pop, ret' case

7 years agoMerge pull request #11206 from wtgodbe/ContainerName
William Godbe [Tue, 25 Apr 2017 19:56:08 +0000 (12:56 -0700)]
Merge pull request #11206 from wtgodbe/ContainerName

Update R2R Container Names

7 years agoUpdate R2R Container Names
wtgodbe [Tue, 25 Apr 2017 19:55:37 +0000 (12:55 -0700)]
Update R2R Container Names

7 years agoTesting. DO NOT MERGE ME
Roman Artemev [Tue, 25 Apr 2017 00:01:06 +0000 (17:01 -0700)]
Testing. DO NOT MERGE ME

7 years agoAllow FEATURE_INTERPRETER to be enabled by command-line option (#11188)
Jonghyun Park [Tue, 25 Apr 2017 18:40:40 +0000 (03:40 +0900)]
Allow FEATURE_INTERPRETER to be enabled by command-line option (#11188)

* Allow FEATURE_INTERPRETER to be enabled by command-line option

* Set FEATURE_INTERPRETER as 0

7 years agoMerge pull request #11187 from wtgodbe/NonWindowsR2R
William Godbe [Tue, 25 Apr 2017 18:29:37 +0000 (11:29 -0700)]
Merge pull request #11187 from wtgodbe/NonWindowsR2R

Enable running R2R tests in Helix on non-Windows

7 years agoEnable running R2R tests in Helix on non-Windows
wtgodbe [Mon, 24 Apr 2017 20:41:42 +0000 (13:41 -0700)]
Enable running R2R tests in Helix on non-Windows

7 years agoMerge pull request #11203 from mskvortsov/FixLclFld
Bruce Forstall [Tue, 25 Apr 2017 18:14:27 +0000 (11:14 -0700)]
Merge pull request #11203 from mskvortsov/FixLclFld

[RyuJIT/ARM32] Update lclFld codegen

7 years ago[ARM32] clang 3.9 as a default for ARM cross build (#11064)
Hyung-Kyu Choi [Tue, 25 Apr 2017 17:58:22 +0000 (02:58 +0900)]
[ARM32] clang 3.9 as a default for ARM cross build (#11064)

* [ARM32] clang 3.9 as a default for ARM cross build

Use clang 3.9 as a default compiler for ARM cross build

* Both arm and armel will be built using clang 3.9 as a default
* ARM CI will use clang 3.9 as a default
* ARM pipieline build will use clang 3.9 as a default

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* [ARM32] Update docs describing clang-3.9 and ARM cross build

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* [ARM] Check minimum version requirement of clang for ARM cross build

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
7 years agoFix fgNewBBinRegion when inserting into filters.
Pat Gavlin [Fri, 21 Apr 2017 17:26:05 +0000 (10:26 -0700)]
Fix fgNewBBinRegion when inserting into filters.

In order to ensure that the GC operates properly when handling
exceptions, the CLR ABI requires that control exits a filter region
throguh its terminal instruction. `fgNewBBinRegion` was violating this
invariant, however, which lead to GC stress failures when the GC was
invoked immediately after a filter finished executing but before control
entered any handlers. This change fixes the behavior of
`fgNewBBinRegion` when inserting new blocks into filter regions.

There are two cases to consider when inserting a new BB into a filter
region:
1. The filter region consists of multiple blocks
2. The filter region consists of a single block

The first case is straightforward: instead of inserting a new BB after
the last block of the filter, insert it before the last block of the
filter. Because the filter contains multiple blocks, the predecessor of
the filter must also be in the filter region.

The latter case requires splitting the single block, as inserting a new
block before the single block would otherwise change control flow (the
filter would begin with the new block rather than the single block). In
order to acheive this with minimal complexity, this change first inserts
a `BBJ_ALWAYS` block that transfers control to the existing single
block, then inserts a second new block immediately before the existing
single block. The second new block is then returned. To put it
visually, the transformation is from this:

```
    filter start: BBN (BBJ_EHFILTERRET)
```

to this:

```
    filter start: BBN + 1 (BBJ_ALWAYS -> BBN)
                  BBN + 2 (jumpKind)
                  BBN     (BBJ_EHFILTERRET)
```

and the function returns `BBN + 2`.

Fixes VSO 406163.

7 years agoMerge pull request dotnet/corert#3418 from dotnet/nmirror (#11186)
dotnet bot [Tue, 25 Apr 2017 17:05:21 +0000 (10:05 -0700)]
Merge pull request dotnet/corert#3418 from dotnet/nmirror (#11186)

Merge nmirror to master

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoMerge pull request #11191 from BruceForstall/FixFuncletAssert
Bruce Forstall [Tue, 25 Apr 2017 16:58:16 +0000 (09:58 -0700)]
Merge pull request #11191 from BruceForstall/FixFuncletAssert

Fix funclet begin assert

7 years agoMerge pull request #11080 from BruceForstall/MeasureNoway
Bruce Forstall [Tue, 25 Apr 2017 15:40:26 +0000 (08:40 -0700)]
Merge pull request #11080 from BruceForstall/MeasureNoway

Add code to measure dynamic noway_assert usage

7 years agoRyuJIT/ARM32: Update GT_LCL_FLD codegen.
Mikhail Skvortcov [Tue, 25 Apr 2017 12:04:03 +0000 (15:04 +0300)]
RyuJIT/ARM32: Update GT_LCL_FLD codegen.

7 years ago[x86/Linux] Do not report untracked from filters (#11195)
Hanjoung Lee [Tue, 25 Apr 2017 09:07:38 +0000 (18:07 +0900)]
[x86/Linux] Do not report untracked from filters (#11195)

Related Issue : #11101

7 years agoAdd code to measure dynamic noway_assert usage
Bruce Forstall [Wed, 19 Apr 2017 20:37:34 +0000 (13:37 -0700)]
Add code to measure dynamic noway_assert usage

Set COMPlus_JitMeasureNowayAssert=1 to enable measurement.
Set COMPlus_JitMeasureNowayAssertFile to a path/file to send
output to a file instead of stdout.

Code is under `#if MEASURE_NOWAY` which is enabled for DEBUG
only, though it can be manually enabled for non-DEBUG builds.

7 years agoFix funclet begin assert
Bruce Forstall [Mon, 24 Apr 2017 18:12:14 +0000 (11:12 -0700)]
Fix funclet begin assert

7 years agoMerge pull request #11196 from wateret/fix-formatting
Bruce Forstall [Tue, 25 Apr 2017 06:49:01 +0000 (23:49 -0700)]
Merge pull request #11196 from wateret/fix-formatting

Fix formatting fail

7 years agoMerge pull request #11183 from sdmaclea/PR-FIX-11181
Bruce Forstall [Tue, 25 Apr 2017 06:31:17 +0000 (23:31 -0700)]
Merge pull request #11183 from sdmaclea/PR-FIX-11181

Fix 11181

7 years ago[x86/Linux] Change CI docker image (#11098)
Hyeongseok Oh [Tue, 25 Apr 2017 06:08:38 +0000 (15:08 +0900)]
[x86/Linux] Change CI docker image (#11098)

* [x86/Linux] Change CI docker image

Change CI docker image to support clang-3.9

* Update x86_ci_script.sh

change docker tag name

* Update x86_ci_script.sh

environment set correctly: ROOTFS_DIR

* Update x86_ci_script.sh

change docker image name

7 years agoFix formatting fail
Hanjoung Lee [Tue, 25 Apr 2017 05:51:14 +0000 (14:51 +0900)]
Fix formatting fail

7 years agoEnsure using the given executable path. (#10525)
Jim Ma [Tue, 25 Apr 2017 05:40:36 +0000 (17:40 +1200)]
Ensure using the given executable path. (#10525)

* Ensure using the given executable path.

Fix the bug that corerun trying to load the executable from current directory even if the user has specified a full path of the executable.

Fix #5631

* Revert "Ensure using the given executable path."

This reverts commit d237e6329f85132429176a0644cf6d93c9437ff4.

* Partially implemented.

* Ensure app context using correct IL file path.

Extracting simple name from the given file path and look up its value in tpa list. If the value does not equal to the given file path, we update the value with correct given file path.

Fix #5631

* Re-arrange the slashIndex to eliminate unneccessary code.

* A few performance improvement with a memory leak bug fixed.

* Added the absolute path of target assembly to tpa list.

Fix #5631

* Added the path of target assembly to tpa on Windows.

Fix #5631

7 years agoAdd "createdump" command to SOS. (#11161)
Mike McLaughlin [Tue, 25 Apr 2017 00:12:36 +0000 (17:12 -0700)]
Add "createdump" command to SOS. (#11161)

Uses the createdump utility code as a library.

Changed the "-m, --micro" option to "-t, --triage".

Lots of cleanup.

7 years agoMerge pull request #11152 from AndyAyersMS/FixTailCallStressAssert
Andy Ayers [Mon, 24 Apr 2017 23:42:38 +0000 (16:42 -0700)]
Merge pull request #11152 from AndyAyersMS/FixTailCallStressAssert

JIT: simple fix for the tail call stress assert

7 years agoMerge pull request #11157 from mikedn/reg-encoding
Bruce Forstall [Mon, 24 Apr 2017 23:28:08 +0000 (16:28 -0700)]
Merge pull request #11157 from mikedn/reg-encoding

Simplify emitter's RegEncoding

7 years agoMerge pull request #11108 from BruceForstall/RangedForAllSuccessorIter
Bruce Forstall [Mon, 24 Apr 2017 23:02:18 +0000 (16:02 -0700)]
Merge pull request #11108 from BruceForstall/RangedForAllSuccessorIter

Use C++ ranged 'for' for AllSuccessorIter use

7 years agoMerge pull request #11172 from mskvortsov/ArithOverflowChecks
Bruce Forstall [Mon, 24 Apr 2017 21:28:51 +0000 (14:28 -0700)]
Merge pull request #11172 from mskvortsov/ArithOverflowChecks

[RyuJIT/ARM32] Enable arithmetic overflow checks

7 years agoSupport other toolsets in Win/ARM64 build
Russ Keldorph [Sun, 23 Apr 2017 13:42:14 +0000 (06:42 -0700)]
Support other toolsets in Win/ARM64 build

7 years agoFix 11181
Steve MacLean, Qualcomm Datacenter Technologies, Inc [Mon, 24 Apr 2017 19:33:13 +0000 (19:33 +0000)]
Fix 11181

7 years agoFix cmake warning about mismatched if/endif comment (#11176)
Bruce Forstall [Mon, 24 Apr 2017 18:15:35 +0000 (11:15 -0700)]
Fix cmake warning about mismatched if/endif comment (#11176)