platform/upstream/coreclr.git
6 years agoMerge pull request #19716 from BruceForstall/Fix19715
Bruce Forstall [Tue, 28 Aug 2018 22:39:01 +0000 (15:39 -0700)]
Merge pull request #19716 from BruceForstall/Fix19715

Fix warning C4723 potential divide by zero

6 years agoreturn NETClientPrimitives to the exluce list for all platforms (#19717)
Sergey Andreenko [Tue, 28 Aug 2018 22:24:09 +0000 (15:24 -0700)]
return NETClientPrimitives to the exluce list for all platforms (#19717)

6 years agoReplacing the IsDstSrcSrcAVXInstruction jump table with a flag.
Tanner Gooding [Tue, 28 Aug 2018 03:32:40 +0000 (20:32 -0700)]
Replacing the IsDstSrcSrcAVXInstruction jump table with a flag.

6 years agoReplacing the IsDstDstSrcAVXInstruction jump table with a flag.
Tanner Gooding [Tue, 28 Aug 2018 03:32:09 +0000 (20:32 -0700)]
Replacing the IsDstDstSrcAVXInstruction jump table with a flag.

6 years agoBreak into debugger on assertion failures (#19702)
Jan Kotas [Tue, 28 Aug 2018 22:04:04 +0000 (15:04 -0700)]
Break into debugger on assertion failures (#19702)

* Break into debugger on assertion failures

Assertion failures terminated the process by default that made them hard to debug. Changed them to
break into debugger or trigger fail fast when the debugger is not attached. This should make the day-to-day
CoreCLR developer experience better and it is simular to what we had on .NET Framework in the past.

* Fix Unix build break

Add RaiseFailFastException to Unix PAL

6 years agoMerge pull request #19701 from BruceForstall/FixLinuxNonJitBuild
Bruce Forstall [Tue, 28 Aug 2018 20:35:00 +0000 (13:35 -0700)]
Merge pull request #19701 from BruceForstall/FixLinuxNonJitBuild

Fix Linux/x86 altjit

6 years agoMerge pull request #19709 from acmyu/docs
Simon Nattress [Tue, 28 Aug 2018 20:17:05 +0000 (13:17 -0700)]
Merge pull request #19709 from acmyu/docs

R2RDump - Add tables describing which architectures have been tested

6 years agoFix warning C4723 potential divide by zero
Bruce Forstall [Tue, 28 Aug 2018 19:00:37 +0000 (12:00 -0700)]
Fix warning C4723 potential divide by zero

Appears in VS 15.8 for arm64 builds.

Fixes #19715

6 years agofix build break when STUB_LOGGING is defined (#19707)
Andy Ayers [Tue, 28 Aug 2018 13:43:11 +0000 (06:43 -0700)]
fix build break when STUB_LOGGING is defined (#19707)

6 years agoAdd missing license headers. (#19693)
Brian Robbins [Tue, 28 Aug 2018 04:27:57 +0000 (21:27 -0700)]
Add missing license headers. (#19693)

6 years agore-enable com for local gc (#19681)
David Mason [Tue, 28 Aug 2018 04:27:03 +0000 (21:27 -0700)]
re-enable com for local gc (#19681)

* re-enable com for local gc

* Use RefCountedHandleCallbacks instead of new api

6 years agoAdd architectures supported table
Amy Yu [Tue, 28 Aug 2018 04:03:47 +0000 (00:03 -0400)]
Add architectures supported table

6 years agoMerging the instrsxarch fp, rf, and wf parameters into a single flags parameter
Tanner Gooding [Thu, 23 Aug 2018 23:18:33 +0000 (16:18 -0700)]
Merging the instrsxarch fp, rf, and wf parameters into a single flags parameter

6 years agoRemove reflection from RuntimeEventSource test. (#19692)
Brian Robbins [Tue, 28 Aug 2018 01:22:10 +0000 (18:22 -0700)]
Remove reflection from RuntimeEventSource test. (#19692)

6 years agoUsing shared copy of registryvalueKind (dotnet/corefx#31922)
Anirudh Agnihotry [Mon, 27 Aug 2018 04:03:12 +0000 (21:03 -0700)]
Using shared copy of registryvalueKind (dotnet/corefx#31922)

* using local copy of registryvaluekind and advapi32

* Moving complete file to shared

* name changed

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoFix Linux/x86 altjit
Bruce Forstall [Mon, 27 Aug 2018 22:58:09 +0000 (15:58 -0700)]
Fix Linux/x86 altjit

This is a Linux/x86-targeting, Windows/x86-hosted altjit.
Fix the build so it uses an appropriate gcinfo library, built
with the appropriate defines. Currently, this eliminates a single assert.

6 years agoSome fixes for the interpreter (#19678)
Andy Ayers [Mon, 27 Aug 2018 18:10:26 +0000 (11:10 -0700)]
Some fixes for the interpreter (#19678)

A number of fixes to the interpreter so it can run many pri0 basic tests.

* fix build break
* fix new array
* fix small struct return assert
* implement must-expand `ByReference<T>` intrinsics
* add some missing null checks
* fix `stobj` type check assert
* basic SIMD support
* obey `COMPlus_FeatureSIMD` setting

HW Intrinsics are still not supported / implemented.

6 years agoDeal with compilation warnings in JIT in cross-bitness scenario (#19590)
Egor Chesakov [Mon, 27 Aug 2018 18:00:01 +0000 (11:00 -0700)]
Deal with compilation warnings in JIT in cross-bitness scenario  (#19590)

* Fix warnings due to "strlen return type is size_t" in src/jit/emitarm.cpp src/jit/unwindarm.cpp

* Use ptrdiff_t disp in emitter::emitOutputInstr in src/jit/emitarm.cpp

* Compiler::gtHashValue should depend on host-bitness in src/jit/gentree.cpp

* Simplify checking using ImmedValNeedsReloc() in src/jit/lowerarmarch.cpp

* Use target_ssize_t immVal in Lowering::IsContainableImmed in src/jit/lowerarmarch.cpp

* Remove int offs and use BYTE* addr and %p specifier in emitter::emitDispInsHelp in IF_T2_J3 case in src/jit/emitarm.cpp

* Cast gtIconVal to target_size_t in CodeGen::genLclHeap in src/jit/codegenarm.cpp

* Use int argSize in CodeGen::genEmitCall in src/jit/codegen.h src/jit/codegenlinear.cpp

* Use ssize_t disp in emitter::emitIns_Call in src/jit/emitarm.cpp src/jit/emitarm.h

* Use int argSize in emitter::emitIns_Call in src/jit/emitarm.cpp src/jit/emitarm.h

* Use target_size_t return type in Compiler::eeGetPageSize Compiler::getVeryLargeFrameSize in src/jit/codegencommon.cpp src/jit/compiler.h

* Cast gtIconVal to unsigned in CodeGen::genCodeForShift CodeGen::genCodeForShiftLong in src/jit/codegenarm.cpp src/jit/codegenarmarch.cpp

* Cast gtIconVal to unsigned in DecomposeLongs::DecomposeRotate in src/jit/decomposelongs.cpp

* Use unsigned size in CodeGen::genConsumePutStructArgStk in src/jit/codegenlinear.cpp

* Use target_ssize_t stmImm in cast in CodeGen::genZeroInitFrame in src/jit/codegencommon.cpp

* Cast to target_ssize_t in Compiler::gtSetEvalOrder in src/jit/gentree.cpp

* Address PR feedbask - use dspPtr(addr) in src/jit/emitarm.cpp

6 years agoRevert "Cleanup netfx-specific code from projects that no longer build in netfx confi...
Jan Kotas [Sun, 26 Aug 2018 14:34:04 +0000 (07:34 -0700)]
Revert "Cleanup netfx-specific code from projects that no longer build in netfx configurations (#31818)"

This reverts commit 21eb9aa89fae41b73f87c073abd95041ecf1b0e0.

6 years agoCleanup netfx-specific code from projects that no longer build in netfx configuration...
Tim Lovell-Smith [Sun, 26 Aug 2018 13:29:51 +0000 (06:29 -0700)]
Cleanup netfx-specific code from projects that no longer build in netfx configurations (#31818)

* Remove Crc32Helper.Managed.cs and '$(TargetGroup)' == 'netfx' conditionals from System.IO.Compression.csproj

* Remove netfx conditionals from System.Data.Common.csproj

* Remove netfx conditionals from System.Diagnostics.StackTrace.csproj

* Remove 'netfx' and 'net46' conditionals from System.Net.Http.csproj

* Remove 'netfx' conditionals from System.Net.Sockets.csproj

* Remove 'netfx', 'net462' and 'net47' conditionals from System.Runtime.InteropServices.RuntimeInformation.csproj

* Remove 'netfx' conditionals from System.Runtime.Serialization.Primitives.csproj

* Remove 'netfx' conditionals from System.Runtime.Serialization.Xml.csproj

* Remove 'netfx' and 'net47' conditionals from System.Security.Cryptography.Algorithms.csproj

* Remove 'netfx' conditionals from System.Security.SecureString.csproj

* Remove 'netfx' conditionals from System.Threading.Overlapped.csproj

* Remove 'netfx' conditionals from System.Xml.XPath.XDocument.csproj

* Trim out unused source file DeferredDisposableLifetime.cs

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoR2RDump - Non-Windows machine code (#19638)
Amy [Sun, 26 Aug 2018 03:55:56 +0000 (20:55 -0700)]
R2RDump - Non-Windows machine code (#19638)

* Get machine architecture for non-Windows images

* Update readme

* Throw exception if machine is invalid, output OS

* Capitalization

6 years agoR2RDump - Fix errors caused by ExportedTypes rids in AvailableTypes section (#19647)
Amy [Sun, 26 Aug 2018 03:55:29 +0000 (20:55 -0700)]
R2RDump - Fix errors caused by ExportedTypes rids in AvailableTypes section (#19647)

* Fix error caused by exportedType in AvailableTypes section

* TypeDef and ExportedType can both have the same rid

* Use HashSet instead of Dictionary

6 years agoR2RDump - Check disassembler support (#19664)
Amy [Sun, 26 Aug 2018 03:55:04 +0000 (20:55 -0700)]
R2RDump - Check disassembler support (#19664)

* Determine if disasm is supported on architectures instead of match

* Readme changes

6 years agoRemove some GT_ASG_op leftovers (#18205)
mikedn [Sat, 25 Aug 2018 22:30:57 +0000 (01:30 +0300)]
Remove some GT_ASG_op leftovers (#18205)

6 years agoStreamline fgExcludeFromSsa (#15351)
mikedn [Sat, 25 Aug 2018 22:29:28 +0000 (01:29 +0300)]
Streamline fgExcludeFromSsa (#15351)

This function is relatively expensive due to the many checks it does. Adding an LclVarDsc "in SSA" bit that is set during SSA construction by calling fgExcludeFromSsa only once per variable results in 0.35% drop in instructions retired.

Most of the checks done in fgExcludeFromSsa are implied by lvTracked and they could probably be converted to asserts. But lvOverlappingFields is not implied by lvTracked so even if all redundant checks are converted to asserts fgExcludeFromSsa still needs 2 checks rather than just one.

Incidentally, this difference between tracked variables and SSA variables results in SSA and value numbers being assigned to some variables that are actually excluded from SSA - SsaBuilder::RenameVariables and fgValueNumber assign numbers to all live in fgFirstBB variables that require initialization without checking fgExcludeFromSsa first. Structs with overlapping fields are not common but properly excluding them is still enough to save 0.15% memory when compiling corelib.

- Replace calls to fgExcludeFromSsa with calls to lvaInSsa (the old name is kind of weird, it has nothing to do with the flow graph and "exclude" results in double negation)
- Move fgExcludeFromSsa logic to SsaBuild::IncludeInSsa and use it to initialize LclVarDsc::lvInSsa for all variables
- Change RenameVariables and fgValueNumber to call lvaInSsa before assigning numbers to live in fgFirstBB variables

6 years agoRemove NumaNodeInfo, CPUGroupInfo, AppDomain, SystemDomain, and EEConfig stubs from...
David Mason [Sat, 25 Aug 2018 19:24:35 +0000 (12:24 -0700)]
Remove NumaNodeInfo, CPUGroupInfo, AppDomain, SystemDomain, and EEConfig stubs from local gc (#19500)

* Switch NumaNodeInfo and CPUGroupInfo to the interface

* Remove AppDomain/SystemDomain stubs

* remove EEConfig methods

* Port numa code to the coreclr side

* add numa back to PAL and standalone builds

* enable numa for PAL/Standalone builds, and fix BOOL warnings

* remove unused defines, and fix linux build errors

* building on windows

* about to delete numa work from unix and want a backup

* add stubs for unix numa/cpugroup

* Code review feedback

* Code review feedback

6 years agoVery small cleanup of various comments and code formatting (#19665)
Vitek Karas [Sat, 25 Aug 2018 05:37:44 +0000 (22:37 -0700)]
Very small cleanup of various comments and code formatting (#19665)

* Very small cleanpu of various comments and code formatting

Fixed couple of comments to match the code and the wording.
Fixed indentation in several places.
Removed unused local variable in AppDomain::BindAssemblySpec

* Remove unused enum in the binder

6 years agoFix long spmi file names/clean few functions. (#19656)
Sergey Andreenko [Sat, 25 Aug 2018 05:12:25 +0000 (22:12 -0700)]
Fix long spmi file names/clean few functions. (#19656)

* delete extern functions

* extract LoadRealJitLib func

* extract getResultFileName

6 years agoDisable System.Numerics.Vectors.Tests (#19537)
Egor Chesakov [Fri, 24 Aug 2018 00:42:30 +0000 (17:42 -0700)]
Disable System.Numerics.Vectors.Tests (#19537)

6 years agoUse runtest.py to run tests for all platforms (#19213)
Jarret Shook [Sat, 25 Aug 2018 04:19:58 +0000 (21:19 -0700)]
Use runtest.py to run tests for all platforms (#19213)

Change build-test.sh to always build the xunit wrappers. Before it would drop a token and check the existence of the token.

Unify x64 linux/OSX/Windows excludes into one file, issues.targets. Includes different locations in the file which show where to put excludes.

Remove all target specific aspects of issues.targets, all tests are excluded now via wildcard, this allows expanding to .cmd and .sh based on the built platform.

Unify path separators to forward slash(/) in issues.targets to support both platforms

Clean up issues.targets by removing long standing exclude tests, specifically tests that have been excluded due to missing features like rva_statics.
Add DisableProjectBuild to tests which have been removed from issues.targets

Conditionally add DisableProjectBuild to tests which have been marked as unsupported on unix. This is mostly a port of the unsupportedOnUnix.txt list. Instead of excluding the tests, unix will simply not build them. If tests are built on windows, they will be run but they will return pass, the test wrapper will check return instantly.

All exclusions ported to issues.targets for linux targets.
Expand runtest.py, this includes simple issues that made it past the original CR. In addition it adds more optional features to help with inner loop dev work such as: creating a repro folder under bin/repro/.. which sets up the env and calls the failing test. In addition a launch.json will now be created under bin/repro/.. which can be used to easily debug using vscode. More logging, such as printing failures, longest running tests ect.
Initial excludes ported for arm64 windows

Arm64 linux, armhf unix excludes and enables running runtest.sh for these targets.
arm64 windows and arm32 windows excludes and enables running runtest.cmd on arm64 targets
init-tools.sh changes to pull armhf and aarch64 dotnetcli

init-tools.cmd changes to pull x86 packages for dotnetcli for arm64 windows
runtest.cmd for almost all scenarios will call runtest.py
runtest.sh for almsot all scenarios will call runtest.py
Removes all logic for running tests using runtest.sh

6 years agoFix FileStream in WinRT build (#19659)
Jeremy Kuhne [Sat, 25 Aug 2018 00:25:55 +0000 (17:25 -0700)]
Fix FileStream in WinRT build (#19659)

6 years agoFix typo
Jan Kotas [Fri, 24 Aug 2018 22:21:13 +0000 (15:21 -0700)]
Fix typo

6 years agoUpdate version in documentation samples to 3.0
Jan Kotas [Fri, 24 Aug 2018 22:19:44 +0000 (15:19 -0700)]
Update version in documentation samples to 3.0

6 years agoFix JitBench (#19584)
Koundinya Veluri [Fri, 24 Aug 2018 19:33:56 +0000 (12:33 -0700)]
Fix JitBench (#19584)

Fix JitBench

Fixes https://github.com/dotnet/coreclr/issues/19569
- I believe the issue was that JitBench (which was an netstandard1.6 project) was running against a netcoreapp3.0 layout with corerun (layout built by build + recent packages), and XmlDocument is in a different place now
- Copied the unofficial project and replaced the official one
- Switched to netcoreapp3.0 along with other miscellaneous fixes to get it working
- I haven't figured out yet how to get one project that builds with the test build and works with dotnet. TargetFramework would have to be different anyway if running with dotnet runtime 2.1. So the unofficial project is still there for use with dotnet.
- Also retargeted the empty console project and changed to always set ExePath (when using existing setup for instance)

6 years agoMerge pull request #19556 from mikedn/dmp-speed
Bruce Forstall [Fri, 24 Aug 2018 19:14:58 +0000 (12:14 -0700)]
Merge pull request #19556 from mikedn/dmp-speed

Speed-up JIT dump

6 years agoUpdate interop test xplat header (#19576)
Aaron Robinson [Fri, 24 Aug 2018 18:19:28 +0000 (11:19 -0700)]
Update interop test xplat header (#19576)

* Remove no-op #define logic for Interop tests
Remove single usage of #define for function remap

* Consolidate all uses of CoTaskMem* functions into new CoreClr* functions
for the Interop native tests.

* Remove unused functions and make formatting consistent.

* Remove '_cdecl' and replace all uses with '__cdecl'

* Convert '__stdcall' to 'STDMETHODCALLTYPE' for all non-calling convention dependent tests

* Replace 'CALLBACK' and 'NATIVEAPI' calling convention macros will well-defined 'STDMETHODCALLTYPE'

6 years agoImplement Intel AES intrinsic
Fei Peng [Thu, 23 Aug 2018 20:50:07 +0000 (13:50 -0700)]
Implement Intel AES intrinsic

6 years agoAdd test cases for AES intrinsic
Fei Peng [Thu, 23 Aug 2018 20:50:02 +0000 (13:50 -0700)]
Add test cases for AES intrinsic

6 years agoR2RDump - ARM and ARM64 UnwindInfo (#19618)
Amy [Fri, 24 Aug 2018 16:25:42 +0000 (09:25 -0700)]
R2RDump - ARM and ARM64 UnwindInfo (#19618)

* UnwindInfo for Arm

* ARM64 unwindInfo, change Machine.Arm to Machine.ArmThumb2

* Fix incorrect location of UnwindCode and GcTransition in the disasm

* Use x64 GcInfo for Arm and Arm64

* Cleanup, update readme

6 years agoMerge pull request #19636 from jakobbotsch/fix-shift-value-executed
Carol Eidt [Fri, 24 Aug 2018 15:04:41 +0000 (08:04 -0700)]
Merge pull request #19636 from jakobbotsch/fix-shift-value-executed

Mask shift value for shift [mem], const

6 years agoFix superpmi-shim-counter (#19639)
Sergey Andreenko [Fri, 24 Aug 2018 05:54:52 +0000 (22:54 -0700)]
Fix superpmi-shim-counter (#19639)

* fix the issue

* improve counter perfomance

do not rewrite output file after each method

6 years agoJIT: fix handling of newarr size (#19633)
Andy Ayers [Fri, 24 Aug 2018 02:35:33 +0000 (19:35 -0700)]
JIT: fix handling of newarr size (#19633)

`newarr` accepts either an int or native int for array size, and the
newarr helper the jit invokes takes a native int.

If the value on the stack is an int and the jit is running on a platform
where native int is larger than int, the jit must explicitly widen the
int to native int.

Found this while running some code through the interpreter -- the path
the interpreter uses to invoke jitted code doesn't guarantee that int args
are 64 bit clean.

6 years agoWorkaround to remove unnecessary bounds checks when using {ReadOnly}Span.IsEmpty...
Ahson Khan [Fri, 24 Aug 2018 02:11:48 +0000 (19:11 -0700)]
Workaround to remove unnecessary bounds checks when using {ReadOnly}Span.IsEmpty (#19640)

6 years agoMerge pull request #19635 from josalem/syntax-error-build-test
Aditya Mandaleeka [Thu, 23 Aug 2018 23:34:06 +0000 (16:34 -0700)]
Merge pull request #19635 from josalem/syntax-error-build-test

Fix syntax error in build-test.sh

6 years agoMake clang happy and fix old comment
Jakob Botsch Nielsen [Thu, 23 Aug 2018 21:47:18 +0000 (23:47 +0200)]
Make clang happy and fix old comment

6 years agoMask shift value for shift [mem], const
Jakob Botsch Nielsen [Thu, 23 Aug 2018 21:01:34 +0000 (23:01 +0200)]
Mask shift value for shift [mem], const

The shift value needs to be masked as otherwise the emitter may end up
believing it needs 4 bytes for constants >= 128. Since an encoding with
4-byte immediate does not exist for shifts, the last part of the
immediate would be interpreted as code and executed.

This was only a problem for constants between 128 and 256 as other
constants are not currently contained.

Fixes #19601

6 years agofix syntax error in build-test.sh
John Salem [Thu, 23 Aug 2018 21:06:11 +0000 (14:06 -0700)]
fix syntax error in build-test.sh

6 years agoMerge pull request #19610 from briansull/fmt-bb
Brian Sullivan [Thu, 23 Aug 2018 20:23:50 +0000 (13:23 -0700)]
Merge pull request #19610 from briansull/fmt-bb

define FMT_BB as "BB%02u" and use it uniformly in the codebase

6 years agoTwo R2RDump fixes for Crossgen output (#19585)
Tomáš Rylek [Thu, 23 Aug 2018 19:23:42 +0000 (21:23 +0200)]
Two R2RDump fixes for Crossgen output (#19585)

1) In some situations, Crossgen emits a section with EntrySize = 0.
Apparently the engine defaults to size_t in such case.

2) Similarly, Crossgen sometimes emits a section with the UNKNOWN
kind. I have relaxed the section kind check to just treat all
non-eager section kinds the same.

Thanks

Tomas

6 years agoFix terminology in netci file (#19608)
Koundinya Veluri [Thu, 23 Aug 2018 18:23:31 +0000 (11:23 -0700)]
Fix terminology in netci file (#19608)

6 years agoRemove Avx.PermuteVar tests to unblock signature change propagation to corefx
Jacek Blaszczynski [Thu, 23 Aug 2018 10:52:37 +0000 (12:52 +0200)]
Remove Avx.PermuteVar tests to unblock signature change propagation to corefx

Test will be rewritten after corefx Avx.PermuteVar changes will be absorbed

6 years agoFix base types of second paramters used in Avx.PermuteVar and Avx2.Permute4x64
Jacek Blaszczynski [Tue, 21 Aug 2018 09:55:24 +0000 (11:55 +0200)]
Fix base types of second paramters used in Avx.PermuteVar and Avx2.Permute4x64
for float, double overloads

Fixes #19579

6 years agoMerge branch 'master' into fmt-bb
Brian Sullivan [Thu, 23 Aug 2018 18:13:13 +0000 (11:13 -0700)]
Merge branch 'master' into fmt-bb

6 years agoMerge pull request #15011 from mikedn/ssa-mem-num
Carol Eidt [Thu, 23 Aug 2018 17:34:44 +0000 (10:34 -0700)]
Merge pull request #15011 from mikedn/ssa-mem-num

Eliminate duplicate SSA number bookkeeping

6 years agoDeal with compilation warnings in VM in cross-bitness scenario (#18707)
Egor Chesakov [Thu, 23 Aug 2018 16:32:24 +0000 (09:32 -0700)]
Deal with compilation warnings in VM in cross-bitness scenario (#18707)

6 years agoHandle multireg copies correctly (#19588)
Carol Eidt [Thu, 23 Aug 2018 01:43:23 +0000 (18:43 -0700)]
Handle multireg copies correctly (#19588)

* Handle multireg copies correctly

Fix #19029

6 years agoEnable unloading of AssemblyLoadContext (#18476)
Jan Vorlicek [Thu, 23 Aug 2018 00:42:43 +0000 (02:42 +0200)]
Enable unloading of AssemblyLoadContext (#18476)

Enable assembly unloading

* Allow PInvoke methods on collectible assemblies

* Fix test unloadability

Several hundreds of tests were using Helper class that created
GCHandle, but never freed it. That prevented unloading of those
tests. The change modifies the Helper class to keep the handle
in a finalizable object.

Several GCHandle related tests were not freeing the GCHandle they
allocated, so this change adds freeing them to enable the unloading.

* Add missing error messages to the resources

* Fix shuffle thunk cache for unloadability

* Add GetLoaderAllocator to ICLRPrivBinder

6 years ago Implement AVX2 MaskLoad and MaskStore (#19513)
Fei Peng [Thu, 23 Aug 2018 00:01:40 +0000 (17:01 -0700)]
 Implement AVX2 MaskLoad and MaskStore (#19513)

* Implement AVX2 MaskLoad and MaskStore

* Add test cases for AVX2 MaskLoad and MaskStore

* Fix AVX MaskStore tests

* template AVX MaskLoad tests

6 years agodefine FMT_BB as "BB%02u" and use it uniformly in the codebase
Brian Sullivan [Wed, 22 Aug 2018 20:37:54 +0000 (13:37 -0700)]
define FMT_BB as "BB%02u" and use it uniformly in the codebase

We use the following format when print the BasicBlock number: bbNum
This define is used with string concatenation to put this in printf format strings

6 years agoMake sure RuntimeEventSource is passed to EventListener.OnEventSourceCreated (#19393)
Brian Robbins [Wed, 22 Aug 2018 22:07:52 +0000 (15:07 -0700)]
Make sure RuntimeEventSource is passed to EventListener.OnEventSourceCreated (#19393)

6 years agoFix a PAL spin lock issue (#19604)
Koundinya Veluri [Wed, 22 Aug 2018 20:15:46 +0000 (13:15 -0700)]
Fix a PAL spin lock issue (#19604)

Fix for https://github.com/dotnet/coreclr/issues/18486
- Lock release needs to be at least volatile

6 years agoSpeed-up JIT dump
Mike Danes [Sun, 19 Aug 2018 10:29:49 +0000 (13:29 +0300)]
Speed-up JIT dump

Add a config option that allows routing JIT's stdout output to a
specified file. jitStartup disables stdio buffering on its stdout
created stream and that makes large dumps (such as the ones generated
by jit-diff) 2-4x slower. Simply enabling buffering is somewhat
problematic, it would require occasional flushing to avoid losing
output in the case of a crash and can also result in mingled output
if crossgen decides to print something via its own stdout stream.

file

fix

6 years agoFix broken documentation links into mscorlib code (#19598)
Drew Noakes [Wed, 22 Aug 2018 12:54:20 +0000 (13:54 +0100)]
Fix broken documentation links into mscorlib code (#19598)

6 years agoAesGcm, AesCcm (dotnet/corefx#31389)
Krzysztof Wicher [Tue, 21 Aug 2018 21:55:33 +0000 (14:55 -0700)]
AesGcm, AesCcm (dotnet/corefx#31389)

* AesGcm, AesCcm

* add osx stubs

* disable tests on osx and desktop (APIs not there/not supported)

* TagByteSizes on OSX

* fix TagByteSizes compilation error

* apply review feedback

* fix typo when setting tag/nonce length in ccm

* add missing SetCcmTagLength

* attempt to detect if ccm is available on Ubuntu 14.04

* disable tests on ubuntu 14.04, attempt for osx support

* attempt to fix osx

* fix osx

* review feedback

* disable new ccm testcases on ubuntu 14.04

* attempt to make Ubuntu 14.04 work

* add Interop.Initialization to OSX

* fix KeySizeHelpers after merge conflict

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
6 years agoR2RDump - Interweave x64 unwind codes into disasm (#19577)
Amy [Wed, 22 Aug 2018 02:18:33 +0000 (19:18 -0700)]
R2RDump - Interweave x64 unwind codes into disasm (#19577)

* Interweave unwind codes into disasm, fix incorrect x64 register names

* Fix xml dump errors

6 years agoMerge pull request #19572 from briansull/fmt-vn
Brian Sullivan [Tue, 21 Aug 2018 20:48:15 +0000 (13:48 -0700)]
Merge pull request #19572 from briansull/fmt-vn

Define FMT_VN as "$%x" and use it uniformly in the codebase

6 years agoMerge pull request #19581 from sergign60/unwind_fix
Bruce Forstall [Tue, 21 Aug 2018 18:30:49 +0000 (11:30 -0700)]
Merge pull request #19581 from sergign60/unwind_fix

[corert armel] Fixed CoreRT issue #5874 for non-callee-saved regs

6 years agoDefine FMT_VN as "$%x" and use it uniformly in the codebase
Brian Sullivan [Tue, 21 Aug 2018 00:32:13 +0000 (17:32 -0700)]
Define FMT_VN as "$%x" and use it uniformly in the codebase

We use a unique prefix character when printing value numbers in dumps:  i.e.  $1c0
This define is used with string concatenation to put this in printf format strings

6 years agoCleanup unnecessary casts in roundUp
Egor Chesakov [Tue, 21 Aug 2018 00:08:18 +0000 (17:08 -0700)]
Cleanup unnecessary casts in roundUp

6 years agoAdd roundUp(unsigned size, unsigned mult) and roundDn(unsigned size, unsigned mult...
Egor Chesakov [Mon, 20 Aug 2018 20:18:08 +0000 (13:18 -0700)]
Add roundUp(unsigned size, unsigned mult) and roundDn(unsigned size, unsigned mult) to 64-bit host in src/jit/jit.h

6 years ago[corert armel] Fixed CoreRT issue #5874 for non-callee-saved regs
Sergey Ignatov [Tue, 21 Aug 2018 09:37:43 +0000 (12:37 +0300)]
[corert armel] Fixed CoreRT issue #5874 for non-callee-saved regs

6 years agoHandle null byref in helper (#19571)
Carol Eidt [Tue, 21 Aug 2018 08:44:07 +0000 (01:44 -0700)]
Handle null byref in helper (#19571)

Add JIT_ByRefWriteBarrier to IsIPInMarkedJitHelper so that a null dereference will be handled.

Fix #19444

6 years agoBackout change to pass -ibcoptimize in official builds
adiaaida [Tue, 21 Aug 2018 00:59:07 +0000 (17:59 -0700)]
Backout change to pass -ibcoptimize in official builds

6 years agoStop using size_t for passing immediate values in CodeGen CodeGenInterface (#19544)
Egor Chesakov [Tue, 21 Aug 2018 03:19:08 +0000 (20:19 -0700)]
Stop using size_t for passing immediate values in CodeGen CodeGenInterface (#19544)

6 years agoR2RDump - Add image describing R2R format (#19528)
Amy [Tue, 21 Aug 2018 02:43:17 +0000 (19:43 -0700)]
R2RDump - Add image describing R2R format (#19528)

* Add image describing R2R format

* Remove help message stating -v option dumps raw bytes

6 years agoFix tiered compilation option for case-sensitive systems (#19567)
Andy Ayers [Tue, 21 Aug 2018 01:38:30 +0000 (18:38 -0700)]
Fix tiered compilation option for case-sensitive systems (#19567)

6 years agoMerge pull request #19334 from CarolEidt/Fix19243
Carol Eidt [Mon, 20 Aug 2018 23:57:40 +0000 (16:57 -0700)]
Merge pull request #19334 from CarolEidt/Fix19243

Fix evaluation order for block copy

6 years agoAdd IBC support (#19046)
Michelle McDaniel [Mon, 20 Aug 2018 22:21:58 +0000 (15:21 -0700)]
Add IBC support (#19046)

This change adds support to consume IBC data packages that are created by the dotnet/optimization repository. With these changes and dotnet/buildtools#2103 to enable IBC optimizations for corefx, we will see a 32% decrease in the size of NetCoreApp (and an overall decrease of 16%), a 30% reduction in ref set, a 5% improvement in time to first request and steady state performance for MusicStore.

Size

  Crossgen Partial Partial vs Crossgen (lower is better)
Shared (MB) 185.6 137.3 0.74
Microsoft.NETCore.App (MB) 115.6 67.4 0.58
RefSet

MusicStore

  Crossgen Partial Partial vs Crossgen (lower is better)
Total 19.389 13.472 0.69
AllReady

Crossgen Partial Partial vs Crossgen (lower is better)
Total 17.58 12.214
Performance

MusicStore

  Crossgen Partial Partial vs Crossgen (lower is better)
Server Start (ms) 870 870.6 1.00
First request (ms) 3532.6 3386.6 0.95
Steady State (ms) 2.926 2.79 0.95
AllReady

Crossgen Partial Partial vs Crossgen (lower is better)
Server Start (ms) 2102 1942.4
First Request (ms) 4263.2 4126
Steady State (ms) 5.69 5.68
TechEmpower Plaintext

Crossgen Partial Partial vs Crossgen (lower is better)
Requests per Second 1928649.8 1893183.8
First Request (ms) 76.14 80.11
Startup (ms) 391 372.8
Working Set (MB) 382.2 373.4

6 years agoJIT: remove incremental ref count updates (#19345)
Andy Ayers [Mon, 20 Aug 2018 22:03:29 +0000 (15:03 -0700)]
JIT: remove incremental ref count updates (#19345)

Remove almost all of the code in the jit that tries to maintain local ref
counts incrementally. Also remove `lvaSortAgain` and related machinery.

Explicitly sort locals before post-lower-liveness when optimizing to get the
best set of tracked locals.

Explicitly recount after post-lower liveness to get accurate counts after
dead stores. This can lead to tracked unreferenced arguments; tolerate this
during codegen.

6 years agoUpdate Microsoft.NETCore.CoreDisTools to version 1.0.1-prerelease-00005 (#19520)
Zach Montoya [Mon, 20 Aug 2018 21:08:41 +0000 (14:08 -0700)]
Update Microsoft.NETCore.CoreDisTools to version 1.0.1-prerelease-00005 (#19520)

* Update Microsoft.NETCore.CoreDisTools to version 1.0.1-prerelease-00005. Temporarily add a direct reference to the win-x64 and win-x86 runtime packages

* Change Microsoft.NETCore.CoreDisTools package references to the identity package.

Improve formatting of R2RDump.csproj properties.

* Add an ArgumentException to explain the currently faulty behavior where disassembling an R2R image whose architecture is different than the coredistools.dll architecture.

* Add Issue #19564 to the R2RDump.cs Disassembler comment

6 years agoFix dbgshim's > 1000 module bug (issue #19538) (#19553)
Mike McLaughlin [Mon, 20 Aug 2018 20:33:05 +0000 (13:33 -0700)]
Fix dbgshim's > 1000 module bug (issue #19538) (#19553)

Fix dbgshim's > 1000 module bug (issue #19538)

Cap cbNeeded on second EnumProcessModules call. Change the allocations
to HMODULE to make sure they are aligned properly.

6 years agoFix issues with calling convention in tests. (#19548)
Aaron Robinson [Mon, 20 Aug 2018 19:00:54 +0000 (12:00 -0700)]
Fix issues with calling convention in tests. (#19548)

6 years agoAdd comment
Carol Eidt [Mon, 20 Aug 2018 17:44:41 +0000 (10:44 -0700)]
Add comment

6 years agoNormalize whitespace/indentation
Clinton Ingram [Mon, 20 Aug 2018 11:09:45 +0000 (04:09 -0700)]
Normalize whitespace/indentation

6 years agoUpdate t4 templates to generate simplified type names
Clinton Ingram [Mon, 20 Aug 2018 11:06:30 +0000 (04:06 -0700)]
Update t4 templates to generate simplified type names

6 years agoMark some readonly fields readonly (#19559)
Ben Adams [Mon, 20 Aug 2018 16:30:37 +0000 (17:30 +0100)]
Mark some readonly fields readonly (#19559)

6 years agoOptimize number formatting (#19551)
Pent Ploompuu [Mon, 20 Aug 2018 16:29:55 +0000 (19:29 +0300)]
Optimize number formatting (#19551)

6 years agoMark more structs as readonly (#19557)
Ben Adams [Mon, 20 Aug 2018 16:25:47 +0000 (17:25 +0100)]
Mark more structs as readonly (#19557)

6 years agoMake DateTimeOffset a readonly struct (#19552)
Ben Adams [Mon, 20 Aug 2018 16:22:20 +0000 (17:22 +0100)]
Make DateTimeOffset a readonly struct (#19552)

6 years ago Free the alternate signal stack if this PAL's thread allocated it. (#19539)
Mike McLaughlin [Sun, 19 Aug 2018 23:04:02 +0000 (16:04 -0700)]
 Free the alternate signal stack if this PAL's thread allocated it. (#19539)

Free the alternate signal stack if this PAL's thread allocated it.

Move Ensure/FreeSignalAlternateStack to CPalThread class.

Frees the alternate stack a little sooner during thread termination.

6 years agoFix test case comment to reflect the actual test (#19531)
Andy Ayers [Sun, 19 Aug 2018 02:23:41 +0000 (19:23 -0700)]
Fix test case comment to reflect the actual test (#19531)

6 years agoEnable Microsoft.VisualBasic.dll in crossgen_comparison scenario
Egor Chesakov [Fri, 17 Aug 2018 18:40:05 +0000 (11:40 -0700)]
Enable Microsoft.VisualBasic.dll in crossgen_comparison scenario

6 years agoReturn "default" target-specific NaN value during constant folding of arithmetic...
Egor Chesakov [Thu, 9 Aug 2018 00:57:26 +0000 (17:57 -0700)]
Return "default" target-specific NaN value during constant folding of arithmetic expressions on ARM32 and ARM64

6 years agoFix wrong sprinf_s format string in gtGetArgMsg getGetLateArgMsg on ARM32 (#19536)
Egor Chesakov [Sun, 19 Aug 2018 01:03:06 +0000 (18:03 -0700)]
Fix wrong sprinf_s format string in gtGetArgMsg getGetLateArgMsg on ARM32 (#19536)

6 years agoExclude some assemblies from CrossGen Comparison job (#19534)
Egor Chesakov [Sat, 18 Aug 2018 21:38:14 +0000 (14:38 -0700)]
Exclude some assemblies from CrossGen Comparison job (#19534)

* System.Runtime.Intrinsics.Experimental.dll
* Xunit assemblies

6 years agoInitial support for R2R image diff (#19533)
Tomáš Rylek [Fri, 17 Aug 2018 23:41:22 +0000 (01:41 +0200)]
Initial support for R2R image diff (#19533)

* Initial support for R2R image diff

In this first cut I'm adding just three size diff statistics -
PE section size diff, R2R section size diff and method size diffs.
I assume we'll add more statistics as needed in the course of various
size investigations.

Thanks

Tomas

6 years agoRemove tests previously ported to CoreFX repo (#19527)
Aaron Robinson [Fri, 17 Aug 2018 18:09:31 +0000 (11:09 -0700)]
Remove tests previously ported to CoreFX repo (#19527)

* Remove tests previously ported to CoreFX repo

* Remove references to ported Marshal API tests

6 years agoMerge pull request #19530 from BruceForstall/DisableArmUbuntuCorefxLogging
Bruce Forstall [Fri, 17 Aug 2018 17:47:38 +0000 (10:47 -0700)]
Merge pull request #19530 from BruceForstall/DisableArmUbuntuCorefxLogging

Disable Ubuntu arm32 corefx xunit test result parsing

6 years agoMerge pull request #19378 from sergign60/unwind_fix
Bruce Forstall [Fri, 17 Aug 2018 17:32:16 +0000 (10:32 -0700)]
Merge pull request #19378 from sergign60/unwind_fix

[CoreRT armel]Fix for unwinding support for ARM #5874

6 years agoDisable Ubuntu arm32 corefx xunit test result parsing
Bruce Forstall [Fri, 17 Aug 2018 17:24:48 +0000 (10:24 -0700)]
Disable Ubuntu arm32 corefx xunit test result parsing

We have a problem with the xunit plug-in, where it is consistently
failing on Ubuntu arm32 test result uploading with this error:

```
The plugin hasn't been performed correctly
```

We haven't been able to identify the reason. So, do not add xunit parsing of the test data in this scenario.
This is tracked by: https://github.com/dotnet/coreclr/issues/19447.