Jan Kotas [Thu, 23 Jun 2016 21:44:44 +0000 (14:44 -0700)]
Add braces to avoid operator priority confusion (dotnet/coreclr#5964)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e0787c6f35d5cf9e440461cc252fe92d0d9bce19
Aditya Mandaleeka [Thu, 23 Jun 2016 20:59:35 +0000 (13:59 -0700)]
Merge pull request dotnet/coreclr#5963 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
930c1d91af7f8138ec5280993cd533fabc000a23
Ivan Baravy [Thu, 23 Jun 2016 20:18:06 +0000 (00:18 +0400)]
Fix GC profiling on arm-softfp (dotnet/coreclr#5952)
This commit updates one preprocessor directive inside gc.h to initialize
dwEtwRootKind field of ScanContext when GC_PROFILING is defined while
FEATURE_EVENT_TRACE is not. This happens to platforms like arm-softfp.
Commit migrated from https://github.com/dotnet/coreclr/commit/
46d9787d18437733815b3a6fd35df2474cea792d
Bruce Forstall [Thu, 23 Jun 2016 19:32:21 +0000 (12:32 -0700)]
Merge pull request dotnet/coreclr#5939 from BruceForstall/FixPinvoke
Fix RyuJIT/x86 P/Invoke inlining
Commit migrated from https://github.com/dotnet/coreclr/commit/
b37ac862ec8274cbcc698dfabaaa493cffdd2858
Jan Kotas [Thu, 23 Jun 2016 18:13:01 +0000 (11:13 -0700)]
Fix build break in internal build
[tfs-changeset: 1614475]
Commit migrated from https://github.com/dotnet/coreclr/commit/
9b8c43f7801269899558fda7248a058175bff68e
Rahul Kumar [Thu, 23 Jun 2016 18:06:43 +0000 (11:06 -0700)]
Merge pull request dotnet/coreclr#5935 from rahku/test
Fix test runner batch file to provide correct TPA path
Commit migrated from https://github.com/dotnet/coreclr/commit/
393760ccd7aeb2473d715e819d2f0f24619641f9
Brian Sullivan [Thu, 23 Jun 2016 17:37:53 +0000 (10:37 -0700)]
Merge pull request dotnet/coreclr#5936 from briansull/fullIntArgRegMask
Introduce the method fullIntArgRegMask() to replace many uses of RBM_ARG_REGS
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2190ababb0552b09845567da7700415ccdfc22d
Matt Ellis [Thu, 23 Jun 2016 17:35:38 +0000 (10:35 -0700)]
Merge pull request dotnet/coreclr#5937 from ellismg/pass-build-id-flag-to-linker
Pass --build-id=sha1 to linker explicitly
Commit migrated from https://github.com/dotnet/coreclr/commit/
316fc8e0c0ad848d78025f354893cf18a2b55317
Jarret Shook [Thu, 23 Jun 2016 17:28:50 +0000 (10:28 -0700)]
Merge pull request dotnet/coreclr#5962 from dotnet/revert-5945-devel/arm-ci-checked-fix
Revert "ARM-CI: Prevent creation of job for Checked configuration"
Commit migrated from https://github.com/dotnet/coreclr/commit/
907789db331e449e09f092fb28584854f812597a
Jarret Shook [Thu, 23 Jun 2016 17:28:42 +0000 (10:28 -0700)]
Revert "ARM-CI: Prevent creation of job for Checked configuration"
Commit migrated from https://github.com/dotnet/coreclr/commit/
3417df606c096de1044633b3645b29e761dbaf5d
Bruce Forstall [Thu, 12 May 2016 14:31:13 +0000 (07:31 -0700)]
Enable RyuJIT/x86 PInvoke lowering
Fixes dotnet/coreclr#4181 "NYI_X86: Implement PInvoke frame init inlining for x86"
The main work here is to handle the custom calling convention for the
x86 CORINFO_HELP_INIT_PINVOKE_FRAME helper call: it takes EDI as an argument,
trashes only EAX, and returns the TCB in ESI.
The code changes are as follows:
1. Lowering::InsertPInvokeMethodProlog(): don't pass the "secret stub param" for x86.
Also, don't store the InlinedCallFrame.m_pCallSiteSP in the prolog: for x86 this is done
at the call site, due to the floating stack pointer.
2. LinearScan::getKillSetForNode(): for helper calls, call compHelperCallKillSet() to get the killMask,
to account for non-standard kill sets.
3. Morph.cpp::fgMorphArgs(): set non-standard arguments for CORINFO_HELP_INIT_PINVOKE_FRAME.
4. compHelperCallKillSet(): set the correct kill set for CORINFO_HELP_INIT_PINVOKE_FRAME.
5. codegenxarch.cpp::genCallInstruction(): set the ABI return register for CORINFO_HELP_INIT_PINVOKE_FRAME.
6. lowerxarch.cpp::TreeNodeInfoInit(): set the GT_CALL dstCandidates for CORINFO_HELP_INIT_PINVOKE_FRAME.
5 & 6 are both needed to avoid a copy.
With this change, the dotnet/coreclr#1 NYI with 18415 hits over the tests is gone.
The total number of NYI is now 29516.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3c7ecfeea45ba11eb59ae5615ddd5d89ea980ea5
kvochko [Thu, 23 Jun 2016 16:23:20 +0000 (20:23 +0400)]
Enable out-of-proc unwinding on ARM (dotnet/coreclr#5946)
Fix dotnet/coreclr#5855
Commit migrated from https://github.com/dotnet/coreclr/commit/
50dd30e88897c8ee213fa76fb55624eead12f382
Michelle McDaniel [Thu, 23 Jun 2016 15:14:49 +0000 (08:14 -0700)]
Merge pull request dotnet/coreclr#5890 from adiaaida/x86LongCallFinal
Enable GT_CALL with long ret types for x86 RyuJIT
Commit migrated from https://github.com/dotnet/coreclr/commit/
26d4a8c05f6502226c13a3fb257c9b7cf2fea2e8
Jarret Shook [Thu, 23 Jun 2016 15:05:21 +0000 (08:05 -0700)]
Merge pull request dotnet/coreclr#5945 from prajwal-aithal/devel/arm-ci-checked-fix
ARM-CI: Prevent creation of job for Checked configuration
Commit migrated from https://github.com/dotnet/coreclr/commit/
4ba2204b724ba106af8494ed244eb36a76d59e27
Gaurav Khanna [Thu, 23 Jun 2016 14:17:56 +0000 (07:17 -0700)]
Merge pull request dotnet/coreclr#5944 from dotnet-bot/UpdateDependencies20160623052003
Updating External dependencies to beta-24223-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
0b2cf6f20bd4202d201846abf5a4e2eb4dd5b069
MyungJoo Ham [Thu, 23 Jun 2016 11:13:46 +0000 (20:13 +0900)]
Scripts: verify compiler definitions of native and managed (dotnet/coreclr#4675)
* Scripts: find out compiler definitions of CMake
In order to find mismatch between native and managed,
we need to know the list of definitions of native.
The copmiler definitions are stored at cmake.definitions
This addresses the complaints of dotnet/coreclr#4674
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
* Scripts: add check-definitions.py
scripts/check-definitions.py checks the consistency between
the native-build (CMake) compiler definitions and
the managed-build (MSBuild/mscorlib) compiler definitions
at build-time and prints out potentially dangerous
inconsistencies.
In order to get the proper results, managed build should
be executed after the native build (build.sh will do so
if no options such as skipnative or skipmanaged are given.)
Fix dotnet/coreclr#4674
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
* Scripts: allow check-definitions py to ignore the harmless
The third argument of check-definitions.py specifies harmless keywords
to be suppressed from emitting warning messages.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
* Scripts: add ignored cdefine keywords for warning
As an example of how to declare compiler definition keywords
that are harmless to be inconsistent between the native and the
managed, we have added FEATURE_IMPLICIT_TLS and FEATURE_HIJACK.
Developers may add more keywords in System.Private.CoreLib.csproj
if the keywords are verified to be harmless; i.e., although
the keywords exist in both cmake and clr.coreclr.props,
the keywords are NEVER used in either side of the sources
or the keywords only happen to have the same name while they
denote the completely different semantics and may be disjoint.
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
9ae38ddd84ac77e52f76a04c1c87a17742ba06da
Prajwal A N [Thu, 23 Jun 2016 07:14:18 +0000 (16:14 +0900)]
ARM-CI: Prevent creation of job for Checked configuration
Previously we checked if the configuration being built is either of Debug or Release
after the job had already been created. This resulted in a job being created for
Checked configuration with no commands to execute (for this job).
We prevent the unnecessary creation of job for the Checked configuration by
returning control at the very beginning of the <LinuxARMEmulator, arm, Checked> iteration
Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
4dcadad3cfbd2e9a1d9e386e190df027c713bc83
Maoni Stephens [Thu, 23 Jun 2016 07:07:49 +0000 (00:07 -0700)]
Merge pull request dotnet/coreclr#5934 from Maoni0/gcwhere
enable GCWhere on PAL
Commit migrated from https://github.com/dotnet/coreclr/commit/
70ac3533bfd4d4ebce6d834c3656b2d6c5bae941
Sean Gillespie [Thu, 23 Jun 2016 06:40:41 +0000 (23:40 -0700)]
Build the GC as part of its own CMake target (dotnet/coreclr#5932)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0dbc3f62bd3ce5184cc27884e3239e3deae3cc9a
dotnet-bot [Thu, 23 Jun 2016 05:20:03 +0000 (05:20 +0000)]
Updating External dependencies to beta-24223-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
bfc4a48d44ccb3911e51d255f9f9bf61c5f49755
Jarret Shook [Thu, 23 Jun 2016 03:46:08 +0000 (20:46 -0700)]
Merge pull request dotnet/coreclr#5211 from prajwal-aithal/devel/automate-arm-ci
ARM-CI: Make the Linux ARM emulator check automatic
Commit migrated from https://github.com/dotnet/coreclr/commit/
63796e5a7ae5076ceb310a2dca89e94e09b5e5f2
Prajwal A N [Wed, 25 May 2016 10:48:38 +0000 (19:48 +0900)]
ARM-CI: Make the Linux ARM emulator check automatic
* Previously the Linux ARM emulator build had to be triggered manually
* Making this check automatic based on the stability of emulator build
Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
e86ea35b030abd01252c3bbf9268875e9dd2d049
Jarret Shook [Thu, 23 Jun 2016 02:49:09 +0000 (19:49 -0700)]
Merge pull request dotnet/coreclr#5942 from prajwal-aithal/devel/arm-ci-results-fix
ARM-CI: Resolving typo in result path
Commit migrated from https://github.com/dotnet/coreclr/commit/
2134a6e21a028fb287bea8fa7f88a24754b19e9a
Prajwal A N [Thu, 23 Jun 2016 02:14:10 +0000 (11:14 +0900)]
ARM-CI: Resolving typo in result path
Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
855381485ddbe939c06f627a062abcec958f274d
Jarret Shook [Thu, 23 Jun 2016 01:54:49 +0000 (18:54 -0700)]
Merge pull request dotnet/coreclr#5941 from prajwal-aithal/devel/arm-ci-results-fix
ARM-CI: Change result archiving from emulated to cross build
Commit migrated from https://github.com/dotnet/coreclr/commit/
2650b5bb353ee0d6b97c49bd8e912355ade19d53
Prajwal A N [Thu, 23 Jun 2016 01:16:34 +0000 (10:16 +0900)]
ARM-CI: Change result archiving from emulated to cross build
Previous PR assumed emulated build and thus archived the binaries inside the emulator.
But since cross build produces binaries inside the source folder, change the result path
Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
0e87c6c35cb91fd4031b09f553ee30c737f540c2
Matt Ellis [Thu, 23 Jun 2016 00:31:15 +0000 (17:31 -0700)]
Pass --build-id=sha1 to linker explicitly
On some platforms, a build-id was not being added to native artifacts
and we would like it to be present. Explicitly pass --build-id=sha1 to
the linker.
Fixes dotnet/coreclr#5796
Commit migrated from https://github.com/dotnet/coreclr/commit/
faeb5bcf9f6b76827b658110b910eda8f0151518
Brian Sullivan [Wed, 22 Jun 2016 21:36:45 +0000 (14:36 -0700)]
Introduce the method fullIntArgRegMask()
This method returns the full integer argument register mask
that also include the fixed return buffer argument register.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4e0cd4ed5ad3ca1eb66e6d5f832ef1dcb5790233
Brian Sullivan [Thu, 23 Jun 2016 00:27:32 +0000 (17:27 -0700)]
Merge pull request dotnet/coreclr#5931 from briansull/fix-crossgen-arm64
Fix for Arm64 crossgen break
Commit migrated from https://github.com/dotnet/coreclr/commit/
387d9fc0a11f317a181f750a8a2ce7b44e9a7df8
Maoni0 [Wed, 22 Jun 2016 19:23:11 +0000 (12:23 -0700)]
enable GCWhere on PAL and fixed a bug in 859307b where it's missing a function in Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
550b9c5d355918c6e6ce88366bdf0da99d31579f
Rahul Kumar [Thu, 23 Jun 2016 00:14:38 +0000 (17:14 -0700)]
Fix test runner batch file to provide correct TPA path
Commit migrated from https://github.com/dotnet/coreclr/commit/
f65ea62a24425dc832e6c0869e2901d768bed7fb
Aditya Mandaleeka [Thu, 23 Jun 2016 00:11:12 +0000 (17:11 -0700)]
Merge pull request dotnet/coreclr#3484 from Dmitry-Me/fixBrokenCondition
Fix impossible condition
Commit migrated from https://github.com/dotnet/coreclr/commit/
e39a3aeddbac22ceb820c1edc64b634f9e152956
Jarret Shook [Wed, 22 Jun 2016 23:49:49 +0000 (16:49 -0700)]
Merge pull request dotnet/coreclr#5933 from prajwal-aithal/devel/arm-ci-script-fix
ARM-CI: Use CI cross build script in emulator
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf325ae4ab002048b5049c3dc4cc4598a79e535c
Prajwal A N [Wed, 22 Jun 2016 23:21:54 +0000 (08:21 +0900)]
ARM-CI: Use CI cross build script in emulator
Previous PRs added the build commands to the groovy script.
But this did not work for various reasons.
The current patch makes the CI system execute the bash script
that does the cross build. The bash script is already supplied with the emulator
Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
56fa3e782cb00a1be54ffe8250be009584090018
Bruce Forstall [Wed, 22 Jun 2016 23:15:41 +0000 (16:15 -0700)]
Merge pull request dotnet/coreclr#5929 from BruceForstall/CleanUpPinvokeLowering
Clean up PInvoke lowering
Commit migrated from https://github.com/dotnet/coreclr/commit/
0c7f5b415c2106a5c261c9b918bbd6e736b01ebc
Brian Sullivan [Wed, 22 Jun 2016 22:48:45 +0000 (15:48 -0700)]
Fix for Arm64 crossgen break
Remorphing a call with an x8 Return buffer arg asserts
Commit migrated from https://github.com/dotnet/coreclr/commit/
cacee58795e1a97d8ac1ae77bda1bf1dde1c957e
Bruce Forstall [Wed, 22 Jun 2016 21:37:31 +0000 (14:37 -0700)]
Clean up PInvoke lowering
Mostly, add lots of comments.
Commit migrated from https://github.com/dotnet/coreclr/commit/
898080b8fc4bd814b3ccb5ce96b1121ad55d0c4c
Michelle McDaniel [Tue, 31 May 2016 15:40:16 +0000 (08:40 -0700)]
Enable GT_CALL with long ret types for x86 RyuJIT
1) Enables genMultiRegCallStoreToLocal for x86 RyuJIT. Forces long return
types to be stored to the stack after returning from a call.
2) Update lvaPromoteLongVars to not promote a long if it is a multi reg
arg or ret.
3) Adds NYI for call arguments that are longs and contain adds or
subtracts. We are currently producing the wrong order of operations so
that we can push the argument immediately after performing the arithmetic.
We will do the hi adc/sbb before the carry bit has been set by doing the
lo operation.
4) Adds an NYI for morphing a node into a call node if the call will have
a long return type.
5) Moves the logic for forcing var = call() for calls with long return
types to lower::DecomposeNode().
Commit migrated from https://github.com/dotnet/coreclr/commit/
9237cec8009c478e76c6193a5ea628fc8aaa3bf1
Kyungwoo Lee [Wed, 22 Jun 2016 20:43:29 +0000 (13:43 -0700)]
Merge pull request dotnet/coreclr#5926 from kyulee1/cmpxchg
ARM64: Skip CompareExchangeTClass Test
Commit migrated from https://github.com/dotnet/coreclr/commit/
f521e7099273e2764e5d5c81a3a1c1dea6f8676d
Bruce Forstall [Wed, 22 Jun 2016 20:41:25 +0000 (13:41 -0700)]
Merge pull request dotnet/coreclr#5915 from BruceForstall/FgMorphArgsCleanup
Clean up fgMorphArgs
Commit migrated from https://github.com/dotnet/coreclr/commit/
7d3623d1b6dca035999e68c2183e21bbae5d8be7
Rahul Kumar [Wed, 22 Jun 2016 20:35:13 +0000 (13:35 -0700)]
Merge pull request dotnet/coreclr#5891 from rahku/arm64retbuf
Arm64:return buffer arg should be passed in x8
Commit migrated from https://github.com/dotnet/coreclr/commit/
702b73a71b67992bad105c482f5641dfb84893e1
Carol Eidt [Wed, 22 Jun 2016 20:09:55 +0000 (13:09 -0700)]
Merge pull request dotnet/coreclr#5389 from parjong/fix/issue_5357
Run fgMorphCopyBlock for newly inserted assignment
Commit migrated from https://github.com/dotnet/coreclr/commit/
063faa3cd5505ef2168ad9571921588d616d6925
Carol Eidt [Wed, 22 Jun 2016 20:02:32 +0000 (13:02 -0700)]
Merge pull request dotnet/coreclr#5871 from mikedn/modopt
Improve div/mod by const power of 2
Commit migrated from https://github.com/dotnet/coreclr/commit/
3dfe85f3573c12f07495483930beff5a6dbf5e3b
Aditya Mandaleeka [Wed, 22 Jun 2016 19:49:30 +0000 (12:49 -0700)]
Merge pull request dotnet/coreclr#5925 from RussKeldorph/j32_issues
Fix syntax error in x86_jit32_issues.targets
Commit migrated from https://github.com/dotnet/coreclr/commit/
8c090bcf954b8ee382f42e8e1767bf99433f2088
Pat Gavlin [Wed, 22 Jun 2016 18:27:09 +0000 (11:27 -0700)]
Merge pull request dotnet/coreclr#5904 from pgavlin/WalkTreePostExecutionOrder
Obey GTF_REVERSE_OPS in fgWalkTreePost.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8ae408fde25abe91219003dd02c70a6f78cc6fc2
Kyungwoo Lee [Wed, 22 Jun 2016 18:19:24 +0000 (11:19 -0700)]
ARM64: Skip CompareExchangeTClass Test
This test seems to fail often in CI. Disable it for now.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d11bc58e1aec026301cbd1c30f0feb25cf24d66f
Sejong Oh [Wed, 22 Jun 2016 18:12:38 +0000 (11:12 -0700)]
Merge pull request dotnet/coreclr#5905 from sejongoh/group_jitstress_jobs
Move all JIT stress jobs into a sub directory on CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
f93114dceffe68d24f7c3be34c54665bd340281b
Russ Keldorph [Wed, 22 Jun 2016 18:09:12 +0000 (11:09 -0700)]
Fix syntax error in x86_jit32_issues.targets
Commit migrated from https://github.com/dotnet/coreclr/commit/
374d74b7b8ec5364d67263404f30147714e321e3
William Godbe [Wed, 22 Jun 2016 17:46:46 +0000 (10:46 -0700)]
Merge pull request dotnet/coreclr#5924 from wtgodbe/groovalicious
Run all tests under server GC during code coverage job
Commit migrated from https://github.com/dotnet/coreclr/commit/
137ec1f61882062ef9ebfcdf83fdcaccf2db1a69
wtgodbe [Wed, 22 Jun 2016 17:43:55 +0000 (10:43 -0700)]
Run all tests under server GC
Commit migrated from https://github.com/dotnet/coreclr/commit/
f877851fb6a5da8c45a88a282dad67c018ccd4d0
John Chen [Wed, 22 Jun 2016 17:43:23 +0000 (10:43 -0700)]
Merge pull request dotnet/coreclr#5921 from JohnChen0/master
Disable a test case till issue dotnet/coreclr#5501 is fixed
Commit migrated from https://github.com/dotnet/coreclr/commit/
9edcc2aba269a8b91aec3f93fa95b6139a62af87
Evgeny Pavlov [Wed, 22 Jun 2016 16:56:51 +0000 (20:56 +0400)]
[SOS] [Linux] Fix incorrect symbol loading from portable pdb (dotnet/coreclr#5896)
* Fix incorrect symbol loading from portable pdb
* Change return value to S_OK
Commit migrated from https://github.com/dotnet/coreclr/commit/
c95923e1ff48b767cedac760d43be6db89b8bcbe
Mike McLaughlin [Wed, 22 Jun 2016 16:55:33 +0000 (09:55 -0700)]
Generate symbols packages for Windows CoreCLR binaries. (dotnet/coreclr#5902)
* Generate symbols packages for Windows CoreCLR binaries.
Issue dotnet/coreclr#5832.
* Add dll/exe back to symbol package.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f7c5984143a181b8be0cf9268d0bd40925789e9b
John Chen [Wed, 22 Jun 2016 16:12:44 +0000 (09:12 -0700)]
Disable a test case till issue dotnet/coreclr#5501 is fixed
Commit migrated from https://github.com/dotnet/coreclr/commit/
c9258739d99be31c50da632a4c4b1f75bd1ffbce
Mike Danes [Mon, 9 May 2016 22:01:12 +0000 (01:01 +0300)]
Optimize integer div/mod by const power of 2 in lowering
Optimizing GT_DIV/GT_UDIV/GT_MOD/GT_UMOD by power of 2 in codegen is problematic because the xarch DIV instruction has special register requirements. By the time codegen decides to perform the optimization the rax and rdx registers have been already allocated by LSRA even though they're not always needed (as it happens in the case of unsigned division where CDQ isn't used).
Since the JIT can't represent a CDQ instruction in its IR an arithmetic shift (GT_RSH) has been instead to extract the dividend sign. xarch's SAR is larger than CDQ but it has the advantage that it doesn't require specific registers. Also, arithmetic shifts are available on architectures other than xarch.
Example: method "static int foo(int x) => x / 8;" is now compiled to
mov eax, ecx
mov edx, eax
sar edx, 31
and edx, 7
add edx, eax
mov eax, edx
sar eax, 3
instead of
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
As a side-effect of this change the optimization now also works when the divisor is too large to be contained. Previously this wasn't possible because the divisor constant needed to be modified during codegen but the constant was already loaded into a register.
Example: method "static ulong foo(ulong x) => x /
4294967296;" is now compiled to
mov rax, rcx
shr rax, 32
whereas before a DIV instruction was used.
This change also fixes an issue in fgShouldUseMagicNumberDivide. The optimization that is done in lower can handle negative power of 2 divisors but fgShouldUseMagicNumberDivide handled those cases because it didn't check the absolute value of the divisor.
Example: method "static int foo(int x) => return x / -2;" is now compiled to
mov eax, ecx
mov edx, eax
shr edx, 31
add edx, eax
sar edx, 1
mov eax, edx
neg eax
instead of
mov eax, 0x7FFFFFFF
imul edx:eax, ecx
mov eax, edx
sub eax, ecx
mov edx, eax
shr edx, 31
add eax, edx
Commit migrated from https://github.com/dotnet/coreclr/commit/
babfca85887cc455ece64766c4614d494a3419b8
Mike Danes [Sat, 14 Nov 2015 08:46:20 +0000 (10:46 +0200)]
Add tests for integer div/mod by const
Commit migrated from https://github.com/dotnet/coreclr/commit/
4286b4006c3c671d9d9cc1b6979498275b526775
Bruce Forstall [Wed, 22 Jun 2016 06:25:52 +0000 (23:25 -0700)]
Clean up fgMorphArgs
Simplify a lot of the coding, especially related to non-standard arg and SysV struct arg handling.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7952dcf4e5ebe4b93377f192b806da815fa4d7da
chunseoklee [Wed, 22 Jun 2016 15:12:58 +0000 (00:12 +0900)]
fix build break on ARM caused by f1889 (dotnet/coreclr#5914)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5783a073e46b355f2829d4c9a9c0f76dba7d8086
Gaurav Khanna [Wed, 22 Jun 2016 13:58:08 +0000 (06:58 -0700)]
Merge pull request dotnet/coreclr#5913 from dotnet-bot/UpdateDependencies20160622051611
Updating External dependencies to beta-24222-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
f5353c2f40da092910b44ee86672a9d274231f9f
Jan Vorlicek [Wed, 22 Jun 2016 12:26:17 +0000 (14:26 +0200)]
Cleanup hardware exception handling (dotnet/coreclr#5916)
Currently, we were checking for the exception address being in a marked jit
helper and unwinding to the caller context if it was there at two places.
Once in the HandleHardwareException to get context for the faulting exception
frame and once in DispatchManagedException to get the first managed frame.
This change modifies the code in HandleHardwareException to update the context
record in the exception itself so that we can leave out the same change in
the DispatchManagedException.
I have also added updating of the exception address in the exception record
so that the exception address is set to be in the managed caller of the helper.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3651e5f3da9f72cde9b50078023430839fee7037
dotnet-bot [Wed, 22 Jun 2016 05:16:11 +0000 (05:16 +0000)]
Updating External dependencies to beta-24222-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
86f8e7a2b6de3487fcab8b28c30c15ca1fb0f167
Brian Sullivan [Wed, 22 Jun 2016 04:12:32 +0000 (21:12 -0700)]
Merge pull request dotnet/coreclr#5908 from briansull/Fix-Remorph-Call
Fix for Remorph of a call with nonstandard args
Commit migrated from https://github.com/dotnet/coreclr/commit/
a9bb89bdec89f5a81c47586491db86f8f3cbfdce
Brian Sullivan [Wed, 22 Jun 2016 04:11:15 +0000 (21:11 -0700)]
Merge pull request dotnet/coreclr#5909 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
b5f996c1482c56414a9e59ab1dd761bf2824c214
Brian Sullivan [Tue, 21 Jun 2016 23:19:11 +0000 (16:19 -0700)]
Fix for Remorph of a call with nonstandard args
Commit migrated from https://github.com/dotnet/coreclr/commit/
f1889a7cb46c29577316ed43606eedabfeb7c461
Fadi Hanna [Tue, 21 Jun 2016 23:34:40 +0000 (16:34 -0700)]
Fixing build break on x86 and arm.
[tfs-changeset: 1614031]
Commit migrated from https://github.com/dotnet/coreclr/commit/
00bfc20f5960bd3788e3a348d22ac91dea26ecf1
Aditya Mandaleeka [Tue, 21 Jun 2016 23:06:05 +0000 (16:06 -0700)]
Merge pull request dotnet/coreclr#3097 from vors/docx
Convert SOSAndICorDebug.docx to SOSAndICorDebug.md
Commit migrated from https://github.com/dotnet/coreclr/commit/
1f07b477c2bcc9136eee1aa5112fd8e5e5ccc341
Jarret Shook [Tue, 21 Jun 2016 22:49:33 +0000 (15:49 -0700)]
Merge pull request dotnet/coreclr#5900 from jashook/gc_stress_incompat
Set b14364 as gcstress incompat
Commit migrated from https://github.com/dotnet/coreclr/commit/
a97bb98811c4318c487a1e880417f62a6ccead75
Jarret Shook [Tue, 21 Jun 2016 22:49:18 +0000 (15:49 -0700)]
Merge pull request dotnet/coreclr#5898 from jashook/gcstress_timeout_update
Up the default timeout for GCStress
Commit migrated from https://github.com/dotnet/coreclr/commit/
7eb838388ea99a38ca3edcd8fe6a71802cb36d7e
Aditya Mandaleeka [Tue, 21 Jun 2016 22:40:25 +0000 (15:40 -0700)]
Merge pull request dotnet/coreclr#5907 from Maoni0/stress_txt
updated stress run description
Commit migrated from https://github.com/dotnet/coreclr/commit/
56bfb01ac50ae7411eb94215200ea8d1230b1997
Maoni0 [Tue, 21 Jun 2016 22:36:05 +0000 (15:36 -0700)]
added a note about the reason why we ignore failures from tests in the stress run infrastructure
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce86b743aefa7decd5490a9f8a86b95dbe23a9d9
Sejong Oh [Tue, 21 Jun 2016 21:31:06 +0000 (14:31 -0700)]
Move all JIT stress jobs into a sub directory on CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
361d469b1c3ff9d913f17c1d01da50c16de0ba09
William Godbe [Tue, 21 Jun 2016 21:25:49 +0000 (14:25 -0700)]
Merge pull request dotnet/coreclr#5903 from wtgodbe/groovester
Archive entire obj directory in coverage jobs
Commit migrated from https://github.com/dotnet/coreclr/commit/
c278c028111aba47c23c2f3c7ba5e0f152f21faf
wtgodbe [Tue, 21 Jun 2016 21:21:45 +0000 (14:21 -0700)]
Archive entire obj directory
Commit migrated from https://github.com/dotnet/coreclr/commit/
3136907d29eec4c289e190263a966c7f68d2fbf7
Maoni Stephens [Tue, 21 Jun 2016 20:56:01 +0000 (13:56 -0700)]
Merge pull request dotnet/coreclr#5894 from Maoni0/seg_table
We need to have seg_mapping_table aligned on its natural alignement
Commit migrated from https://github.com/dotnet/coreclr/commit/
751dcd675ab685386f981d8ec1a2df6b004c19a2
Gaurav Khanna [Tue, 21 Jun 2016 20:22:03 +0000 (13:22 -0700)]
Merge pull request dotnet/coreclr#5899 from dotnet-bot/UpdateDependencies20160621051655
Updating External dependencies to beta-24221-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
70271b3b0a082f8c373aa82d82727df93d8a8d2d
Sejong Oh [Tue, 21 Jun 2016 20:06:29 +0000 (13:06 -0700)]
Merge pull request dotnet/coreclr#5892 from sejongoh/group_jitstress_jobs
Initial changes to move JIT stress jobs into jitstress directory on CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
d0ff00f870784d04fb6aaa9cc55478cfd03416e4
Rahul Kumar [Mon, 20 Jun 2016 22:33:19 +0000 (15:33 -0700)]
Arm64:return buffer arg should be passed in x8
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce39651fb42e68883a14f498c0bbc39dd5230d88
Fadi Hanna [Tue, 21 Jun 2016 18:51:05 +0000 (11:51 -0700)]
Generic dictionary minor performance improvement and simplification for R2R (dotnet/coreclr#5690)
A set of refactoring changes to slighly improve the performance of generic dictionary access on R2R images, and simplifying the codebase:
1) Removing dependency on CEEInfo::ComputeRuntimeLookupForSharedGenericTokenStatic (and deleting the API).
2) Stop parsing the generic type/method signatures when generating the R2R dictionary lookup assembly stub.
3) Avoid re-encoding the generic type/method signatures in a new in-memory blob using a SigBuilder (signatures used directly from the R2R image)
4) Moved the parsing/loading of type/method signatures to Dictionary::PopulateEntry()
5) Dictionary index and slot number are now encoded in the generated assembly stub instead of the signature (stub takes a pointer to a data blob, which contains the signature, the dictionary index and slot, and the module pointer)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9f5ae88cc49836c8d31f07db7800707165cdb06
Brian Sullivan [Tue, 21 Jun 2016 18:45:15 +0000 (11:45 -0700)]
Merge pull request dotnet/coreclr#5895 from briansull/UnboxingStub-Fix
Fix for generic unboxing stub with x8 return buffer argument
Commit migrated from https://github.com/dotnet/coreclr/commit/
fb79613c44df5ad80831dba1460ffb14dd6497a3
Carol Eidt [Tue, 21 Jun 2016 18:10:47 +0000 (11:10 -0700)]
Merge pull request dotnet/coreclr#5813 from mikedn/no-setflags
Remove useless gtSetFlags calls
Commit migrated from https://github.com/dotnet/coreclr/commit/
0d462da2173627b454dbe74f33828e0698cd963b
Pat Gavlin [Tue, 21 Jun 2016 17:58:43 +0000 (10:58 -0700)]
Obey GTF_REVERSE_OPS in fgWalkTreePost.
This particular sort of tree walk should correspond to the
tree execution order.
Commit migrated from https://github.com/dotnet/coreclr/commit/
95ff08611169aba2988903c74dcc524acd8b4e90
Brian Robbins [Tue, 21 Jun 2016 17:42:10 +0000 (10:42 -0700)]
Merge pull request dotnet/coreclr#5885 from brianrob/docker_perf
Update Linux Tracing Instructions for Docker Containers
Commit migrated from https://github.com/dotnet/coreclr/commit/
51f010f8f219810282391a9e0dd08188bafd5a93
jashoo [Tue, 21 Jun 2016 17:30:13 +0000 (10:30 -0700)]
Set b14364 as gcstress incompat
This test is set to be excluded to in interal testing under gc stress.
Add that information here as well.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7f886f09c34751958886537bc24ca5c10f773d34
dotnet-bot [Tue, 21 Jun 2016 17:16:55 +0000 (17:16 +0000)]
Updating External dependencies to beta-24221-00
Commit migrated from https://github.com/dotnet/coreclr/commit/
e5386e701ef0216d4a781391db1a4f6430664ef3
jashoo [Tue, 21 Jun 2016 16:35:02 +0000 (09:35 -0700)]
Up the default timeout for GCStress
Commit migrated from https://github.com/dotnet/coreclr/commit/
151e16c65c982032858c9d72a72aedda25b9e5d3
Gaurav Khanna [Tue, 21 Jun 2016 15:46:09 +0000 (08:46 -0700)]
Merge pull request dotnet/coreclr#5887 from gkhanna79/Fix5883
Update Prerelease version to Beta and increment patch version.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a576c83b0401fcfcc9e47e5cd3dcbe4c13871f58
Brian Sullivan [Tue, 21 Jun 2016 01:29:11 +0000 (18:29 -0700)]
Fix for generic unboxing stub with x8 return buffer argument
When we have nonstandard args we have to handle them before
we setup to expect the return buffer arg.
Added additional JitDump information about the call and its return type in impImportCall.
All of the ARM64 EXPECTED_PASS tests will now pass when hasFixedRerBufReg is enabled.
Additional changes are needed for the IL_STUB_PInvoke to get the Interop tests to pass
But these tests are currentlt alreay in the EXPECTED_FAIL catagory.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ddcd852cd36b350bcbb97ff0b6667e318e41e58
Gaurav Khanna [Mon, 20 Jun 2016 20:56:09 +0000 (13:56 -0700)]
Update Prerelease version to Beta and increment patch version.
Commit migrated from https://github.com/dotnet/coreclr/commit/
af7598e06f0df2a2df4894bbdfb5eb36b9dabb0d
Rahul Kumar [Tue, 21 Jun 2016 01:52:22 +0000 (18:52 -0700)]
Merge pull request dotnet/coreclr#5893 from rahku/test
Enable building only native test components
Commit migrated from https://github.com/dotnet/coreclr/commit/
cb0bb4e65ee1d2af116e3fb4e2dca116ae56fc03
Aditya Mandaleeka [Tue, 21 Jun 2016 01:26:16 +0000 (18:26 -0700)]
Merge pull request dotnet/coreclr#4983 from benaadams/patch-2
Add slack channel
Commit migrated from https://github.com/dotnet/coreclr/commit/
370e4143dfec911790c0e06a15156ddf5c91f310
Aditya Mandaleeka [Tue, 21 Jun 2016 01:18:06 +0000 (18:18 -0700)]
Merge pull request dotnet/coreclr#3074 from Dmitry-Me/useElseIfForExclusive
Use else-if for mutually exclusive conditions
Commit migrated from https://github.com/dotnet/coreclr/commit/
1973f0f500e33ca237f1587dfea71073bb9a997e
Maoni0 [Wed, 15 Jun 2016 20:37:35 +0000 (13:37 -0700)]
We need to have seg_mapping_table aligned on its natural alignement (ptr size). When it's not aligned,
aside from the perf problem, we also have a functional problem when an address that's not on a heap
segment is passed - we could read an intermediate value which would cause an AV. If the address is
on a heap segment it means we are guaranteed to read a ptr size atomically. This only affects functions
like IsHeapPointer which can be run when EE is not suspended.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6a4e02a4ded34e385b7249ed5972b49ad97f354a
Rahul Kumar [Tue, 21 Jun 2016 00:01:34 +0000 (17:01 -0700)]
Enable building only native test components
Commit migrated from https://github.com/dotnet/coreclr/commit/
ffac9c48557b58dc8e6369de92c66d6e97525afe
William Godbe [Mon, 20 Jun 2016 23:47:12 +0000 (16:47 -0700)]
Merge pull request dotnet/coreclr#5889 from wtgodbe/Loader
Fix race condition in Loader regression 523654 test
Commit migrated from https://github.com/dotnet/coreclr/commit/
f6ad954733e4c8f0bbb342bc3412747663905cb2
Aditya Mandaleeka [Mon, 20 Jun 2016 23:38:49 +0000 (16:38 -0700)]
Merge pull request dotnet/coreclr#5879 from mattwarren/patch-1
Added links to CoreCLR issues, small formatting fix
Commit migrated from https://github.com/dotnet/coreclr/commit/
cd469732bc763516dbde160ef5859afcc058cc65
Aditya Mandaleeka [Mon, 20 Jun 2016 23:35:14 +0000 (16:35 -0700)]
Merge pull request dotnet/coreclr#5888 from adityamandaleeka/generate_core_dumps_runtest
Set coredump_filter to include shared library code in CI core dumps
Commit migrated from https://github.com/dotnet/coreclr/commit/
742df17fff977695cd36337169b16af0057ad723
Sejong Oh [Mon, 20 Jun 2016 22:42:22 +0000 (15:42 -0700)]
Initial changes to group JIT stress jobs into a sub directory on CI
Add jitstress2_jitstressregs1 scenario first and then will add others
after testing.
Commit migrated from https://github.com/dotnet/coreclr/commit/
972af956a0670c40eb4135be3de3d6041fe950fd
wtgodbe [Mon, 20 Jun 2016 22:21:44 +0000 (15:21 -0700)]
Fix race condition in Loader regression 523654 test
Commit migrated from https://github.com/dotnet/coreclr/commit/
27e1cdfe3fc50b5e9250ea5b4c7deec793b5f6b0
Sean Gillespie [Mon, 20 Jun 2016 21:56:29 +0000 (14:56 -0700)]
Merge pull request dotnet/coreclr#5886 from swgillespie/longgc-netci
Switch to double-quotes for interpolated string in netci.groovy
Commit migrated from https://github.com/dotnet/coreclr/commit/
cbddfc0dfd42077a23def2118636fe5061c6093a
Aditya Mandaleeka [Mon, 20 Jun 2016 21:29:37 +0000 (14:29 -0700)]
Set coredump_filter to include shared library code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e42ea2920222716e9751f78fa72b3256f85d8d4e