Egor Chesakov [Wed, 29 Aug 2018 01:17:06 +0000 (18:17 -0700)]
Merge pull request #19619 from echesakovMSFT/Mov32RelocatableDisplacementARM32
[ARM32] Split IF_T2_N3 into relocatable and non-relocatable cases
Simon Nattress [Wed, 29 Aug 2018 01:09:04 +0000 (18:09 -0700)]
Merge pull request #19053 from riverar/riverar/r2r_size_unavail
Set function size to -1 if sizing info unavailable
dotnet-maestro-bot [Wed, 29 Aug 2018 00:57:57 +0000 (17:57 -0700)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, PgoData to preview1-03127-01, preview1-26827-04, preview1-26827-04, preview1-26827-01, master-
20180827-0150, respectively (master) (#19543)
* Update BuildTools, CoreClr, CoreFx, CoreSetup, PgoData to preview1-03127-01, preview1-26827-04, preview1-26827-04, preview1-26827-01, master-
20180827-0150, respectively
* Undo buildtools update
* Use older version of CoreFx.Private.TestUtilities
* Disable outdated test
* Disable failing test against #19537
Morgan Brown [Wed, 29 Aug 2018 00:29:40 +0000 (17:29 -0700)]
Enable mixed mode assembly loading (#19542)
Bring back functionality for loading IJW assemblies and calling managed->native. Also add workaround to test case for the C++ compiler inserting calls to mscoree.
Brian Sullivan [Tue, 28 Aug 2018 23:10:59 +0000 (16:10 -0700)]
Merge pull request #19712 from briansull/remove-unused-arg
Removed unused argument 'evalAsgLhsInd' in Value Numbering
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
Sergey Andreenko [Tue, 28 Aug 2018 22:24:09 +0000 (15:24 -0700)]
return NETClientPrimitives to the exluce list for all platforms (#19717)
Tanner Gooding [Tue, 28 Aug 2018 03:32:40 +0000 (20:32 -0700)]
Replacing the IsDstSrcSrcAVXInstruction 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.
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
Bruce Forstall [Tue, 28 Aug 2018 20:35:00 +0000 (13:35 -0700)]
Merge pull request #19701 from BruceForstall/FixLinuxNonJitBuild
Fix Linux/x86 altjit
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
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
Brian Sullivan [Mon, 27 Aug 2018 23:09:16 +0000 (16:09 -0700)]
Removed unused argument 'evalAsgLhsInd' in Value Numbering
It was previously used for Assign-Op forms of assignment
which we no longer use in the RyuJIT.
Andy Ayers [Tue, 28 Aug 2018 13:43:11 +0000 (06:43 -0700)]
fix build break when STUB_LOGGING is defined (#19707)
Brian Robbins [Tue, 28 Aug 2018 04:27:57 +0000 (21:27 -0700)]
Add missing license headers. (#19693)
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
Amy Yu [Tue, 28 Aug 2018 04:03:47 +0000 (00:03 -0400)]
Add architectures supported table
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
Brian Robbins [Tue, 28 Aug 2018 01:22:10 +0000 (18:22 -0700)]
Remove reflection from RuntimeEventSource test. (#19692)
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>
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.
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.
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
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.
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>
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
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
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
mikedn [Sat, 25 Aug 2018 22:30:57 +0000 (01:30 +0300)]
Remove some GT_ASG_op leftovers (#18205)
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
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
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
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
Egor Chesakov [Fri, 24 Aug 2018 00:42:30 +0000 (17:42 -0700)]
Disable System.Numerics.Vectors.Tests (#19537)
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
Jeremy Kuhne [Sat, 25 Aug 2018 00:25:55 +0000 (17:25 -0700)]
Fix FileStream in WinRT build (#19659)
Jan Kotas [Fri, 24 Aug 2018 22:21:13 +0000 (15:21 -0700)]
Fix typo
Jan Kotas [Fri, 24 Aug 2018 22:19:44 +0000 (15:19 -0700)]
Update version in documentation samples to 3.0
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)
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
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'
Fei Peng [Thu, 23 Aug 2018 20:50:07 +0000 (13:50 -0700)]
Implement Intel AES intrinsic
Fei Peng [Thu, 23 Aug 2018 20:50:02 +0000 (13:50 -0700)]
Add test cases for AES intrinsic
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
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
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
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.
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)
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
Jakob Botsch Nielsen [Thu, 23 Aug 2018 21:47:18 +0000 (23:47 +0200)]
Make clang happy and fix old comment
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
John Salem [Thu, 23 Aug 2018 21:06:11 +0000 (14:06 -0700)]
fix syntax error in build-test.sh
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
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
Egor Chesakov [Thu, 23 Aug 2018 02:13:09 +0000 (19:13 -0700)]
Split between non-reloc and reloc in IF_T2_N1 in src/jit/emitarm.cpp
Egor Chesakov [Thu, 23 Aug 2018 05:25:08 +0000 (22:25 -0700)]
Call idSetRelocFlags in emitIns_R_L only if opts.compReloc src/jit/emitarm.cpp
Egor Chesakov [Thu, 23 Aug 2018 02:09:17 +0000 (19:09 -0700)]
Use insEncodeImmT2_Mov to encode imm in IF_T2_N1 in src/jit/emitarm.cpp
Koundinya Veluri [Thu, 23 Aug 2018 18:23:31 +0000 (11:23 -0700)]
Fix terminology in netci file (#19608)
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
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
Brian Sullivan [Thu, 23 Aug 2018 18:13:13 +0000 (11:13 -0700)]
Merge branch 'master' into fmt-bb
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
Egor Chesakov [Thu, 23 Aug 2018 16:32:24 +0000 (09:32 -0700)]
Deal with compilation warnings in VM in cross-bitness scenario (#18707)
Carol Eidt [Thu, 23 Aug 2018 01:43:23 +0000 (18:43 -0700)]
Handle multireg copies correctly (#19588)
* Handle multireg copies correctly
Fix #19029
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
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
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
Brian Robbins [Wed, 22 Aug 2018 22:07:52 +0000 (15:07 -0700)]
Make sure RuntimeEventSource is passed to EventListener.OnEventSourceCreated (#19393)
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
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
Drew Noakes [Wed, 22 Aug 2018 12:54:20 +0000 (13:54 +0100)]
Fix broken documentation links into mscorlib code (#19598)
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>
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
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
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
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
Egor Chesakov [Tue, 21 Aug 2018 00:08:18 +0000 (17:08 -0700)]
Cleanup unnecessary casts in roundUp
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
Sergey Ignatov [Tue, 21 Aug 2018 09:37:43 +0000 (12:37 +0300)]
[corert armel] Fixed CoreRT issue #5874 for non-callee-saved regs
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
adiaaida [Tue, 21 Aug 2018 00:59:07 +0000 (17:59 -0700)]
Backout change to pass -ibcoptimize in official builds
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)
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
Andy Ayers [Tue, 21 Aug 2018 01:38:30 +0000 (18:38 -0700)]
Fix tiered compilation option for case-sensitive systems (#19567)
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
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
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.
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
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.
Aaron Robinson [Mon, 20 Aug 2018 19:00:54 +0000 (12:00 -0700)]
Fix issues with calling convention in tests. (#19548)
Carol Eidt [Mon, 20 Aug 2018 17:44:41 +0000 (10:44 -0700)]
Add comment
Clinton Ingram [Mon, 20 Aug 2018 11:09:45 +0000 (04:09 -0700)]
Normalize whitespace/indentation
Clinton Ingram [Mon, 20 Aug 2018 11:06:30 +0000 (04:06 -0700)]
Update t4 templates to generate simplified type names
Ben Adams [Mon, 20 Aug 2018 16:30:37 +0000 (17:30 +0100)]
Mark some readonly fields readonly (#19559)
Pent Ploompuu [Mon, 20 Aug 2018 16:29:55 +0000 (19:29 +0300)]
Optimize number formatting (#19551)
Ben Adams [Mon, 20 Aug 2018 16:25:47 +0000 (17:25 +0100)]
Mark more structs as readonly (#19557)
Ben Adams [Mon, 20 Aug 2018 16:22:20 +0000 (17:22 +0100)]
Make DateTimeOffset a readonly struct (#19552)
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.
Andy Ayers [Sun, 19 Aug 2018 02:23:41 +0000 (19:23 -0700)]
Fix test case comment to reflect the actual test (#19531)