mikedn [Sat, 25 Aug 2018 22:30:57 +0000 (01:30 +0300)]
Remove some GT_ASG_op leftovers (dotnet/coreclr#18205)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d27fff3f65193dd71c6197e9876101f496bbd28b
mikedn [Sat, 25 Aug 2018 22:29:28 +0000 (01:29 +0300)]
Streamline fgExcludeFromSsa (dotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
9951a1b06f1279fdf8ad465dff355fc38238211f
David Mason [Sat, 25 Aug 2018 19:24:35 +0000 (12:24 -0700)]
Remove NumaNodeInfo, CPUGroupInfo, AppDomain, SystemDomain, and EEConfig stubs from local gc (dotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
a1404cafbe1cd15a5c0cfbd4995ad97694b708bd
Vitek Karas [Sat, 25 Aug 2018 05:37:44 +0000 (22:37 -0700)]
Very small cleanup of various comments and code formatting (dotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
3fca50a36e62a7433d7601d805d38de6baee7951
Sergey Andreenko [Sat, 25 Aug 2018 05:12:25 +0000 (22:12 -0700)]
Fix long spmi file names/clean few functions. (dotnet/coreclr#19656)
* delete extern functions
* extract LoadRealJitLib func
* extract getResultFileName
Commit migrated from https://github.com/dotnet/coreclr/commit/
37e8cc75c96160a9f2fa27535e593e397a707640
Egor Chesakov [Fri, 24 Aug 2018 00:42:30 +0000 (17:42 -0700)]
Disable System.Numerics.Vectors.Tests (dotnet/coreclr#19537)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e946db33023c93659a1c146ed8f64319feb286a0
Jarret Shook [Sat, 25 Aug 2018 04:19:58 +0000 (21:19 -0700)]
Use runtest.py to run tests for all platforms (dotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
b34f2bfee8ca2c5f5508f4d58f5b79dc616dcccc
Jeremy Kuhne [Sat, 25 Aug 2018 00:25:55 +0000 (17:25 -0700)]
Fix FileStream in WinRT build (dotnet/coreclr#19659)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2d99e088e84a70572b5f9422092ec225d4c27a1c
Jan Kotas [Fri, 24 Aug 2018 22:19:44 +0000 (15:19 -0700)]
Update version in documentation samples to 3.0
Commit migrated from https://github.com/dotnet/coreclr/commit/
e8b51f16267715db62f8f17a2e159dcba07149aa
Koundinya Veluri [Fri, 24 Aug 2018 19:33:56 +0000 (12:33 -0700)]
Fix JitBench (dotnet/coreclr#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)
Commit migrated from https://github.com/dotnet/coreclr/commit/
98c34c45f9ad3ec93bf4192735621341506f0550
Bruce Forstall [Fri, 24 Aug 2018 19:14:58 +0000 (12:14 -0700)]
Merge pull request dotnet/coreclr#19556 from mikedn/dmp-speed
Speed-up JIT dump
Commit migrated from https://github.com/dotnet/coreclr/commit/
54898e0e26dac2f15563b7615f9139ef532b5fc5
Aaron Robinson [Fri, 24 Aug 2018 18:19:28 +0000 (11:19 -0700)]
Update interop test xplat header (dotnet/coreclr#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'
Commit migrated from https://github.com/dotnet/coreclr/commit/
28b3319c937c9fb0dcf4a5fa0223ace6f07a2bf3
Fei Peng [Thu, 23 Aug 2018 20:50:07 +0000 (13:50 -0700)]
Implement Intel AES intrinsic
Commit migrated from https://github.com/dotnet/coreclr/commit/
769f506d4f0182b3586624bf649bdff7465dae92
Fei Peng [Thu, 23 Aug 2018 20:50:02 +0000 (13:50 -0700)]
Add test cases for AES intrinsic
Commit migrated from https://github.com/dotnet/coreclr/commit/
33b82dd4dfdffbbce11a7175e2616e9bcd245b1e
Amy [Fri, 24 Aug 2018 16:25:42 +0000 (09:25 -0700)]
R2RDump - ARM and ARM64 UnwindInfo (dotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
6a1fe8075b4e95669d53e9272773151eeb2cad39
Carol Eidt [Fri, 24 Aug 2018 15:04:41 +0000 (08:04 -0700)]
Merge pull request dotnet/coreclr#19636 from jakobbotsch/fix-shift-value-executed
Mask shift value for shift [mem], const
Commit migrated from https://github.com/dotnet/coreclr/commit/
84ab0930aa6b258684341019625f5c28904ffd10
Sergey Andreenko [Fri, 24 Aug 2018 05:54:52 +0000 (22:54 -0700)]
Fix superpmi-shim-counter (dotnet/coreclr#19639)
* fix the issue
* improve counter perfomance
do not rewrite output file after each method
Commit migrated from https://github.com/dotnet/coreclr/commit/
59ea9c4e1937ea44faddb31dc3f17f8f1001f1d3
Andy Ayers [Fri, 24 Aug 2018 02:35:33 +0000 (19:35 -0700)]
JIT: fix handling of newarr size (dotnet/coreclr#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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ee6bdf7749caf7a70c48ebe5cbd37782dc6a33dd
Ahson Khan [Fri, 24 Aug 2018 02:11:48 +0000 (19:11 -0700)]
Workaround to remove unnecessary bounds checks when using {ReadOnly}Span.IsEmpty (dotnet/coreclr#19640)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ce59b1ab67fcf7c23c9fbc5da9b229f54568414
Aditya Mandaleeka [Thu, 23 Aug 2018 23:34:06 +0000 (16:34 -0700)]
Merge pull request dotnet/coreclr#19635 from josalem/syntax-error-build-test
Fix syntax error in build-test.sh
Commit migrated from https://github.com/dotnet/coreclr/commit/
90ed7a4ac4434b22368c7a4ad34fdc0ae415b449
Jakob Botsch Nielsen [Thu, 23 Aug 2018 21:47:18 +0000 (23:47 +0200)]
Make clang happy and fix old comment
Commit migrated from https://github.com/dotnet/coreclr/commit/
f633cf2f65800d27f308a7e85ca58c7b954cb1a7
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 dotnet/coreclr#19601
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf31aae139d9bbdf9d1ba3232fea2b390b53ae27
John Salem [Thu, 23 Aug 2018 21:06:11 +0000 (14:06 -0700)]
fix syntax error in build-test.sh
Commit migrated from https://github.com/dotnet/coreclr/commit/
64e212b7e606c74a8b2417ea8b4eb0f4ec754a26
Brian Sullivan [Thu, 23 Aug 2018 20:23:50 +0000 (13:23 -0700)]
Merge pull request dotnet/coreclr#19610 from briansull/fmt-bb
define FMT_BB as "BB%02u" and use it uniformly in the codebase
Commit migrated from https://github.com/dotnet/coreclr/commit/
5cc14d16df090aee6ca2496eafb380d0efe02232
Tomáš Rylek [Thu, 23 Aug 2018 19:23:42 +0000 (21:23 +0200)]
Two R2RDump fixes for Crossgen output (dotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
d22330a146dd3be30690b72be44f25e6b4bebe14
Koundinya Veluri [Thu, 23 Aug 2018 18:23:31 +0000 (11:23 -0700)]
Fix terminology in netci file (dotnet/coreclr#19608)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a7664abb5eb5ad4c435d11cc3959b1d2667ba811
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
4b60b417b8acca5d9fe5e118ebf0b7632a37dc1a
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 dotnet/coreclr#19579
Commit migrated from https://github.com/dotnet/coreclr/commit/
5f181974ec9b7c7cd730f8641122cba38f0c6a6e
Brian Sullivan [Thu, 23 Aug 2018 18:13:13 +0000 (11:13 -0700)]
Merge branch 'master' into fmt-bb
Commit migrated from https://github.com/dotnet/coreclr/commit/
6371dd8d4e8c3e82b2349325615ad7dd59f92bfc
Carol Eidt [Thu, 23 Aug 2018 17:34:44 +0000 (10:34 -0700)]
Merge pull request dotnet/coreclr#15011 from mikedn/ssa-mem-num
Eliminate duplicate SSA number bookkeeping
Commit migrated from https://github.com/dotnet/coreclr/commit/
4be947e111de15ca10b18ea965747c415bc16ceb
Egor Chesakov [Thu, 23 Aug 2018 16:32:24 +0000 (09:32 -0700)]
Deal with compilation warnings in VM in cross-bitness scenario (dotnet/coreclr#18707)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d8d3151f6744a89cf62d045d10e1b0dfa5e34015
Carol Eidt [Thu, 23 Aug 2018 01:43:23 +0000 (18:43 -0700)]
Handle multireg copies correctly (dotnet/coreclr#19588)
* Handle multireg copies correctly
Fix dotnet/coreclr#19029
Commit migrated from https://github.com/dotnet/coreclr/commit/
6f3c15061e3e213805c3f75fcf9a9049d5ec96d3
Jan Vorlicek [Thu, 23 Aug 2018 00:42:43 +0000 (02:42 +0200)]
Enable unloading of AssemblyLoadContext (dotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
8cd4b39a42c1c7cf37502357e6a4cb2888f5dfd7
Fei Peng [Thu, 23 Aug 2018 00:01:40 +0000 (17:01 -0700)]
Implement AVX2 MaskLoad and MaskStore (dotnet/coreclr#19513)
* Implement AVX2 MaskLoad and MaskStore
* Add test cases for AVX2 MaskLoad and MaskStore
* Fix AVX MaskStore tests
* template AVX MaskLoad tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
8013a4b6786d9e6618f8ed36bd0a473aa17b72aa
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
397bc2e7534fcff41c55125e15cdc3b92f2cf217
Brian Robbins [Wed, 22 Aug 2018 22:07:52 +0000 (15:07 -0700)]
Make sure RuntimeEventSource is passed to EventListener.OnEventSourceCreated (dotnet/coreclr#19393)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1c45896861956d9d126f317d4b783bc6b830cfe0
Koundinya Veluri [Wed, 22 Aug 2018 20:15:46 +0000 (13:15 -0700)]
Fix a PAL spin lock issue (dotnet/coreclr#19604)
Fix for https://github.com/dotnet/coreclr/issues/18486
- Lock release needs to be at least volatile
Commit migrated from https://github.com/dotnet/coreclr/commit/
36f66bf5b6e7e8c6abb839d3f22723d0a3318dd6
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
193e3134e3726b933111b46617be9bee05084ee2
Drew Noakes [Wed, 22 Aug 2018 12:54:20 +0000 (13:54 +0100)]
Fix broken documentation links into mscorlib code (dotnet/coreclr#19598)
Commit migrated from https://github.com/dotnet/coreclr/commit/
fea6dcacb820057eb24a25b97c337b5dcf881301
Krzysztof Wicher [Tue, 21 Aug 2018 21:55:33 +0000 (14:55 -0700)]
AesGcm, AesCcm (dotnet/corefxdotnet/coreclr#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>
Commit migrated from https://github.com/dotnet/coreclr/commit/
4804b07868d3da2c69a31469bdae9365a63739be
Amy [Wed, 22 Aug 2018 02:18:33 +0000 (19:18 -0700)]
R2RDump - Interweave x64 unwind codes into disasm (dotnet/coreclr#19577)
* Interweave unwind codes into disasm, fix incorrect x64 register names
* Fix xml dump errors
Commit migrated from https://github.com/dotnet/coreclr/commit/
1c2bb89a1b8f6f49167657bccabdf9d0d25756e6
Brian Sullivan [Tue, 21 Aug 2018 20:48:15 +0000 (13:48 -0700)]
Merge pull request dotnet/coreclr#19572 from briansull/fmt-vn
Define FMT_VN as "$%x" and use it uniformly in the codebase
Commit migrated from https://github.com/dotnet/coreclr/commit/
2057943a230eb240ead8c297bf04f567e2efac07
Bruce Forstall [Tue, 21 Aug 2018 18:30:49 +0000 (11:30 -0700)]
Merge pull request dotnet/coreclr#19581 from sergign60/unwind_fix
[corert armel] Fixed CoreRT issue dotnet/coreclr#5874 for non-callee-saved regs
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d5d9165ca0d90fd7ebf0e6216c4a5dad238917c
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
904ac5f6484831b94ca01d195e2e68bd0c435a8a
Egor Chesakov [Tue, 21 Aug 2018 00:08:18 +0000 (17:08 -0700)]
Cleanup unnecessary casts in roundUp
Commit migrated from https://github.com/dotnet/coreclr/commit/
de7a416d55f309c36fd883e94d3263d60dc86e8c
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
5b844783ae804bafc3dac2fe9c1ab39784bab44e
Sergey Ignatov [Tue, 21 Aug 2018 09:37:43 +0000 (12:37 +0300)]
[corert armel] Fixed CoreRT issue dotnet/coreclr#5874 for non-callee-saved regs
Commit migrated from https://github.com/dotnet/coreclr/commit/
3d453307f82bbfe3496333f347be2828dd745869
Carol Eidt [Tue, 21 Aug 2018 08:44:07 +0000 (01:44 -0700)]
Handle null byref in helper (dotnet/coreclr#19571)
Add JIT_ByRefWriteBarrier to IsIPInMarkedJitHelper so that a null dereference will be handled.
Fix dotnet/coreclr#19444
Commit migrated from https://github.com/dotnet/coreclr/commit/
4d9c822c062b3a97ab16ef0f9c7a33be79819fe9
adiaaida [Tue, 21 Aug 2018 00:59:07 +0000 (17:59 -0700)]
Backout change to pass -ibcoptimize in official builds
Commit migrated from https://github.com/dotnet/coreclr/commit/
41f78344b91bbd40cce288269292f3f7301b60a7
Egor Chesakov [Tue, 21 Aug 2018 03:19:08 +0000 (20:19 -0700)]
Stop using size_t for passing immediate values in CodeGen CodeGenInterface (dotnet/coreclr#19544)
Commit migrated from https://github.com/dotnet/coreclr/commit/
241789a114c4ef0250d7298144b15841416c196e
Amy [Tue, 21 Aug 2018 02:43:17 +0000 (19:43 -0700)]
R2RDump - Add image describing R2R format (dotnet/coreclr#19528)
* Add image describing R2R format
* Remove help message stating -v option dumps raw bytes
Commit migrated from https://github.com/dotnet/coreclr/commit/
6ce310bcebfc125380584821229d39fd25d994dd
Andy Ayers [Tue, 21 Aug 2018 01:38:30 +0000 (18:38 -0700)]
Fix tiered compilation option for case-sensitive systems (dotnet/coreclr#19567)
Commit migrated from https://github.com/dotnet/coreclr/commit/
61967effdb1a2fa3a47074b183ae96df79c8aa3a
Carol Eidt [Mon, 20 Aug 2018 23:57:40 +0000 (16:57 -0700)]
Merge pull request dotnet/coreclr#19334 from CarolEidt/Fix19243
Fix evaluation order for block copy
Commit migrated from https://github.com/dotnet/coreclr/commit/
f628f287ab911d469a490756c8d0c5e1bf1cac84
Michelle McDaniel [Mon, 20 Aug 2018 22:21:58 +0000 (15:21 -0700)]
Add IBC support (dotnet/coreclr#19046)
This change adds support to consume IBC data packages that are created by the dotnet/optimization repository. With these changes and dotnet/buildtoolsdotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
e30616f7810838f94170786d9477df2423f4fa09
Andy Ayers [Mon, 20 Aug 2018 22:03:29 +0000 (15:03 -0700)]
JIT: remove incremental ref count updates (dotnet/coreclr#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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
895bfa452da4aeeda52447e76d9e9e987d68f331
Zach Montoya [Mon, 20 Aug 2018 21:08:41 +0000 (14:08 -0700)]
Update Microsoft.NETCore.CoreDisTools to version 1.0.1-prerelease-00005 (dotnet/coreclr#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 dotnet/coreclr#19564 to the R2RDump.cs Disassembler comment
Commit migrated from https://github.com/dotnet/coreclr/commit/
ab8023d9e2d70072d0017191eacca449c4e1c33b
Mike McLaughlin [Mon, 20 Aug 2018 20:33:05 +0000 (13:33 -0700)]
Fix dbgshim's > 1000 module bug (issue dotnet/coreclr#19538) (dotnet/coreclr#19553)
Fix dbgshim's > 1000 module bug (issue dotnet/coreclr#19538)
Cap cbNeeded on second EnumProcessModules call. Change the allocations
to HMODULE to make sure they are aligned properly.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba9598ee52cb8da554255ccd09945d2baae4aecb
Aaron Robinson [Mon, 20 Aug 2018 19:00:54 +0000 (12:00 -0700)]
Fix issues with calling convention in tests. (dotnet/coreclr#19548)
Commit migrated from https://github.com/dotnet/coreclr/commit/
438f7bcf938285c24d41227dcee0967cee449d54
Carol Eidt [Mon, 20 Aug 2018 17:44:41 +0000 (10:44 -0700)]
Add comment
Commit migrated from https://github.com/dotnet/coreclr/commit/
6ea024a4b60287af40280d774bfdae1ed05489fc
Clinton Ingram [Mon, 20 Aug 2018 11:09:45 +0000 (04:09 -0700)]
Normalize whitespace/indentation
Commit migrated from https://github.com/dotnet/coreclr/commit/
04d9b557ef8b7c60a1194d062c7c2ee6e41fd8c1
Clinton Ingram [Mon, 20 Aug 2018 11:06:30 +0000 (04:06 -0700)]
Update t4 templates to generate simplified type names
Commit migrated from https://github.com/dotnet/coreclr/commit/
b8f5be8ddb9b9cb92aa5816b94a864696219e1bf
Ben Adams [Mon, 20 Aug 2018 16:30:37 +0000 (17:30 +0100)]
Mark some readonly fields readonly (dotnet/coreclr#19559)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1f1d43abf34ba27e86ff4150d6970e7d1fda98d0
Pent Ploompuu [Mon, 20 Aug 2018 16:29:55 +0000 (19:29 +0300)]
Optimize number formatting (dotnet/coreclr#19551)
Commit migrated from https://github.com/dotnet/coreclr/commit/
046b5ee39123d0b70319d876146dfde97912088a
Ben Adams [Mon, 20 Aug 2018 16:25:47 +0000 (17:25 +0100)]
Mark more structs as readonly (dotnet/coreclr#19557)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ac09773ad09f374053ae1cb11336b96d01da49a1
Ben Adams [Mon, 20 Aug 2018 16:22:20 +0000 (17:22 +0100)]
Make DateTimeOffset a readonly struct (dotnet/coreclr#19552)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9499b08eefd895158c3f3c7834e185a73619128d
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. (dotnet/coreclr#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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2031a14a3b110f8e712abdb0cd392c54cd2e839
Andy Ayers [Sun, 19 Aug 2018 02:23:41 +0000 (19:23 -0700)]
Fix test case comment to reflect the actual test (dotnet/coreclr#19531)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff56d33f624bee91354ebe09ab83bbc79b587536
Egor Chesakov [Fri, 17 Aug 2018 18:40:05 +0000 (11:40 -0700)]
Enable Microsoft.VisualBasic.dll in crossgen_comparison scenario
Commit migrated from https://github.com/dotnet/coreclr/commit/
01ec10ffed3cdfa417eedaa4e3437ed6aa708074
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
3477e6af5bf735c7bef12791dcad323f7e1600ff
Egor Chesakov [Sun, 19 Aug 2018 01:03:06 +0000 (18:03 -0700)]
Fix wrong sprinf_s format string in gtGetArgMsg getGetLateArgMsg on ARM32 (dotnet/coreclr#19536)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7b6d24ede2810d29338b6097bf04aa67471f637d
Egor Chesakov [Sat, 18 Aug 2018 21:38:14 +0000 (14:38 -0700)]
Exclude some assemblies from CrossGen Comparison job (dotnet/coreclr#19534)
* System.Runtime.Intrinsics.Experimental.dll
* Xunit assemblies
Commit migrated from https://github.com/dotnet/coreclr/commit/
e27ddb1707d5733de018343bd7aed8525762c328
Tomáš Rylek [Fri, 17 Aug 2018 23:41:22 +0000 (01:41 +0200)]
Initial support for R2R image diff (dotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
f43572eab2b9b560923435756aee09cb911f3296
Aaron Robinson [Fri, 17 Aug 2018 18:09:31 +0000 (11:09 -0700)]
Remove tests previously ported to CoreFX repo (dotnet/coreclr#19527)
* Remove tests previously ported to CoreFX repo
* Remove references to ported Marshal API tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff9b943a050e515a8e4e0a9e152738279abdc35b
Bruce Forstall [Fri, 17 Aug 2018 17:47:38 +0000 (10:47 -0700)]
Merge pull request dotnet/coreclr#19530 from BruceForstall/DisableArmUbuntuCorefxLogging
Disable Ubuntu arm32 corefx xunit test result parsing
Commit migrated from https://github.com/dotnet/coreclr/commit/
0fc981abe7b9ca6898f157bc247edad265d4088b
Bruce Forstall [Fri, 17 Aug 2018 17:32:16 +0000 (10:32 -0700)]
Merge pull request dotnet/coreclr#19378 from sergign60/unwind_fix
[CoreRT armel]Fix for unwinding support for ARM dotnet/coreclr#5874
Commit migrated from https://github.com/dotnet/coreclr/commit/
147e114fce7c70d1a566a8b1d5ffcfab36e0a09e
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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
da65d2f15084c45b8a352ebe901de9cbdba7add0
William Godbe [Fri, 17 Aug 2018 17:14:02 +0000 (10:14 -0700)]
Merge pull request dotnet/coreclr#19512 from dotnet-maestro-bot/master-UpdateDependencies
Update BuildTools, CoreClr, CoreFx, CoreSetup, PgoData to preview1-03116-01, preview1-26817-05, preview1-26817-04, preview1-26817-01, master-
20180817-0151, respectively (master)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1c4cc31f9bb5cafd31b1798e7da2984079c24aac
Koundinya Veluri [Fri, 17 Aug 2018 15:31:44 +0000 (08:31 -0700)]
Enable Tiered Compilation by default (dotnet/coreclr#19525)
Enable Tiered Compilation by default
1) Changes the default state of the tiered compilation feature check to be ON BY DEFAULT
2) Removed comments about the source about this being a work in progress. Although it will surely continue to evolve and improve, remaining issues would be better tracked in our issue tracking system with the same default presumption as other runtime features - assume it works unless noted otherwise.
3) Adjusts a number of tests and automated scripts that made assumptions that the default setting of this feature is off.
4) Stop accepting the deprecated env var COMPLUS_EXPERIMENTAL_TieredCompilation. I'm not aware it has any remaining usage but if so we're going to find out.
5) Adjust config names for JitBench
Commit migrated from https://github.com/dotnet/coreclr/commit/
f6174b93d100d46f4641f040b6de5fa254c1ee71
dotnet-maestro-bot [Fri, 17 Aug 2018 13:47:35 +0000 (06:47 -0700)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, PgoData to preview1-03116-01, preview1-26817-05, preview1-26817-04, preview1-26817-01, master-
20180817-0151, respectively
Commit migrated from https://github.com/dotnet/coreclr/commit/
f25bfa2594c3dcb5cb4d4c1438bda84cb3749034
Egor Chesakov [Fri, 17 Aug 2018 04:56:41 +0000 (21:56 -0700)]
Merge pull request dotnet/coreclr#19514 from dotnet/dev/unix_test_workflow
Introduce CrossGen Comparison scenario
Commit migrated from https://github.com/dotnet/coreclr/commit/
a81d9103d23f714a0bd3efb900321b0b9f383311
Egor Chesakov [Thu, 9 Aug 2018 23:36:17 +0000 (16:36 -0700)]
Add CrossGen Comparison scenario to netci.groovy
Commit migrated from https://github.com/dotnet/coreclr/commit/
609537f2e1a82c8e8b5a415eee9de930e8375ec2
Egor Chesakov [Thu, 9 Aug 2018 23:37:39 +0000 (16:37 -0700)]
Add tests/scripts/crossgen_comparison.py
Commit migrated from https://github.com/dotnet/coreclr/commit/
41f8828e745f8039ab10e522c5a79d60c9c7c98d
Jarret Shook [Fri, 17 Aug 2018 01:16:59 +0000 (18:16 -0700)]
Remove coreclr.*txt upload (dotnet/coreclr#19524)
Commit migrated from https://github.com/dotnet/coreclr/commit/
04dbdb30e5a7bbddb69944081e2755fd575437d0
Amy [Fri, 17 Aug 2018 00:05:23 +0000 (17:05 -0700)]
R2RDump - Documentation (dotnet/coreclr#19497)
* Add comments
* Add README
* Use href links, disable disasm
Commit migrated from https://github.com/dotnet/coreclr/commit/
07330cad0eb3f2583283feb34ccf8c5ca3dfde39
Anirudh Agnihotry [Thu, 16 Aug 2018 20:21:55 +0000 (13:21 -0700)]
Moved registry.cs to shared (dotnet/coreclr#19471)
* moved registry to shared
* using corefx version
* set value added
Commit migrated from https://github.com/dotnet/coreclr/commit/
4e89ab7c4011e927e2ff552435df56a77880d70f
Tom Deseyn [Thu, 16 Aug 2018 18:47:20 +0000 (20:47 +0200)]
Determine memory load based on cgroup usage. (dotnet/coreclr#19518)
cgroup usage is used to trigger oom kills. It includes rss and file cache
of the cgroup.
The implementation was only using the process rss to determine memory load.
This is less than the cgroup usage and leads to oom kills due to GC not
being triggered soon enough.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ca5b0d1caa47abdebac13233553c6e44db2e3168
José Rivero [Thu, 16 Aug 2018 18:25:31 +0000 (11:25 -0700)]
Add an empty console application to measure startup of the runtime. (dotnet/coreclr#19490)
Commit migrated from https://github.com/dotnet/coreclr/commit/
6a2ce4748f043d8c0dc9e4d30d415cffbef1958f
Koundinya Veluri [Thu, 16 Aug 2018 18:23:47 +0000 (11:23 -0700)]
Disable a regex test that is failing with minopts (dotnet/coreclr#19488)
See dotnet/coreclrdotnet/coreclr#18912. This test would always fail once tiered compilation is enabled by default in CoreFX test runs in the CoreCLR repo.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fc449435e56ec439fb28b5426a5fbea645bb9d0c
Aaron Robinson [Thu, 16 Aug 2018 18:21:51 +0000 (11:21 -0700)]
Build-test.sh handles native test assets (dotnet/coreclr#19430)
* Respect Windows script argument to skip package building.
* Bring build.sh logic closer to build.cmd with respect to passing CMAKE flags for building tests
* Make cmake gen script find override file without using script arguments
* build-test.sh can now build native test projects
Remove compileoptions.cmake and push contents into configurecompiler.cmake
which contains compiler configuration from repo root CMakeLists.txt
Commit migrated from https://github.com/dotnet/coreclr/commit/
f0f42d4c0fc3cfd782b89171840e2590604392cd
Koundinya Veluri [Thu, 16 Aug 2018 18:20:55 +0000 (11:20 -0700)]
Some JitBench fixes (dotnet/coreclr#19479)
Some JitBench fixes
- Fixed `dotnet run` from the `unofficial_dotnet` folder after `Directory.Build.targets` was added to `coreclr/tests/src`. This file is auto-imported and was adding dependencies and properties for targets that were not necessary. Added files to the root JitBench folder to override.
- Updated JitBench to be able to run against netcoreapp3.0. I haven't changed the default yet, could consider doing so once there are no pending perf issues being looked into.
- Added a `RetargetProjects()` function to the setup steps to replace `TargetFramework` and `RuntimeFrameworkVersion` values in the relevant `.csproj` files to run against the expected runtime. This reduces some dependency on other repos containing the actual perf projects such that we don't have to update every repo to support environment variables to set those values.
- Disabled tiering for the `MinOpts` config
Commit migrated from https://github.com/dotnet/coreclr/commit/
72e9b8d589f114776e3f42058d721058b77133b9
Andy Ayers [Thu, 16 Aug 2018 16:22:05 +0000 (09:22 -0700)]
JIT: bail out in optExtractArrIndex for constant array length (dotnet/coreclr#19493)
Generalize the bail out pattern to handle cases from spans where we may
see a known array length in a bounds check.
Fixes dotnet/coreclr#19454
Commit migrated from https://github.com/dotnet/coreclr/commit/
a52128e8f59f7f824862ff4ecde0d8d9ae1631ef
Pent Ploompuu [Thu, 16 Aug 2018 15:40:59 +0000 (18:40 +0300)]
Optimize NumberBufferToDecimal (dotnet/coreclr#19072)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2f5e5d912751b1cec481ec3b3c35cb8c7a4adf0a
Carol Eidt [Thu, 16 Aug 2018 15:11:00 +0000 (08:11 -0700)]
Merge pull request dotnet/coreclr#19396 from CarolEidt/Fix19288
Fix non-lclVar odd-byte struct passing
Commit migrated from https://github.com/dotnet/coreclr/commit/
da7cf5626753baeef42e7bd2d95f2dfe1c894553
Sergey Ignatov [Thu, 9 Aug 2018 08:52:10 +0000 (11:52 +0300)]
[CoreRT armel]Fix for unwinding support for ARM is not fully implemented dotnet/coreclr#5874
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4eaea5265b90bdf782bbd62d1cbc246f62a7a75
Jeremy Kuhne [Thu, 16 Aug 2018 04:16:43 +0000 (21:16 -0700)]
Make file handle checks accurate on Windows (dotnet/coreclr#19508)
* Make handle checks accurate on Windows
We can actually check the async state of a handle on Windows, so check directly when we have the API available.
Also allow all filetypes through when explicitly using extended syntax `\\?\` .
* Fix nits
* Don't throw in the handle constructor overloads
* Whoops
* Removing the close handle entirely. No adverse effects from closing a bad handle- or leaving it open for that matter.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3da101be85ee07b9b625f03b7570a03a5cd028cc
Koundinya Veluri [Thu, 16 Aug 2018 02:43:15 +0000 (19:43 -0700)]
Revert "Temporarily flag a SIMD test as optimization-sensitive (dotnet/coreclr#19163)" (dotnet/coreclr#19505)
This reverts commit dotnet/coreclr@
855ddf52c7b05994cf6728b9169fa6cdc694a537. Issue https://github.com/dotnet/coreclr/issues/19124 was fixed by PR https://github.com/dotnet/coreclr/pull/19234, so re-enabling the test in minopts and with tiering.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0c64cede37e206829af24237de037e3c14f7b3cc
elyoh [Thu, 16 Aug 2018 01:03:50 +0000 (02:03 +0100)]
Update JapaneseLunisolarCalendar.cs (dotnet/coreclr#19504)
Corrects an issue with the conversion table for Gregorian to Japanese lunisolar dates.
See: dotnet/coreclr#19450.
Issue: data discrepancy in year 1962.
Table entry for 1962 has incorrect days per month for months 6 and 7.
Notes
The DaysPerMonth flag uses the binary literal for ease of readability.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c258c092b125aa607b669649ddd0e2c0107ccf06
Andy Ayers [Thu, 16 Aug 2018 00:05:28 +0000 (17:05 -0700)]
JIT: properly handle special-case varargs params in minopts (dotnet/coreclr#19489)
We were previously marking all lcl vars as implicitly referenced in minopts,
but there are some special varargs params that can't ever be marked as
referenced, either implicitly or explicitly.
Special case these when computing or checking ref counts in minopts.
Closes dotnet/coreclr#19349.
Commit migrated from https://github.com/dotnet/coreclr/commit/
81c0e509c0e948385268e209db0696f2bbddd575
Jan Kotas [Wed, 15 Aug 2018 22:55:24 +0000 (15:55 -0700)]
Revert "Change CoreLib native image to be R2R by default on all platforms (dotnet/coreclr#19359)" (dotnet/coreclr#19501)
This reverts commit dotnet/coreclr@
d485659348af3528b688ac5b7e4c58dacba6de58.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a8e22205c4d9c8660449f66fabe7a1e46c681023
Luqun Lou [Wed, 15 Aug 2018 22:52:28 +0000 (15:52 -0700)]
Add Public API Marshal.IsTypeVisibleFromCom and Marshal.GetEndComSlot (dotnet/coreclr#19507)
Commit migrated from https://github.com/dotnet/coreclr/commit/
81455f6fe9e078902f1fb331ae81d85c4d001c5f