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`.
Dmitry-Me [Wed, 2 Nov 2016 17:42:41 +0000 (20:42 +0300)]
Check pointer before dereferencing it (#7930)
Jan Kotas [Wed, 2 Nov 2016 16:54:14 +0000 (09:54 -0700)]
Merge pull request #7953 from dotnet-bot/from-tfs
Merge changes from TFS
Sivarv [Wed, 2 Nov 2016 15:01:42 +0000 (08:01 -0700)]
Merge pull request #7943 from sivarv/rotateFix
Exclude GT_ROL/ROR from ==/!= 0 compare peep optimization
Davis Goodin [Wed, 2 Nov 2016 14:37:33 +0000 (09:37 -0500)]
Specify .NETCoreApp,Version=v1.1 for test projects (#7937)
Jan Kotas [Wed, 2 Nov 2016 14:35:30 +0000 (07:35 -0700)]
Fix build break
[tfs-changeset: 1636334]
Jan Kotas [Wed, 2 Nov 2016 14:08:50 +0000 (07:08 -0700)]
Merge pull request #7951 from jkotas/revert-correct-parameter-names
Revert "Correct parameter names."
Jan Kotas [Wed, 2 Nov 2016 14:06:30 +0000 (07:06 -0700)]
Revert "Correct parameter names."
This reverts commit
0cae769f3c60bf2a696d02a88527a46d5b211cd5.
Jan Kotas [Wed, 2 Nov 2016 13:55:43 +0000 (06:55 -0700)]
Merge pull request #7950 from jkotas/revert-parameter-name-changes
Revert "Correct parameter names."
Jan Kotas [Wed, 2 Nov 2016 13:53:53 +0000 (06:53 -0700)]
Revert "Correct parameter names."
This reverts commit
a212082aa4cea8529b4c78844e2a7408ff6f7969.
Hanjoung Lee [Wed, 2 Nov 2016 13:23:57 +0000 (22:23 +0900)]
[ARM] Implement BitPosition with arm intrinsics (#7819)
Faizur Rahman [Wed, 2 Nov 2016 06:53:04 +0000 (23:53 -0700)]
Merge pull request #7904 from shrah/master
Update S.R.InteropServices to ns2.0
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]
Jan Kotas [Wed, 2 Nov 2016 01:59:16 +0000 (18:59 -0700)]
Merge pull request #7944 from dotnet-bot/from-tfs
Merge changes from TFS
Ian Hays [Wed, 2 Nov 2016 01:58:47 +0000 (18:58 -0700)]
Expose missing API in models.xml (#7940)
progress towards https://github.com/dotnet/corefx/issues/12812 and https://github.com/dotnet/corefx/issues/12398
Jan Kotas [Wed, 2 Nov 2016 01:57:36 +0000 (18:57 -0700)]
Update GCInfoDecoder with CoreRT changes (#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.
sivarv [Wed, 2 Nov 2016 00:00:32 +0000 (17:00 -0700)]
Rotate Left/Right xarch instructions don't set ZF and ZF flag.
John Chen [Tue, 1 Nov 2016 23:20:08 +0000 (16:20 -0700)]
Fix GitHub build break caused by change #1636179
[tfs-changeset: 1636227]
Tarek Mahmoud Sayed [Tue, 1 Nov 2016 23:17:50 +0000 (16:17 -0700)]
Enable the rest of netstandard1.7 globalization APIs (#7935)
* Enable more netstandard 1.7 Globalization APIs
* Enable Windows support for the new APIs
* Fix spaces and line alignments
Andy Ayers [Tue, 1 Nov 2016 20:18:03 +0000 (13:18 -0700)]
Merge pull request #7923 from AndyAyersMS/FixNoCandidateBug
Jit: spill stack for non-candidate calls
John Chen [Tue, 1 Nov 2016 18:34:27 +0000 (11:34 -0700)]
CrossGen: Copy all entries of Debug Directory Table (#7849)
Fixes issue #6482.
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]
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`.
Stephen Toub [Tue, 1 Nov 2016 15:47:18 +0000 (11:47 -0400)]
Use nameof throughout mscorlib (#7929)
Carol Eidt [Tue, 1 Nov 2016 15:42:01 +0000 (08:42 -0700)]
Merge pull request #7677 from CarolEidt/StructOpts
Enable optimization of structs
Jan Kotas [Tue, 1 Nov 2016 14:06:37 +0000 (07:06 -0700)]
Merge pull request #7926 from dotnet-bot/from-tfs
Merge changes from TFS
Michelle McDaniel [Tue, 1 Nov 2016 13:47:54 +0000 (06:47 -0700)]
Merge pull request #7883 from adiaaida/fixDecomposeRotate
Fix DecomposeRotate for > 32 case
Mukul Sabharwal [Tue, 1 Nov 2016 13:28:58 +0000 (14:28 +0100)]
Use resolver to get IL header and size (#7924)
Jan Kotas [Tue, 1 Nov 2016 05:58:49 +0000 (22:58 -0700)]
Fix build break on x86
[tfs-changeset: 1636135]
Andy Ayers [Tue, 1 Nov 2016 05:57:25 +0000 (22:57 -0700)]
Use normal verbosity logging when building tests (#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 #7916.
Jeremy Kuhne [Tue, 1 Nov 2016 05:57:11 +0000 (22:57 -0700)]
Move SR adapter into root (#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.
Jan Kotas [Tue, 1 Nov 2016 05:56:58 +0000 (22:56 -0700)]
Merge pull request #7915 from dotnet-bot/from-tfs
Merge changes from TFS
Joseph Tremoulet [Tue, 1 Nov 2016 05:31:02 +0000 (01:31 -0400)]
Merge pull request #7912 from JosephTremoulet/FlagVectorCounts
Flag vector counts
Joseph Tremoulet [Tue, 1 Nov 2016 05:29:57 +0000 (01:29 -0400)]
Merge pull request #7910 from JosephTremoulet/FixInitTest
Fix check for initial induction variable value
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 #7906.
Joseph Tremoulet [Tue, 1 Nov 2016 05:24:10 +0000 (01:24 -0400)]
Merge pull request #7909 from JosephTremoulet/FixLoopEntryCheck
Skip removed loops in `optBlockIsLoopEntry`
Jan Kotas [Tue, 1 Nov 2016 03:14:32 +0000 (20:14 -0700)]
Fix build break
[tfs-changeset: 1636112]
Andy Ayers [Tue, 1 Nov 2016 00:26:07 +0000 (17:26 -0700)]
Jit: spill stack for non-candidate calls
Closes #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.
Gaurav Khanna [Tue, 1 Nov 2016 00:03:50 +0000 (17:03 -0700)]
Merge pull request #7854 from dotnet-bot/master-UpdateDependencies
Update CoreClr, CoreFx to beta-24631-02, beta-24631-01, respectively (master)
Russ Keldorph [Mon, 31 Oct 2016 23:52:44 +0000 (16:52 -0700)]
Merge pull request #7918 from RussKeldorph/repoint-corefx-1.1.0
Make dotnet/coreclr reference corresponding dotnet/corefx branch
Jan Kotas [Mon, 31 Oct 2016 23:46:32 +0000 (16:46 -0700)]
Merge pull request #7867 from Clockwork-Muse/ArgumentException
Replace hardcoded parameter names to ArgumentException with nameof
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.
Pat Gavlin [Mon, 31 Oct 2016 22:33:53 +0000 (15:33 -0700)]
Merge pull request #7885 from pgavlin/VSO278376.2
Fix VSO 278376.
Pat Gavlin [Mon, 31 Oct 2016 22:33:29 +0000 (15:33 -0700)]
Merge pull request #7905 from pgavlin/VSO279380
Fix VSO 279380.
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.
Andy Ayers [Mon, 31 Oct 2016 21:47:16 +0000 (14:47 -0700)]
Merge pull request #7852 from AndyAyersMS/InlinerSmallFixes
Inliner: Fix LegacyPolicyAssert; Dump prejit noinline reasons
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.
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]
AlexGhiondea [Mon, 31 Oct 2016 20:06:26 +0000 (13:06 -0700)]
Merge pull request #7884 from AlexGhiondea/Port_SecureString
Bring to CoreCLR the SecureString implementation from CoreFx.
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.
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.
Jan Kotas [Mon, 31 Oct 2016 18:47:57 +0000 (11:47 -0700)]
Merge pull request #7886 from jkotas/SpanOfT
Merge SpanOfT branch into master
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.
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
Pat Gavlin [Mon, 31 Oct 2016 18:07:46 +0000 (11:07 -0700)]
Merge pull request #7758 from pgavlin/VSO267565
Fix P/Invoke cookie passing on x86.
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.
Alex Ghiondea [Mon, 31 Oct 2016 17:13:52 +0000 (10:13 -0700)]
SecureStringMarshal was not correctly being build for Unix.
AlexGhiondea [Mon, 31 Oct 2016 17:05:18 +0000 (10:05 -0700)]
Merge pull request #7901 from AlexGhiondea/FixBinCompat
Get latest behavior when missing TFM for BinaryCompatibility class
Jan Kotas [Sun, 30 Oct 2016 21:21:16 +0000 (14:21 -0700)]
Add workaround for JIT crash
Jan Kotas [Sun, 30 Oct 2016 19:30:18 +0000 (12:30 -0700)]
Change Span fields to private readonly + other review feedback
dotnet-bot [Mon, 31 Oct 2016 16:19:13 +0000 (16:19 +0000)]
Update CoreClr, CoreFx to beta-24631-02, beta-24631-01, respectively
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.
Alex Ghiondea [Mon, 31 Oct 2016 14:21:28 +0000 (07:21 -0700)]
Add the SecureStringMarshal and CryptographicException to model.xml
Stephen Toub [Mon, 31 Oct 2016 13:03:30 +0000 (09:03 -0400)]
Merge pull request #7897 from stephentoub/stream_copyto
Use ArrayPool in Stream.CopyTo{Async}
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.
Peter Marcu [Mon, 31 Oct 2016 10:55:44 +0000 (03:55 -0700)]
Fixing Typo in variable name in DateTime (#7898)
Michal Strehovský [Mon, 31 Oct 2016 05:45:58 +0000 (22:45 -0700)]
Avoid boxing in calls to enum's GetHashCode (#7895)
Peter Marcu [Mon, 31 Oct 2016 05:28:45 +0000 (22:28 -0700)]
DateTime.ToString() Fast Track for RFC1123 (#7891)
* DateTime.ToString() Fast Track for RFC1123
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).
Stephen Toub [Mon, 31 Oct 2016 02:08:26 +0000 (22:08 -0400)]
Use ArrayPool in Stream.CopyTo{Async}
Jan Kotas [Sun, 30 Oct 2016 09:28:14 +0000 (02:28 -0700)]
Add boilerplate doc comments to trivial methods
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
Jan Kotas [Sat, 29 Oct 2016 06:04:36 +0000 (23:04 -0700)]
Fix build break on 32-bit platforms
Jan Kotas [Sat, 29 Oct 2016 05:28:49 +0000 (22:28 -0700)]
Disable Span<T> GC reporting under TODO to workaround JIT issue
Adam Sitnik [Wed, 21 Sep 2016 21:24:02 +0000 (23:24 +0200)]
added implicit cast operator from ArraySegment to Spans (#7297)
Adam Sitnik [Wed, 21 Sep 2016 00:12:47 +0000 (02:12 +0200)]
create ReadOnlySpan<char> from string (#7276)
Adam Sitnik [Fri, 16 Sep 2016 20:25:08 +0000 (22:25 +0200)]
added AsBytes() and NonPortableCast() to Span and ReadOnlySpan API (#7220)
* added AsBytes() and NonPortableCast() to Span and ReadOnlySpan API, fixes #7211
* throw when casted types contain pointers
Adam Sitnik [Mon, 12 Sep 2016 16:21:53 +0000 (18:21 +0200)]
Add TryCopyTo and Set methods to Spans API #5857 (#6648)
Jan Kotas [Mon, 29 Aug 2016 06:18:11 +0000 (23:18 -0700)]
Fix reference types (#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.
Jan Kotas [Fri, 17 Jun 2016 00:44:57 +0000 (17:44 -0700)]
Add basic Span<T> test
Jan Kotas [Fri, 17 Jun 2016 00:40:18 +0000 (17:40 -0700)]
Add implementation for hand-written JIT helpers
Jan Kotas [Thu, 16 Jun 2016 16:28:37 +0000 (09:28 -0700)]
Span<T> managed implementation
Jan Kotas [Thu, 16 Jun 2016 16:39:28 +0000 (09:39 -0700)]
Span support in VM
Jan Kotas [Thu, 16 Jun 2016 16:28:02 +0000 (09:28 -0700)]
Use Roslyn with ref returns and locals
Jan Kotas [Sun, 12 Jun 2016 17:53:58 +0000 (10:53 -0700)]
Add FEATURE_SPAN_OF_T
Bruce Forstall [Sun, 30 Oct 2016 09:34:49 +0000 (02:34 -0700)]
Work around a Visual C++ silent bad code generation bug (#7890)
Fixes #7837
The full description of the problem is in that issue.
Jim Ma [Sat, 29 Oct 2016 17:47:15 +0000 (01:47 +0800)]
Remove unnecessary assert. (#7889)
Remvoe the unneccessary assert that might cause a bug.
fix #6856
Marek Linka [Sat, 29 Oct 2016 14:41:18 +0000 (16:41 +0200)]
Cleanup: Remove BitArray from mscorlib (#7888)
Sean Gillespie [Sat, 29 Oct 2016 01:19:35 +0000 (18:19 -0700)]
Fix a race condition in the test build (#7810)
* Fix a race condition in the test build
* Move dir.targets to the Tests directory
Jeremy Kuhne [Sat, 29 Oct 2016 00:13:41 +0000 (17:13 -0700)]
Merge pull request #7882 from JeremyKuhne/fixarraypool
Align ArrayPool to shared code pattern
Peter Marcu [Sat, 29 Oct 2016 00:08:43 +0000 (17:08 -0700)]
DateTime.ToString(“o”) allocates 32 objects, (#7836)
* Enabling a lower allocating DateTime.ToString('o')
Alex Ghiondea [Fri, 28 Oct 2016 22:47:45 +0000 (15:47 -0700)]
Replace BCLDebug with Debug
Alex Ghiondea [Fri, 28 Oct 2016 22:19:07 +0000 (15:19 -0700)]
Bring to CoreCLR the SecureString implementation from CoreFx.
Jeremy Kuhne [Fri, 28 Oct 2016 21:56:24 +0000 (14:56 -0700)]
Align ArrayPool to shared code pattern
Move the ArrayPool code to the shared location. Also use wraps to make
code identical to CoreFX. (Fixing an exception message issue.)
Jeremy Kuhne [Fri, 28 Oct 2016 21:38:25 +0000 (14:38 -0700)]
Merge pull request #7817 from JeremyKuhne/movefs
Copy CoreFX FileStream to CoreLib
Jan Vorlicek [Fri, 28 Oct 2016 21:32:45 +0000 (23:32 +0200)]
Remove some unused PAL functions (#7873)
This change removes some unused PAL functions and the corresponding PAL tests.
Pat Gavlin [Fri, 28 Oct 2016 20:44:02 +0000 (13:44 -0700)]
Merge pull request #7832 from pgavlin/VSO279868
Correct indirect P/Invoke call prlogs on x86.
Sivarv [Fri, 28 Oct 2016 20:30:33 +0000 (13:30 -0700)]
Merge pull request #3941 from sivarv/MultiRegCallNodes
Design to support Multi-reg GT_CALL/GT_RETURN nodes (for x64/unix, arm64, x86, arm32)
Pat Gavlin [Fri, 28 Oct 2016 20:30:30 +0000 (13:30 -0700)]
Fix formatting.
sivarv [Sat, 22 Oct 2016 03:03:43 +0000 (20:03 -0700)]
Multi-reg call node design doc.