Граф коммитов

5678 Коммитов

Автор SHA1 Сообщение Дата
Justin Van Patten 9e43252046 Avoid unnecessary intermediate Version allocation (#4349)
`Version..ctor(string)` is implemented by calling `Version.Parse`, which
allocates an intermediate `Version` instance. Avoid the unnecessary
intermediate allocation by using `Version.Parse` directly.
2017-08-21 15:50:21 -07:00
Michal Strehovský f23fb52ce1 Emit IsByRefLike flag on generic definitions (#4346)
Also took the opportunity to make the IsByRefLike flag not be a property
of the field layout (but use the newly approved custom attribute that
everyone else uses).

Fixes #4220.
2017-08-21 15:41:52 -07:00
Dan Moseley 6468f5fc5d Merge pull request #4348 from dotnet/vs.visible
Port delete shared proj
2017-08-20 19:41:10 -07:00
Dan Moseley 29717196e2 Port delete shared proj 2017-08-19 15:53:52 -07:00
Jan Kotas aed0a825e6 Check for Visual C++ in buildvars-setup.cmd (#4343) 2017-08-18 10:38:34 -07:00
sergey ignatov 23b936a428 [armel tizen] Fix for #13195 issue (#4337) 2017-08-18 10:08:22 -07:00
Jan Kotas 5ef8e68120 Update VS2017 detection logic to match corefx (#4341)
Manually running "Developer Command Prompt for VS 2017" is no longer necessary.
2017-08-17 16:11:41 -07:00
Jan Kotas 8147fa62cc Merge pull request #4340 from dotnet/nmirror
Merge nmirror to master
2017-08-17 14:22:32 -07:00
John Doe 25fade61da Typo (#4339) 2017-08-17 10:44:17 -07:00
Samuel Arzt 55b48213ff [ILVerify] Implement switch instruction (#4328)
* Added value pop for switch instruction.

* Added switch instruction tests and todos for jump target verification.

* Added branch target verification with test cases.

* Moved switch test cases into seperate file.

* Refactored switch/branch tests to use meaningful labels and not use locals.
2017-08-17 07:57:35 -07:00
Atsushi Kanamori 480537b2b5 Teach InvokeUtil about Pointers (#4338)
Partial fix for https://devdiv.visualstudio.com/DevDiv/_workitems/edit/478298

Right now, this is testable through FieldInfo.SetValue().
Method invocations will still fail because the toolchain turns all
pointer EETypes into "IntPtr" before we get called.

Logic inspired from
 b24d46b2fe/src/vm/reflectioninvocation.cpp (L227)
2017-08-17 06:41:43 -07:00
Jan Kotas 232f423b9a Delete remainder of FormatProvider (#4336) 2017-08-16 19:53:27 -07:00
Stephen Toub 17c94cffef Merge pull request dotnet/coreclr#13409 from stephentoub/encoder_span
Add span-based overloads to Encoder/Decoder

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2017-08-16 22:30:47 -04:00
jp2masa 876b0bbf14 Added BinaryWriter Span-based APIs (dotnet/coreclr#13378)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2017-08-16 18:10:36 -07:00
Jan Kotas 65042b8f4b Merge pull request #4333 from dotnet/nmirror
Merge nmirror to master
2017-08-16 16:41:22 -07:00
Stephen Toub 1d8080d740 Non-shared CoreRT changes for span-based {Try}Parse methods 2017-08-16 19:16:43 -04:00
Stephen Toub a1f87a1546 Add Span-based {Try}Parse methods to primitive types (dotnet/coreclr#13389)
* Add Span-based {Try}Parse methods to primitive types

Adds Parse and TryParse methods to Boolean, Byte, Double, Int16, Int32, Int64, SByte, Single, UInt16, UInt32, UInt64, and Decimal.

* Address PR feedback

- Make delegation between overloads as consistent as possible across the primitive types: Boolean, SByte/Byte, Int16/UInt16, and Single/Double were doing it one way, whereas Decimal, Int32/UInt32, and Int64/UInt64 were doing it another way (most of this inconsistency was preexisting this PR, but my previous commit doubled-down on the inconsistency).  Changed the former to be like the latter.

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2017-08-16 19:16:43 -04:00
Michal Strehovský cba9cb24c1 Merge pull request #4331 from dotnet-bot/from-tfs
Merge changes from TFS
2017-08-16 12:31:32 -07:00
Fadi Hanna 9098fbfe16 • Fix native layout encoding for USG vtable methods requiring a calling convention converter
•	Fix binder/ILCompiler/typeloader to correctly handle vtable entries for dynamic types in the partial canonical case where a call converter thunk is not needed, or where it's needed but need to use the generic context of a base type.
•	Add new tests to PX dynamic generics
•	Minor refactoring to genericdictinoarycell.cs to make log easier to read (grouping logging of dictionary cells together)

[tfs-changeset: 1670506]
2017-08-16 11:51:27 -07:00
Stephen Toub a61947e10f Fix AsyncValueTaskMethodBuilder.Create for corert (dotnet/coreclr#13396)
I changed AsyncValueTaskMethodBuilder.Create to avoid calling the nop AsyncTaskMethodBuilder.Create, but it turns out on corert that AsyncTaskMethodBuilder.Create actually does additional work if the debugger is attached, so we should still call it there.

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2017-08-16 14:35:05 -04:00
Stephen Toub fc27595bcd Merge pull request dotnet/coreclr#13390 from stephentoub/avtmbcreate
Remove overhead from AsyncValueTaskMethodBuilder.Create

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2017-08-16 08:35:56 -07:00
Tarek Mahmoud Sayed dfb406e1a7 Fix build break 2017-08-15 20:28:27 -07:00
Tarek Mahmoud Sayed 9f74d12cad Get sort version dynamically and expose ICU version from native component (#13382)
* Support ICU Version

* Add the assert

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2017-08-15 20:28:27 -07:00
Jan Kotas 0f701216d4 Merge pull request #4325 from dotnet/master
Merge master to nmirror
2017-08-15 16:17:42 -07:00
Michal Strehovský ccf288b93f Merge pull request #4324 from dotnet-bot/from-tfs
Merge changes from TFS
2017-08-15 13:19:50 -07:00
Luqun Lou 256dfb1c89 Remove Unnecessary Debug Assert in ObjectToComInterface
The Debug.Assert(obj == null || obj is __ComObject) is Unnecessary and incorrect:

Unnecessary: There is another Debug.Assert(!typeHnd.IsNull()) later, which will do similar(or better) check. since Debug.Assert(!typeHnd.IsNull()) also handle managed winmdobject case.

Incorrect: it miss a case such as obj itself is a managed winmd object case.
so it should be Debug.Assert(obj == null || obj is __ComObject || obj is managed winmd object);

[tfs-changeset: 1670398]
2017-08-15 13:09:36 -07:00
Michal Strehovský c4943d8073 Merge pull request #4323 from dotnet/nmirror
Merge nmirror to master
2017-08-15 11:16:57 -07:00
Michal Strehovský 21eec2a028 Merge pull request #4322 from dotnet-bot/from-tfs
Merge changes from TFS
2017-08-15 09:53:41 -07:00
Michal Strehovsky d477247f49 Fix typos in ARM helpers
[tfs-changeset: 1670378]
2017-08-15 09:36:29 -07:00
Jan Kotas 7acf3e9977 Fix build break on Linux ARM (#4320) 2017-08-14 20:29:07 -07:00
Michal Strehovský bad0943583 Merge pull request #4319 from dotnet-bot/from-tfs
Merge changes from TFS
2017-08-14 18:45:16 -07:00
Michal Strehovský 8b7ec4b64b Merge pull request #4317 from dotnet/nmirror
Merge nmirror to master
2017-08-14 18:45:01 -07:00
Michal Strehovský 5214e7762e Merge pull request #4318 from dotnet-bot/from-tfs
Merge changes from TFS
2017-08-14 17:46:38 -07:00
Fadi Hanna e019b6bb2e • Adding the CompilerDeterminedInstantiations processing logic to the ILCompiler. This will create USG templates for the entries parsed from that pseudo-method.
•	Generic methods/fields invoke map entries are only emitted to the tables if the method/field is considered reflectable by the DR. Not all methods/fields are reflectable.
•	Generic methods/fields invoke map entries are only added based on their canonical uniqueness to avoid canonically equivalent duplicate entries in the tables.

These changes get us closer to getting rid of the nutc/STS analysis, and using the CoreRT compiler only.

[tfs-changeset: 1670279]
2017-08-14 17:13:00 -07:00
Michal Strehovský 91d4bb138b Fix CppCodegen and Unix 2017-08-14 16:58:31 -07:00
Andrew Au 402159cd79 Debugger Support
[tfs-changeset: 1670266]
2017-08-14 15:51:34 -07:00
Michal Strehovský 81d2f02926 Merge pull request #4316 from dotnet-bot/from-tfs
Merge changes from TFS
2017-08-14 11:59:39 -07:00
John Doe 267d0580bd Typo (dotnet/coreclr#13360)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2017-08-14 11:56:26 -07:00
Michal Strehovsky 1e9054a911 Speed up string allocations by 35%
`FastAllocateString` (the choke point through which all string allocations go through) wasn't as fast as it could be and we were 30% slower than CLR on allocating strings. We were leaving a lot of perf on the table.

Before this change, string allocation was using the same allocator as arrays. Since there's a subtle difference between the failure modes on overflow (string allocation throws OOM, array allocation throws OverflowException), `FastAllocateString` required a try/catch block to handle the corner case. This was inhibiting codegen optimizations around this code path - to fix that problem, we needed a separate allocator. And since we now had a separate allocator for strings, I also took the liberty of inlining some details around strings (component size and base size) into the helper. It turns out runtime already hardcodes the details around strings (the component size) in a couple places anyway, so this is not that big of a "separation of concerns" violation as it looks like.

[tfs-changeset: 1670224]
2017-08-14 10:59:13 -07:00
Michal Strehovský 7ad2dbcfa9 Add tests for dependency graph (#4285)
This adds a unit test for `ILCompiler.Compiler` so that we can no longer
use this as an excuse not to write unit tests for this assembly.

The first test is a generalized framework to write tests for dependency
graph. The test runs ILScanner on a method from the test assembly, and
validates various invariants that the method declares. This will let us
e.g. write targeted unit tests that check that the various size on disk
features within the compiler do the right thing (e.g. make sure we don't
unnecessarily expand variant interfaces, GVMs, etc.).
2017-08-14 10:45:22 -07:00
Michal Strehovský abb4eef2a7 Update RyuJIT (#4314)
Picks up dotnet/coreclr#13016.
2017-08-13 15:22:05 -07:00
Jan Kotas fc4a9c268f Finish moving Guid to shared partition 2017-08-13 12:12:13 -07:00
Jan Kotas 7cd0ad116b Move files to shared CoreLib partition (dotnet/coreclr#13342)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
2017-08-13 12:12:13 -07:00
Jan Kotas 0d63f46417 Merge pull request #4311 from dotnet/nmirror
Merge nmirror to master
2017-08-11 19:30:23 -07:00
Jan Kotas d714e3be0b Use non-generic delegate for HighLevelFuncEvalAbortHelper 2017-08-11 16:19:33 -07:00
Jeremy Koritzinsky fb59b7ca9c Account for a null waitHandle array (#4312)
When I added this overload I didn't account for a null WaitHandle array. Now it will pass through successfully to the other overload, where it will throw the ArgumentNullException it is supposed to.
2017-08-11 16:04:04 -07:00
Yi Zhang (CLR) 1105f175e7 Preinitialized data support for value types (#4281) 2017-08-11 13:51:49 -07:00
Jan Kotas 2e7fde55b6 Merge pull request #4310 from dotnet-bot/from-tfs
Merge changes from TFS
2017-08-11 11:24:11 -07:00
Jan Kotas 01e2a5eba9 Delete LowLevelListDictionary
Duplicate of ListDictionaryInternal

[tfs-changeset: 1670046]
2017-08-11 11:12:11 -07:00
Jeremy Koritzinsky 8eb7352079 Updated Gate Thread with Fixed Sleepy Implementation and Lock-Free Creation (#4305)
* Pull updated gate thread implementation out of EnableClrThreadPool. Make gate thread go to sleep when unneeded and be created using lock-free code

* PR Feedback
2017-08-11 10:25:47 -07:00