Pat Gavlin [Thu, 3 Nov 2016 19:09:50 +0000 (12:09 -0700)]
Merge pull request dotnet/coreclr#7958 from pgavlin/VSO280123
Make a few VN methods tolerant of NoVN.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9d295d676dbd2f5c72e3fc1f5fb12d293a3da37d
John Chen [Thu, 3 Nov 2016 18:59:40 +0000 (11:59 -0700)]
Make CrossGen documentation up to date (dotnet/coreclr#7973)
Commit migrated from https://github.com/dotnet/coreclr/commit/
40b25c8955a00e47d2b061f2f795ffc917ccca1a
Pat Gavlin [Thu, 3 Nov 2016 17:35:28 +0000 (10:35 -0700)]
Merge pull request dotnet/coreclr#7956 from pgavlin/VSO280110
Properly update block flags during branch opt.
Commit migrated from https://github.com/dotnet/coreclr/commit/
81a1b87909cd27a7313a124f29c503595f2af117
Pat Gavlin [Thu, 3 Nov 2016 17:35:05 +0000 (10:35 -0700)]
Format code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3b69d5b7b497c9ce0151d506fdfad81b06ba1d42
Pat Gavlin [Thu, 3 Nov 2016 17:29:57 +0000 (10:29 -0700)]
Merge pull request dotnet/coreclr#7959 from pgavlin/VSO280116
Fix an assert condition in lowering.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a307cae611968ff1ce1fdd7c6a084ee6364586fe
Pat Gavlin [Thu, 3 Nov 2016 17:29:32 +0000 (10:29 -0700)]
Format code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fe7e31a7ea56ca626916b546211ff3d728f70cf9
Andy Ayers [Thu, 3 Nov 2016 17:11:25 +0000 (10:11 -0700)]
Merge pull request dotnet/coreclr#7968 from AndyAyersMS/CaptureNewObservations
Inliner: capture new observations
Commit migrated from https://github.com/dotnet/coreclr/commit/
f1a53c29d3c84ced1dc3bcb98e5cee8333a147d4
Stephen Toub [Thu, 3 Nov 2016 10:06:36 +0000 (06:06 -0400)]
Mark NonRandomizedStringEqualityComparer as serializable (dotnet/coreclr#7966)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d4681d2773378e9d32d3720dea615732e7086bd4
Andy Ayers [Tue, 1 Nov 2016 23:22:10 +0000 (16:22 -0700)]
Inliner: capture new observations
Rebase the DiscretionaryPolicy on the EnhancedLegacyPolicy, and
capture and report some of the new observations that have been added
recently.
This change adds a new HAS_GC_STRUCT observation in addition to the
more specific RARE_GC_STRUCT, so that the DiscretionaryPolicy can
be notified of GC struct locals and temps for all candidates, not
just ones invoked from rare call sites.
No changes in codegen.
Commit migrated from https://github.com/dotnet/coreclr/commit/
af4464a5b0c9a117d53fea16badeb7ca32f92d75
Jonghyun Park [Thu, 3 Nov 2016 02:46:19 +0000 (11:46 +0900)]
Revises 'JitTimer::PrintCsvHeader' to use 'append' mode (dotnet/coreclr#7073)
* Revises 'JitTimer::PrintCsvHeader' to use 'append' mode
The current implementation of 'JitTimer::PrintCsvHeader' opens a CSV
file with 'read' mode and re-opens it with 'write' mode if it is absent.
The current implementation has two problems:
First, "read" file pointer will be closed even if it is null,
which is reported in dotnet/coreclr#7072.
Second, "write" file pointer will be leaked as there is no corresponding
fclose.
This commit rewrites 'JitTimer::PrintCsvHeader' to fix dotnet/coreclr#7072.
Commit migrated from https://github.com/dotnet/coreclr/commit/
67495d8667b2ec07c876ab4f7fd4a39f6a826158
varocarbas [Thu, 3 Nov 2016 02:33:46 +0000 (03:33 +0100)]
ParseNumber & related more efficient (dotnet/coreclr#3163)
Commit migrated from https://github.com/dotnet/coreclr/commit/
bdf13b2665480285c2b35dd265f0d9c5127937e0
David Mason [Thu, 3 Nov 2016 02:23:18 +0000 (19:23 -0700)]
Merge pull request dotnet/coreclr#7936 from vancem/EventSourceDisposeRace.11-01-16
Fix Deadlock associated with ETW commands happening during dispose.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ac50227cf77fc1147b1db40be37fd83250cdb79d
Dmitry-Me [Thu, 3 Nov 2016 01:38:49 +0000 (04:38 +0300)]
Fix race condition (dotnet/coreclr#7928)
Commit migrated from https://github.com/dotnet/coreclr/commit/
578ea10d73f82f156f9fea76ddf915b7943d7bd8
chunseoklee [Wed, 2 Nov 2016 22:18:53 +0000 (07:18 +0900)]
Suppress SOS.NETCore.dll error msg in release mode (dotnet/coreclr#6975)
Suppress error msg when running coreclr without
SOS.NETCore.dll in release mode
Commit migrated from https://github.com/dotnet/coreclr/commit/
8a05dcd07441b8779ec5b9eff9bdcb90f24fcb8e
Pat Gavlin [Wed, 2 Nov 2016 21:52:58 +0000 (14:52 -0700)]
Fix an assert condition in lowering.
Tail calls via the tail call helper must live in GC-safe blocks. A block
is GC-safe if either it or all of its dominators are also GC-safe. If we
are not optimizing, we will not compute dominators, and will therfore
not mark blocks whose dominators are all GC-safe. When deciding whether
or not we need to make a block GC-safe during tail call morphing,
however, we allow a tail call in an unmarked block iff the entry block
is GC-safe, as the entry block trivially dominates every reachable
block. This change fixes an assert that was not allowing for a tail call
in a block that is not marked GC-safe where the entry block is marked
GC-safe.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c777aec201d57ef1f896bd5a3089fb322cd53707
Jonghyun Park [Wed, 2 Nov 2016 21:44:24 +0000 (06:44 +0900)]
Set pRetVal as NULL on error inside 'VIRTUALCommitMemory' (dotnet/coreclr#7920)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b4a5de28efa0fdde7c74287cda31b658e11f7ebc
Pat Gavlin [Wed, 2 Nov 2016 21:23:09 +0000 (14:23 -0700)]
Merge pull request dotnet/coreclr#7917 from pgavlin/VSO280120
Fix VSO280120.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5adc178013c069cb9b50456740dcb79ef61e14f8
Pat Gavlin [Wed, 2 Nov 2016 21:08:41 +0000 (14:08 -0700)]
Make a few VN methods tolerant of NoVN.
There were a few methods on the VN store that were not resilient to
being provided with the "no value number" sentinel value. This lack of
resilience caused assertion failures during assertion propagation when
generating assertions for trees marked with "no value number".
Commit migrated from https://github.com/dotnet/coreclr/commit/
90a7e86fb9f83691ee11e7205c3fcef06c60e26f
Pat Gavlin [Wed, 2 Nov 2016 19:39:40 +0000 (12:39 -0700)]
Properly update block flags during branch opt.
`fgOptimizeBranch` was updating the flags for the predecessor block
using the flags from the wrong destination block. This was causing an
assert in `AllocateObjects` when verifying that all blocks that contain
`allocObj` nodes are properly marked with `BBF_HAS_NEWOBJ`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b0e3c23069a73943f52014b3cba52c56a6839439
Pat Gavlin [Mon, 31 Oct 2016 22:32:29 +0000 (15:32 -0700)]
Fix VSO280120.
st.lclFld decomposition was splitting a st.lclFld into two of the same
without bumping the destination var's ref count.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7266fa1aaa5678962de142868438ba6e6716c102
Dmitry-Me [Wed, 2 Nov 2016 17:42:41 +0000 (20:42 +0300)]
Check pointer before dereferencing it (dotnet/coreclr#7930)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e568823f22ec1dccc4ea785630c837e776d4ee09
Jan Kotas [Wed, 2 Nov 2016 16:54:14 +0000 (09:54 -0700)]
Merge pull request dotnet/coreclr#7953 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
140b2bdeefc49455d087358dfd40ff1cc2303dc8
Sivarv [Wed, 2 Nov 2016 15:01:42 +0000 (08:01 -0700)]
Merge pull request dotnet/coreclr#7943 from sivarv/rotateFix
Exclude GT_ROL/ROR from ==/!= 0 compare peep optimization
Commit migrated from https://github.com/dotnet/coreclr/commit/
a4e26c85b3de677df72c1beb94844e0e52243170
Davis Goodin [Wed, 2 Nov 2016 14:37:33 +0000 (09:37 -0500)]
Specify .NETCoreApp,Version=v1.1 for test projects (dotnet/coreclr#7937)
Commit migrated from https://github.com/dotnet/coreclr/commit/
eb36c1bae2560f728768fba8a9044acccef520ca
Jan Kotas [Wed, 2 Nov 2016 14:35:30 +0000 (07:35 -0700)]
Fix build break
[tfs-changeset: 1636334]
Commit migrated from https://github.com/dotnet/coreclr/commit/
cf3279c0f3dbc65b495bbe335d71132dbdb125fb
Jan Kotas [Wed, 2 Nov 2016 14:08:50 +0000 (07:08 -0700)]
Merge pull request dotnet/coreclr#7951 from jkotas/revert-correct-parameter-names
Revert "Correct parameter names."
Commit migrated from https://github.com/dotnet/coreclr/commit/
26fa7fac1cffa75ee8f572bf725b5ad2efcecb17
Jan Kotas [Wed, 2 Nov 2016 14:06:30 +0000 (07:06 -0700)]
Revert "Correct parameter names."
This reverts commit dotnet/coreclr@
0cae769f3c60bf2a696d02a88527a46d5b211cd5.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a655471b021c18c969c79a49a693e39c7aec51b3
Jan Kotas [Wed, 2 Nov 2016 13:55:43 +0000 (06:55 -0700)]
Merge pull request dotnet/coreclr#7950 from jkotas/revert-parameter-name-changes
Revert "Correct parameter names."
Commit migrated from https://github.com/dotnet/coreclr/commit/
23b5645f7f90cb5842130394b4edab0f1bfa6bbd
Jan Kotas [Wed, 2 Nov 2016 13:53:53 +0000 (06:53 -0700)]
Revert "Correct parameter names."
This reverts commit dotnet/coreclr@
a212082aa4cea8529b4c78844e2a7408ff6f7969.
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf2d7261d5be3c2cec6937da56c2c5ed2f0901a7
Hanjoung Lee [Wed, 2 Nov 2016 13:23:57 +0000 (22:23 +0900)]
[ARM] Implement BitPosition with arm intrinsics (dotnet/coreclr#7819)
Commit migrated from https://github.com/dotnet/coreclr/commit/
478591ee6c7b09c0c7165d1c85a05463fd070db4
Faizur Rahman [Wed, 2 Nov 2016 06:53:04 +0000 (23:53 -0700)]
Merge pull request dotnet/coreclr#7904 from shrah/master
Update S.R.InteropServices to ns2.0
Commit migrated from https://github.com/dotnet/coreclr/commit/
91f1b9d1519a40a1b3153d7b6dbb716a5bd704bd
John Chen [Wed, 2 Nov 2016 05:50:56 +0000 (22:50 -0700)]
Fix build break 814276: FEATURE_SPAN_OF_T disabled in runtime but enabled in DAC
[tfs-changeset: 1636322]
Commit migrated from https://github.com/dotnet/coreclr/commit/
19e352fdd52eec39fe7e04798fa3bbadf2f6aa88
Jan Kotas [Wed, 2 Nov 2016 01:59:16 +0000 (18:59 -0700)]
Merge pull request dotnet/coreclr#7944 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
45ab32327d565a36fe0ed03bc85ffdd5220a3cf2
Ian Hays [Wed, 2 Nov 2016 01:58:47 +0000 (18:58 -0700)]
Expose missing API in models.xml (dotnet/coreclr#7940)
progress towards https://github.com/dotnet/corefx/issues/12812 and https://github.com/dotnet/corefx/issues/12398
Commit migrated from https://github.com/dotnet/coreclr/commit/
0aba9c62db8b8c998466175d4951a01212cf57fb
Jan Kotas [Wed, 2 Nov 2016 01:57:36 +0000 (18:57 -0700)]
Update GCInfoDecoder with CoreRT changes (dotnet/coreclr#7938)
Porting most of the changes from https://github.com/dotnet/corert/pull/2116 to make GCInfoDecoder compile in CoreRT to keep the different copies in sync.
Commit migrated from https://github.com/dotnet/coreclr/commit/
efbd7a0ffb8ea6bb8e9fc3b273482cfd7bd7d5cd
sivarv [Wed, 2 Nov 2016 00:00:32 +0000 (17:00 -0700)]
Rotate Left/Right xarch instructions don't set ZF and ZF flag.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b82ba8b2940673d4ca61bc3407eb022e32153e5a
John Chen [Tue, 1 Nov 2016 23:20:08 +0000 (16:20 -0700)]
Fix GitHub build break caused by change dotnet/coreclr#1636179
[tfs-changeset: 1636227]
Commit migrated from https://github.com/dotnet/coreclr/commit/
da879d9237dc34a5ba9728358b7f78fc1981fc68
Tarek Mahmoud Sayed [Tue, 1 Nov 2016 23:17:50 +0000 (16:17 -0700)]
Enable the rest of netstandard1.7 globalization APIs (dotnet/coreclr#7935)
* Enable more netstandard 1.7 Globalization APIs
* Enable Windows support for the new APIs
* Fix spaces and line alignments
Commit migrated from https://github.com/dotnet/coreclr/commit/
98b795e2a7d76c0d854084add431d362394e9800
Andy Ayers [Tue, 1 Nov 2016 20:18:03 +0000 (13:18 -0700)]
Merge pull request dotnet/coreclr#7923 from AndyAyersMS/FixNoCandidateBug
Jit: spill stack for non-candidate calls
Commit migrated from https://github.com/dotnet/coreclr/commit/
0112e877e29426464844dd6575ad1808caf37267
Vance Morrison [Tue, 1 Nov 2016 19:21:34 +0000 (12:21 -0700)]
Fix deadlock when commands race with EventSource Shutdown
Commit migrated from https://github.com/dotnet/coreclr/commit/
76c75430d3dfa8ba258139a4bc7e1b95562bea4d
John Chen [Tue, 1 Nov 2016 18:34:27 +0000 (11:34 -0700)]
CrossGen: Copy all entries of Debug Directory Table (dotnet/coreclr#7849)
Fixes issue dotnet/coreclr#6482.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4810efadf35a76774cccad7398ae8c528a3c24ab
dotnet-bot [Tue, 1 Nov 2016 18:26:34 +0000 (11:26 -0700)]
Fix build break 814217 by removing inconsistencies between BCL and runtime
[tfs-changeset: 1636179]
Commit migrated from https://github.com/dotnet/coreclr/commit/
ee38f0cde26d486bdbe7dbbf83ea286c408e790f
Joseph Tremoulet [Fri, 14 Oct 2016 18:20:49 +0000 (14:20 -0400)]
Handle simd checks in OptimizeRangeCheck
When the index is a constant, this code applies to `GT_SIMD_CHK` equally
well as it applies to `GT_ARR_BOUNDS_CHECK`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
10beb3d4f7ee6f4149c0c231824205df3847ad6e
Stephen Toub [Tue, 1 Nov 2016 15:47:18 +0000 (11:47 -0400)]
Use nameof throughout mscorlib (dotnet/coreclr#7929)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e74cdcb1ed6021eaf03eea5ee7f6ba3c6b403daf
Carol Eidt [Tue, 1 Nov 2016 15:42:01 +0000 (08:42 -0700)]
Merge pull request dotnet/coreclr#7677 from CarolEidt/StructOpts
Enable optimization of structs
Commit migrated from https://github.com/dotnet/coreclr/commit/
9c95461a7200b9df71e8b76963fe072d6fb9c39b
Jan Kotas [Tue, 1 Nov 2016 14:06:37 +0000 (07:06 -0700)]
Merge pull request dotnet/coreclr#7926 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
09c9b00d90301adc03655690d34aeacfefedddc8
Michelle McDaniel [Tue, 1 Nov 2016 13:47:54 +0000 (06:47 -0700)]
Merge pull request dotnet/coreclr#7883 from adiaaida/fixDecomposeRotate
Fix DecomposeRotate for > 32 case
Commit migrated from https://github.com/dotnet/coreclr/commit/
60ad12e769327953de1da7896ab72cea1cb69221
Mukul Sabharwal [Tue, 1 Nov 2016 13:28:58 +0000 (14:28 +0100)]
Use resolver to get IL header and size (dotnet/coreclr#7924)
Commit migrated from https://github.com/dotnet/coreclr/commit/
18915473b567619700bd44dd64d4bb22184889e1
Jan Kotas [Tue, 1 Nov 2016 05:58:49 +0000 (22:58 -0700)]
Fix build break on x86
[tfs-changeset: 1636135]
Commit migrated from https://github.com/dotnet/coreclr/commit/
bdeef6f3007f74ada484238e326195e31ed0853b
Andy Ayers [Tue, 1 Nov 2016 05:57:25 +0000 (22:57 -0700)]
Use normal verbosity logging when building tests (dotnet/coreclr#7921)
Test build log file is ~4GB with diag verbosity. With normal it's about 20MB.
This seems to speed up the test build for me considerably.
See dotnet/coreclr#7916.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d3e9e0013c551ec6741af0a45eb6b234089afe74
Jeremy Kuhne [Tue, 1 Nov 2016 05:57:11 +0000 (22:57 -0700)]
Move SR adapter into root (dotnet/coreclr#7925)
CoreFX creates SR in the System namespace. While putting the CoreCLR SR
adapter in the root may be unconventional, it allows us to keep the
shared code identical.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d347f4dfd1be33ac2745e3eaca4dfec964b5db99
Jan Kotas [Tue, 1 Nov 2016 05:56:58 +0000 (22:56 -0700)]
Merge pull request dotnet/coreclr#7915 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
3210f68d86002ae54ae8edc773a29bb1a1316f47
Joseph Tremoulet [Tue, 1 Nov 2016 05:31:02 +0000 (01:31 -0400)]
Merge pull request dotnet/coreclr#7912 from JosephTremoulet/FlagVectorCounts
Flag vector counts
Commit migrated from https://github.com/dotnet/coreclr/commit/
2db6cc80eb35e56c57f7108ab04f7648ae3d0471
Joseph Tremoulet [Tue, 1 Nov 2016 05:29:57 +0000 (01:29 -0400)]
Merge pull request dotnet/coreclr#7910 from JosephTremoulet/FixInitTest
Fix check for initial induction variable value
Commit migrated from https://github.com/dotnet/coreclr/commit/
cebc34d9dfb081922e26e8defd2cc160e9a1fec8
Joseph Tremoulet [Thu, 27 Oct 2016 19:04:40 +0000 (15:04 -0400)]
Fix check for initial induction variable value
Checking that `head` dominates `entry` is insufficient, becuase there may
be a codepath from `head` through other nodes that modify the induction
variable to `entry`. Check instead that all preds of `entry` are either
`head` or in the loop.
Resolves dotnet/coreclr#7906.
Commit migrated from https://github.com/dotnet/coreclr/commit/
87531155e8eb0591e9c37f14536e7c98d3409276
Joseph Tremoulet [Tue, 1 Nov 2016 05:24:10 +0000 (01:24 -0400)]
Merge pull request dotnet/coreclr#7909 from JosephTremoulet/FixLoopEntryCheck
Skip removed loops in `optBlockIsLoopEntry`
Commit migrated from https://github.com/dotnet/coreclr/commit/
7f8ca8da2bf90eac03dc831d2201103ada71dfe5
Jan Kotas [Tue, 1 Nov 2016 03:14:32 +0000 (20:14 -0700)]
Fix build break
[tfs-changeset: 1636112]
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d1ebcb2f21577a3d8dbb481ca68c4c57a4cec7c
Andy Ayers [Tue, 1 Nov 2016 00:26:07 +0000 (17:26 -0700)]
Jit: spill stack for non-candidate calls
Closes dotnet/coreclr#7907.
Spill the evaluation stack at non-candidate calls since the call may
modify locals or args that are currently live on the stack.
In the attached test case I can't get the problematic IL sequence to
happen for the `F0` variant, but it is there for the `F1` variant.
No diffs seen in corlib or any of the framework assemblies that are
run via jit-dasm.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3b2ade83046ab7b56c7f335389b29faf2835c97e
Gaurav Khanna [Tue, 1 Nov 2016 00:03:50 +0000 (17:03 -0700)]
Merge pull request dotnet/coreclr#7854 from dotnet-bot/master-UpdateDependencies
Update CoreClr, CoreFx to beta-24631-02, beta-24631-01, respectively (master)
Commit migrated from https://github.com/dotnet/coreclr/commit/
89f083007641857171a9512dbd96bd1732840621
Russ Keldorph [Mon, 31 Oct 2016 23:52:44 +0000 (16:52 -0700)]
Merge pull request dotnet/coreclr#7918 from RussKeldorph/repoint-corefx-1.1.0
Make dotnet/coreclr reference corresponding dotnet/corefx branch
Commit migrated from https://github.com/dotnet/coreclr/commit/
f3c19d782ae9d2575cedd9f1a8c2e2bdc081200e
Jan Kotas [Mon, 31 Oct 2016 23:46:32 +0000 (16:46 -0700)]
Merge pull request dotnet/coreclr#7867 from Clockwork-Muse/ArgumentException
Replace hardcoded parameter names to ArgumentException with nameof
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8b8b6ab80f1c5b30cc04676ca2e084ce200161e
Russ Keldorph [Mon, 31 Oct 2016 23:18:11 +0000 (16:18 -0700)]
Make dotnet/coreclr reference corresponding dotnet/corefx branch
We run CoreFx tests under JitStress modes in CoreCLR. Previously, we were
always pulling down CoreFx master, which is bad for CoreCLR release
branches when things are out of synch.
Commit migrated from https://github.com/dotnet/coreclr/commit/
19647a3e4855063298c1b5056944b18c9dd96267
Pat Gavlin [Mon, 31 Oct 2016 22:33:53 +0000 (15:33 -0700)]
Merge pull request dotnet/coreclr#7885 from pgavlin/VSO278376.2
Fix VSO 278376.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ebf165edad0b59d86e4e70bfcf21ae876cc13b95
Pat Gavlin [Mon, 31 Oct 2016 22:33:29 +0000 (15:33 -0700)]
Merge pull request dotnet/coreclr#7905 from pgavlin/VSO279380
Fix VSO 279380.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9153cc2b686cda4b4daf4dddf24aad0ec964e6ec
Joseph Tremoulet [Fri, 14 Oct 2016 18:11:29 +0000 (14:11 -0400)]
Add LPFLG_SIMD_LIMIT flag
This flag identifies loops whose limit was a Vector<T>.Count expression.
This can be used in heuristics to target more aggressive optimizations at
SIMD code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d2e74ab5dd97c0a93306083c95a9a72d6a105d27
Andy Ayers [Mon, 31 Oct 2016 21:47:16 +0000 (14:47 -0700)]
Merge pull request dotnet/coreclr#7852 from AndyAyersMS/InlinerSmallFixes
Inliner: Fix LegacyPolicyAssert; Dump prejit noinline reasons
Commit migrated from https://github.com/dotnet/coreclr/commit/
d8b20289ae438d0e864272221c07a6b9b799061f
Michelle McDaniel [Fri, 28 Oct 2016 22:08:42 +0000 (15:08 -0700)]
Fix DecomposeRotate for > 32 case
In DecomposeRotate, we had a bug where we assumed loOp1 was
always gtLong's op1 and hiOp1 is always gtLong's op2 when we
call RepresentOpAsLocalVar, which is not true in the > 32 case, where we
swap hi and lo before generating the shift instructions for the rotate.
This change refactors the code so that we can correctly call
RepresentOpAsLocalVar with which of gtLong's ops hi and lo are.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f2dc0a9fb1319a8984baa7d1b2d81856628fe513
Alex Ghiondea [Mon, 31 Oct 2016 21:37:00 +0000 (14:37 -0700)]
A couple of changes included:
- Make sure we have a way to disable building with the Roslyn compiler. That should only happen in the internal build.
- Update the FeatureSpanOfT to also condition on using the latest compiler
- Introduce an if/def in string.cs for code that uses the ref locals / ref return.
- Make sure we only include the CryptographicException when building CoreCLR
- Update the PInvokeMap.txt file to include the right set of APIs.
- Remove duplicated APIs from PInvokeMap.txt
[tfs-changeset: 1636041]
Commit migrated from https://github.com/dotnet/coreclr/commit/
a5b89cbe429ccbc3a3ef9751ba9587f7ad540f6d
AlexGhiondea [Mon, 31 Oct 2016 20:06:26 +0000 (13:06 -0700)]
Merge pull request dotnet/coreclr#7884 from AlexGhiondea/Port_SecureString
Bring to CoreCLR the SecureString implementation from CoreFx.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8c641772e31e902541ade4a2d0ac6259aa7a2f03
Joseph Tremoulet [Fri, 14 Oct 2016 18:10:10 +0000 (14:10 -0400)]
Add GTF_ICON_SIMD_COUNT flag
This flag is used to indicate that an integer constant in the IR is the
result of replacing the Vector<T>.Count intrinsic. This can be used to
drive heuristics focusing more aggressive optimizations on SIMD code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
197e6619adf3d5b9f7a0c2c1320a0b4bc3363776
Joseph Tremoulet [Fri, 14 Oct 2016 18:08:48 +0000 (14:08 -0400)]
Skip removed loops in `optBlockIsLoopEntry`
This allows running this utility downstream of loop unrolling.
Commit migrated from https://github.com/dotnet/coreclr/commit/
77398bcc4f1a54222f7fb71a48bdc4ad32618e37
Jan Kotas [Mon, 31 Oct 2016 18:47:57 +0000 (11:47 -0700)]
Merge pull request dotnet/coreclr#7886 from jkotas/SpanOfT
Merge SpanOfT branch into master
Commit migrated from https://github.com/dotnet/coreclr/commit/
f42984160f5f9407f70ebc2e86edfcf226fccd81
Pat Gavlin [Mon, 31 Oct 2016 18:11:18 +0000 (11:11 -0700)]
Fix VSO 279380.
The liveness pass attempts to remove dead stores that it encounters
during its liveness computation. Successfully removing a dead store,
however, may invalidate the results of the computation. Therefore, the
pass operates as a fixed-point algorithm: it recomputes liveness until
either the contents of the function do not change or the removed code
does not change the results.
When running liveness on LIR, the correct flag--`fgStmtRemoved`--was not
being set if a dead store was succesfully removed. This caused the
liveness pass to terminate early and produce invalid results in certain
cases. This fix sets `fgStmtRemoved` when a dead store is successfully
removed in an LIR block.
Commit migrated from https://github.com/dotnet/coreclr/commit/
318945fdff3670103f97d05c317123c7ab2ef0d6
Faizur Rahman [Fri, 28 Oct 2016 01:11:38 +0000 (18:11 -0700)]
Update S.R.InteropServices to ns2.0
This is the final diff with net standard 2.0 except the SecureString functions. In particular,it adds the following:
M Marshal.BindToMoniker(System.String)
M Marshal.ChangeWrapperHandleStrength(System.Object,System.Boolean)
M ExternalException.ToString
T HandleRef
Commit migrated from https://github.com/dotnet/coreclr/commit/
d054bb5ca408523a1985e2c044e0e76e4da9d616
Pat Gavlin [Mon, 31 Oct 2016 18:07:46 +0000 (11:07 -0700)]
Merge pull request dotnet/coreclr#7758 from pgavlin/VSO267565
Fix P/Invoke cookie passing on x86.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a1b899b9e67426a7cdbb69ca2be708745c126b59
Pat Gavlin [Fri, 28 Oct 2016 18:44:18 +0000 (11:44 -0700)]
Fix VSO 278376.
genFloatToFloatCast was not checking whether or not its source operand
was an in-memory, register-optional node before comparing its source
register against its target register. This caused an assert in checked
builds (and SBCG in release builds) because the source temp was never
released.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c6527c960b52148dd467fa34a3f24fc4305cc352
Alex Ghiondea [Mon, 31 Oct 2016 17:13:52 +0000 (10:13 -0700)]
SecureStringMarshal was not correctly being build for Unix.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4c465e097719de065f3c663f5c5ac04773b661db
AlexGhiondea [Mon, 31 Oct 2016 17:05:18 +0000 (10:05 -0700)]
Merge pull request dotnet/coreclr#7901 from AlexGhiondea/FixBinCompat
Get latest behavior when missing TFM for BinaryCompatibility class
Commit migrated from https://github.com/dotnet/coreclr/commit/
ec5868c2d7b316cc810cc6cec4c845e3a7e9936d
Jan Kotas [Sun, 30 Oct 2016 21:21:16 +0000 (14:21 -0700)]
Add workaround for JIT crash
Commit migrated from https://github.com/dotnet/coreclr/commit/
4c5e9791dcc5b082ae01abc437dcb7456ae3e806
Jan Kotas [Sun, 30 Oct 2016 19:30:18 +0000 (12:30 -0700)]
Change Span fields to private readonly + other review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
c9a481181ea74d3a642d27df1f22404ed73da140
dotnet-bot [Mon, 31 Oct 2016 16:19:13 +0000 (16:19 +0000)]
Update CoreClr, CoreFx to beta-24631-02, beta-24631-01, respectively
Commit migrated from https://github.com/dotnet/coreclr/commit/
75ebdda045df2cf0931e1cecf5b25f4778c0beb2
Alex Ghiondea [Mon, 31 Oct 2016 14:26:59 +0000 (07:26 -0700)]
When reading the TFM for the BinaryCompatibility class on CoreCLR, set the TFM to be the latest version we have in our code.
This ensures that we are going to get the latest behavior (4.5.2+) for all the quirks that were using that class.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c271173aef317bcddc1d6283c82f2c7b2ad52e30
Alex Ghiondea [Mon, 31 Oct 2016 14:21:28 +0000 (07:21 -0700)]
Add the SecureStringMarshal and CryptographicException to model.xml
Commit migrated from https://github.com/dotnet/coreclr/commit/
31c93f8b888b4eeb2ea9fa5039e6d3fa239b5b0c
Stephen Toub [Mon, 31 Oct 2016 13:03:30 +0000 (09:03 -0400)]
Merge pull request dotnet/coreclr#7897 from stephentoub/stream_copyto
Use ArrayPool in Stream.CopyTo{Async}
Commit migrated from https://github.com/dotnet/coreclr/commit/
b0273bc608988926afe8263b2a375e906f13e653
Stephen Toub [Mon, 31 Oct 2016 11:05:13 +0000 (07:05 -0400)]
Remove StreamHelpers.ArrayPoolCopy.cs
It's no longer necessary now that Stream.CopyToAsync itself uses ArrayPool.
Commit migrated from https://github.com/dotnet/coreclr/commit/
669ce2cff1bc0b19d6ac8e94ea1c5add5e4b797a
Peter Marcu [Mon, 31 Oct 2016 10:55:44 +0000 (03:55 -0700)]
Fixing Typo in variable name in DateTime (dotnet/coreclr#7898)
Commit migrated from https://github.com/dotnet/coreclr/commit/
33176e660082aadf338ac6823f91e38f0345af70
Michal Strehovský [Mon, 31 Oct 2016 05:45:58 +0000 (22:45 -0700)]
Avoid boxing in calls to enum's GetHashCode (dotnet/coreclr#7895)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4ba6ee6aeb8e809142b7feab16115166529fc6d
Peter Marcu [Mon, 31 Oct 2016 05:28:45 +0000 (22:28 -0700)]
DateTime.ToString() Fast Track for RFC1123 (dotnet/coreclr#7891)
* DateTime.ToString() Fast Track for RFC1123
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c0d01c19842049b2389ec9bee2885be918b9597
Pat Gavlin [Fri, 21 Oct 2016 21:08:11 +0000 (14:08 -0700)]
Fix P/Invoke cookie passing on x86.
On x86, the P/Invoke cookie (when required) is passed on the stack
after all other stack arguments (if any).
Commit migrated from https://github.com/dotnet/coreclr/commit/
fe480e99ef007cb8e2948a5646fcb8c62f37e9ff
Stephen Toub [Mon, 31 Oct 2016 02:08:26 +0000 (22:08 -0400)]
Use ArrayPool in Stream.CopyTo{Async}
Commit migrated from https://github.com/dotnet/coreclr/commit/
7dea66e10861b82f3f90d68194f55cea58462b9d
Jan Kotas [Sun, 30 Oct 2016 09:28:14 +0000 (02:28 -0700)]
Add boilerplate doc comments to trivial methods
Commit migrated from https://github.com/dotnet/coreclr/commit/
b1ffa422742435069322fc34195a815b6f8f5d2d
Jan Kotas [Sun, 30 Oct 2016 08:50:27 +0000 (01:50 -0700)]
Streamline implementation of ToArray to call CopyTo<T> directly
Fix missing pinning in CopyTo<T>
Move and rename some JitHelpers to S.R.CS.Unsafe to make different implementations more similar
Commit migrated from https://github.com/dotnet/coreclr/commit/
c718ac41faceec2a69ddcc4eadd3ff1d45eb9141
Jan Kotas [Sat, 29 Oct 2016 06:04:36 +0000 (23:04 -0700)]
Fix build break on 32-bit platforms
Commit migrated from https://github.com/dotnet/coreclr/commit/
30af1dc05c46c7404423a87c465c9aecd9936719
Jan Kotas [Sat, 29 Oct 2016 05:28:49 +0000 (22:28 -0700)]
Disable Span<T> GC reporting under TODO to workaround JIT issue
Commit migrated from https://github.com/dotnet/coreclr/commit/
94362accb62557ef74a244216f042b1d843e9c79
Adam Sitnik [Wed, 21 Sep 2016 21:24:02 +0000 (23:24 +0200)]
added implicit cast operator from ArraySegment to Spans (dotnet/coreclr#7297)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ca90acbcf6d31179bcf00cb2652d2ca1d0883019
Adam Sitnik [Wed, 21 Sep 2016 00:12:47 +0000 (02:12 +0200)]
create ReadOnlySpan<char> from string (dotnet/coreclr#7276)
Commit migrated from https://github.com/dotnet/coreclr/commit/
59f652e65f8fd67ca32e19f07f505f079030f02c
Adam Sitnik [Fri, 16 Sep 2016 20:25:08 +0000 (22:25 +0200)]
added AsBytes() and NonPortableCast() to Span and ReadOnlySpan API (dotnet/coreclr#7220)
* added AsBytes() and NonPortableCast() to Span and ReadOnlySpan API, fixes dotnet/coreclr#7211
* throw when casted types contain pointers
Commit migrated from https://github.com/dotnet/coreclr/commit/
93ee105691085f4edef14ff108708b765a9a9d18
Adam Sitnik [Mon, 12 Sep 2016 16:21:53 +0000 (18:21 +0200)]
Add TryCopyTo and Set methods to Spans API dotnet/coreclr#5857 (dotnet/coreclr#6648)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ba437ef4cd6beb1597742051b1c16310f074794
Jan Kotas [Mon, 29 Aug 2016 06:18:11 +0000 (23:18 -0700)]
Fix reference types (dotnet/coreclr#6954)
- Generic ArrayPinningHelper resulted into incorrect array data offset for reference types. Use non-generic one instead.
- Add array covariance checks to guarantee type safety.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e7dfda575898129eb77a3a8541990c43c4e29149
Jan Kotas [Fri, 17 Jun 2016 00:44:57 +0000 (17:44 -0700)]
Add basic Span<T> test
Commit migrated from https://github.com/dotnet/coreclr/commit/
9c7c1b741b132cd78bfc9db2654227bc2aec2e45