Jarret Shook [Fri, 31 Aug 2018 18:25:20 +0000 (11:25 -0700)]
Fix build-test.sh wrapper build (dotnet/coreclr#19779)
* Fix build-test.sh wrapper build
In addition this change creates a json file with the build info so that the wrapper build
may be skipped if it was built on the same os/arch/buildtype.
* Address pr feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
6de8d61ab595b2975a01ba4068a3840a6f7aaacd
Santiago Fernandez Madero [Fri, 31 Aug 2018 18:16:19 +0000 (11:16 -0700)]
Revert "Remove not necessary type forwarded from attributes when type comes from mscorlib in netfx" (dotnet/coreclr#19784)
This reverts commit dotnet/coreclr@
4fb001d431e0f44df15709f02f776e565fec14c7.
Commit migrated from https://github.com/dotnet/coreclr/commit/
3b807944d8822b44eb5085d6b95b130b4a91808f
Jan Kotas [Fri, 31 Aug 2018 04:06:51 +0000 (21:06 -0700)]
Fix build break in CoreRT/ProjectN
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
9ed18951643bc05060b377bf006f2530cb857bdb
Carol Eidt [Fri, 31 Aug 2018 17:21:36 +0000 (10:21 -0700)]
Merge pull request dotnet/coreclr#19772 from fiigii/insxor
Fix target register false dependency of lzcnt, tzcnt, and popcnt
Commit migrated from https://github.com/dotnet/coreclr/commit/
4d031d66619f18f051df6666a87bc8c8acfbbe4f
Andy Ayers [Fri, 31 Aug 2018 15:20:53 +0000 (08:20 -0700)]
JIT: don't allocate promoted struct death vars map for clear or lookup (dotnet/coreclr#19753)
Only allocate this map if we're adding something. Refactor clearing and
lookup to do minimal work if the map hasn't been allocated (and it won't
have been in debug / minopts).
Saves a tiny bit of throughput and memory.
Commit migrated from https://github.com/dotnet/coreclr/commit/
de74b8ca4116235601feaf868f3ab0a06615ec3d
Ben Adams [Fri, 31 Aug 2018 15:19:10 +0000 (16:19 +0100)]
IndexOf(char, Ordinal) use fast path (dotnet/coreclr#19788)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f597da2dd522ca1ca7293ef83798aae86840e588
David Mason [Fri, 31 Aug 2018 10:44:11 +0000 (03:44 -0700)]
Enable gc_profiling for local gc (dotnet/coreclr#19777)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d82fc2062925ced3fb5c479ff8db7ef61cc4f290
David Mason [Fri, 31 Aug 2018 10:43:51 +0000 (03:43 -0700)]
[local gc] move DacNotifyGCMarkEnd and AnalyzeSurvivorsRequested to GCToEEInterface (dotnet/coreclr#19774)
Commit migrated from https://github.com/dotnet/coreclr/commit/
00a5ee589b565ebcd068c5851315a997848ed98c
Tanner Gooding [Thu, 30 Aug 2018 18:41:21 +0000 (11:41 -0700)]
Updating runtest.py so that it works with Python 3
Commit migrated from https://github.com/dotnet/coreclr/commit/
6e780ac7dae161bdfd2d561db7995687703d39b2
Sven Boemer [Fri, 31 Aug 2018 00:24:11 +0000 (17:24 -0700)]
Add startup hook in System.Private.CoreLib (dotnet/coreclr#19486)
* Add startup hook in System.Private.CoreLib
ProcessStartupHooks can be called from the host before the user's Main
entry point. It receives a list of dlls and types containing
Initialize() methods that will be called, making it possible to inject
managed code early during startup.
* Allow ! in assembly path for startup hook and other changes
Also:
- Report full assembly path when startup hook assembly is not found
- Remove unnecessary assert
- use Type.Delimiter instead of "."
* Use C# 7 tuple syntax and remove assert
* Improve error handling
Throw MissingMethodException only when there aren't any Initialize
methods at all.
When there are Initialize methods with incorrect
signatures (parameters, return type, visibility, or instance methods),
throw invalid signature error.
This should improve diagnosability of this feature.
* Remove eager check for missing startup hook assemblies
* Require full assembly path and use Split(char) overload.
* Remove startup hook type syntax
The type is now required to be "StartupHook" (in the global
namespace).
* Add assembly path to startup signature exception
With a hard-coded type name, printing the type.method of the startup
hook in the exception will no longer be much of an aid in debugging
startup hook signature issues. Adding the assembly path makes it clear
which startup hook had the problem.
* Use const strings
* Call startup hook inside ExecuteMainMethod
This way it will be called when the application is executed, but not
during other uses of hosting apis that go through
coreclr_create_delegate. This change will ensure that the threading
state is set based on attributes in the main method, before the
startup hooks run.
* Run startup hooks after setting root assembly and other fixes
- Run startup hooks after setting the appdomain's root
assembly (visible in Assembly.GetEntryAssembly()
- Make the class static
- Remove debug output
- Don't allocate an empty ARG_SLOT array
* Allow non-public Initialize method, adjust coding style
* Remove overly-specific assert
Commit migrated from https://github.com/dotnet/coreclr/commit/
1c47703a3d548e5f3293a11d98747dd83bf429f1
Aaron Robinson [Thu, 30 Aug 2018 22:01:12 +0000 (15:01 -0700)]
Update existing COM test assets (native/managed) to share CLSIDs with… (dotnet/coreclr#19756)
* Update existing COM test assets (native/managed) to share CLSIDs with other projects.
* Update Interop.settings.targets
None of these test changes apply to Ubuntu ARM
Commit migrated from https://github.com/dotnet/coreclr/commit/
35ead994ccde0cf2faaf1786af49d5b9ed523074
Fei Peng [Thu, 30 Aug 2018 20:23:37 +0000 (13:23 -0700)]
Fix target register false dependency of lzcnt, tzcnt, and popcnt
Commit migrated from https://github.com/dotnet/coreclr/commit/
6957b4f44f0917209df89499b7c4071bb0bc1941
Andrew Au [Thu, 30 Aug 2018 16:31:53 +0000 (09:31 -0700)]
Fix CoreCLR debug launch (dotnet/coreclr#19730)
Commit migrated from https://github.com/dotnet/coreclr/commit/
665c5cc83c5fe8b186c82e7f83bba0cdf860516a
Andy Ayers [Thu, 30 Aug 2018 15:01:46 +0000 (08:01 -0700)]
JIT: don't compute edge weights if not optimizing (dotnet/coreclr#19736)
We were spending a bit less than 1% of jit time computing edge weights
for minopts an debug codegen, but then never using them.
Also when optimizing we wanted to just compute edge weights but ran
through a bit more code than that.
Restructure the code so it's clearer what runs when, and bypass the
edge weight computations for minopts and debug codegen.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d43347e043beb3ae64c8db55f72708c1ce60511e
Mark Jung [Thu, 30 Aug 2018 10:00:02 +0000 (05:00 -0500)]
typo fix (dotnet/coreclr#19763)
Commit migrated from https://github.com/dotnet/coreclr/commit/
819f19a3287ccd179cb8bcbac24d6817c1e2fb71
Sergey Andreenko [Thu, 30 Aug 2018 04:56:43 +0000 (21:56 -0700)]
Fix test folder register (dotnet/coreclr#19749)
rename test
Commit migrated from https://github.com/dotnet/coreclr/commit/
d11784cfbcc11cd0d7b9139ebfca6790b684331b
Sergey Andreenko [Thu, 30 Aug 2018 02:55:24 +0000 (19:55 -0700)]
Delete code that tracks stack level in morph. (dotnet/coreclr#19703)
* call fgCheckArgCnt only from stackLevelSetter
* delete changing fgPtrArgCntMax from codegencommon
* delete fgPtrArgCntCur
* reset write phase only once
* delete gtStkDepth
* add headers for the new fucntions
* fix comments
Commit migrated from https://github.com/dotnet/coreclr/commit/
94b847fc65117d30c62e182b724ac1ffd5ac575c
Sergey Andreenko [Thu, 30 Aug 2018 02:54:42 +0000 (19:54 -0700)]
fix merge conflict in build-test.sh (dotnet/coreclr#19744)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d42cdd01992aa5328320c7d4bf5eca41fbc8ff02
Egor Chesakov [Thu, 30 Aug 2018 02:51:51 +0000 (19:51 -0700)]
Define T_RUNTIME_FUNCTION in cross-bitness crossgen ARM32 (dotnet/coreclr#19718)
* Allow 'Non-ARM Host managing ARM related code' scenario in src/inc/crosscomp.h
* Restrict RtlUnwindEx RtlVirtualUnwind to X86 || FEATURE_PAL in src/inc/clrnt.h
* Define PTR_RUNTIME_FUNCTION via T_RUNTIME_FUNCTION in src/inc/daccess.h
Commit migrated from https://github.com/dotnet/coreclr/commit/
398caa5c90173f90bcfc8275670a1fcaa7ad6e41
Carol Eidt [Thu, 30 Aug 2018 01:08:34 +0000 (18:08 -0700)]
Merge pull request dotnet/coreclr#19742 from CarolEidt/Disable19397Arm64
Disable Failing test on Arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
8ba838fb54d6c07271d026b2d77bedcb9e2a786a
Egor Chesakov [Thu, 30 Aug 2018 00:26:41 +0000 (17:26 -0700)]
Merge pull request dotnet/coreclr#19727 from echesakovMSFT/ConstantPropImmedValNeedsReloc
Do not Constant-Prop immediate values that require relocation on ARM32
Commit migrated from https://github.com/dotnet/coreclr/commit/
e8b9b6c225bf2f876df0c3fc979e4dea6f281358
Tanner Gooding [Wed, 29 Aug 2018 20:08:33 +0000 (13:08 -0700)]
Update floatdouble and floatsingle to use `floatcontrol(precise, value push)` and `floatcontrol(precise, pop)`
Commit migrated from https://github.com/dotnet/coreclr/commit/
13c4ab0742ee7f80fb1cb98bef95e106b0f9c83a
Tanner Gooding [Wed, 29 Aug 2018 00:28:20 +0000 (17:28 -0700)]
Updating floatdouble and floatsingle to work around an incorrect result under /fp:fast
Commit migrated from https://github.com/dotnet/coreclr/commit/
91eeb98c500d7d841f49eec7916d8c24d61d0eed
Brian Sullivan [Wed, 29 Aug 2018 21:47:42 +0000 (14:47 -0700)]
Merge pull request dotnet/coreclr#19726 from briansull/vn-dumping
Value Numbering dumping changes and documentation on normal and excSet value numbers
Commit migrated from https://github.com/dotnet/coreclr/commit/
c46e7eec10e3c697ae24350b85b8ae4c424f5d4a
John Doe [Wed, 29 Aug 2018 21:46:52 +0000 (14:46 -0700)]
Typos (dotnet/coreclr#19737)
* testsing -> testing
* reclaming -> reclaiming
* oppurtunity -> opportunity
* implemenation -> implementation
* indicaates -> indicates
* enregisterd -> enregistered
* compuations -> computations
* convinient -> convenient
* intution -> intuition
* Communicaton -> Communication
Commit migrated from https://github.com/dotnet/coreclr/commit/
4c7c066d0bacdb86a2311333de1ca73d94ae5280
Brian Sullivan [Wed, 29 Aug 2018 21:37:48 +0000 (14:37 -0700)]
Fix typo
Commit migrated from https://github.com/dotnet/coreclr/commit/
c5cf85ad3a9be5de0daf0bfe111a64d849c58971
Santiago Fernandez Madero [Fri, 24 Aug 2018 19:30:27 +0000 (12:30 -0700)]
Remove not necessary type forwarded from attributes when type comes from mscorlib in netfx
Commit migrated from https://github.com/dotnet/coreclr/commit/
8bc0e5e39a3805fa707f366f2a1189e2b25d43b6
Carol Eidt [Wed, 29 Aug 2018 20:20:55 +0000 (13:20 -0700)]
Disable Failing test on Arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
44f0e8ff4a1ae4f6c8be151261e2c8010b2960b9
Brian Sullivan [Wed, 29 Aug 2018 01:03:56 +0000 (18:03 -0700)]
Value Numbering dumping changes and documentation on normal and excSet value numbers
Support the dumping of exception set
Added full method header comments for VNNormVal and VNWithExc
Removed extra spew for fieldSeq
Removed several unnecessary fgCurMemoryVN assigned printf
Added noway_asserts when dealing with a GT_ASG for a LHS that is a GT_PHI_ARG, GT_BLK or GT_OBJ
Commit migrated from https://github.com/dotnet/coreclr/commit/
0ec46e1f18eed108ba18066c7ab1a25da733ad43
Fei Peng [Tue, 28 Aug 2018 20:36:27 +0000 (13:36 -0700)]
using struct for VectorPacket in PacketTracer benchmark
Commit migrated from https://github.com/dotnet/coreclr/commit/
fb4b1f70a47455b392231f97ab446f487c87521a
Carol Eidt [Wed, 29 Aug 2018 17:54:39 +0000 (10:54 -0700)]
Merge pull request dotnet/coreclr#19695 from CarolEidt/Fix19397
Handle multiReg COPY
Commit migrated from https://github.com/dotnet/coreclr/commit/
305b5529b0612c283ccb2b1c21f43e4e801f9871
Vance Morrison [Wed, 29 Aug 2018 17:12:48 +0000 (10:12 -0700)]
Merge pull request dotnet/coreclr#19205 from vancem/EventSourceUIntFix
Event source uint fix
Commit migrated from https://github.com/dotnet/coreclr/commit/
1eedc35a644fece43d7674c4d2d56b5f2c605936
Michelle McDaniel [Wed, 29 Aug 2018 16:41:15 +0000 (09:41 -0700)]
Enable ibc official build (dotnet/coreclr#19586)
Enable IBCOptimize for x86 and x64 Release builds
Commit migrated from https://github.com/dotnet/coreclr/commit/
b08f34eb1ea2cd8527507fc0249d80aed2eef9db
Fei Peng [Fri, 24 Aug 2018 21:48:43 +0000 (14:48 -0700)]
Improve struct promotion for 256-bit SIMD fields
Commit migrated from https://github.com/dotnet/coreclr/commit/
f99ca8c1533fe9f70407353d5f0b9784fd40362c
Morgan Brown [Wed, 29 Aug 2018 11:25:57 +0000 (04:25 -0700)]
Fix IJW test failing on Linux (dotnet/coreclr#19729)
Disables the IJW test on Linux and ARM64
Commit migrated from https://github.com/dotnet/coreclr/commit/
cbbfca3459519c21dbd94f9d8cd0bce26a5a1756
Egor Chesakov [Wed, 29 Aug 2018 01:24:57 +0000 (18:24 -0700)]
Cast gtIconVal to target_ssize_t in src/jit/assertionprop.cpp
Commit migrated from https://github.com/dotnet/coreclr/commit/
9e32ef351092acdde970d1a9a80fa6565bf01456
Egor Chesakov [Wed, 29 Aug 2018 01:24:22 +0000 (18:24 -0700)]
Do not Constant-Prop immediate values that require relocation on ARM32
Commit migrated from https://github.com/dotnet/coreclr/commit/
bd32cdb5ae1e581d8b9aaceaae97075f675abf7d
Egor Chesakov [Wed, 29 Aug 2018 01:17:06 +0000 (18:17 -0700)]
Merge pull request dotnet/coreclr#19619 from echesakovMSFT/Mov32RelocatableDisplacementARM32
[ARM32] Split IF_T2_N3 into relocatable and non-relocatable cases
Commit migrated from https://github.com/dotnet/coreclr/commit/
57ac3820b4284e6c6c278d9be95e81eb446a13b2
Simon Nattress [Wed, 29 Aug 2018 01:09:04 +0000 (18:09 -0700)]
Merge pull request dotnet/coreclr#19053 from riverar/riverar/r2r_size_unavail
Set function size to -1 if sizing info unavailable
Commit migrated from https://github.com/dotnet/coreclr/commit/
d41e5af3382d174d6e4db729390a787524a1cd70
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) (dotnet/coreclr#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 dotnet/coreclr#19537
Commit migrated from https://github.com/dotnet/coreclr/commit/
027d534ff6738ca0731321dc389da0153b7e9160
Morgan Brown [Wed, 29 Aug 2018 00:29:40 +0000 (17:29 -0700)]
Enable mixed mode assembly loading (dotnet/coreclr#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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
246ae784b826c79098a1b3967083c66187786197
Brian Sullivan [Tue, 28 Aug 2018 23:10:59 +0000 (16:10 -0700)]
Merge pull request dotnet/coreclr#19712 from briansull/remove-unused-arg
Removed unused argument 'evalAsgLhsInd' in Value Numbering
Commit migrated from https://github.com/dotnet/coreclr/commit/
68a1167f6d12ca10ce6ce6ec9d3951e59912e4ce
Bruce Forstall [Tue, 28 Aug 2018 22:39:01 +0000 (15:39 -0700)]
Merge pull request dotnet/coreclr#19716 from BruceForstall/Fix19715
Fix warning C4723 potential divide by zero
Commit migrated from https://github.com/dotnet/coreclr/commit/
85eece42ff277a53e065b44c5fc2ddf18870c456
Sergey Andreenko [Tue, 28 Aug 2018 22:24:09 +0000 (15:24 -0700)]
return NETClientPrimitives to the exluce list for all platforms (dotnet/coreclr#19717)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8d9b6f44fec1327930d71900bbc5bde03d44bdd4
Tanner Gooding [Tue, 28 Aug 2018 03:32:40 +0000 (20:32 -0700)]
Replacing the IsDstSrcSrcAVXInstruction jump table with a flag.
Commit migrated from https://github.com/dotnet/coreclr/commit/
041152e886b5f365554d8c062d3a49715a5bcf41
Tanner Gooding [Tue, 28 Aug 2018 03:32:09 +0000 (20:32 -0700)]
Replacing the IsDstDstSrcAVXInstruction jump table with a flag.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1cdced39f7eecf1f758837f7a2d9005770d45ae3
Jan Kotas [Tue, 28 Aug 2018 22:04:04 +0000 (15:04 -0700)]
Break into debugger on assertion failures (dotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
5e83757c500f9c26cac8da254e0fe9e3a7580390
Bruce Forstall [Tue, 28 Aug 2018 20:35:00 +0000 (13:35 -0700)]
Merge pull request dotnet/coreclr#19701 from BruceForstall/FixLinuxNonJitBuild
Fix Linux/x86 altjit
Commit migrated from https://github.com/dotnet/coreclr/commit/
1f5c48d10e97fb94aaf66efbfa1e989752a4ee02
Carol Eidt [Mon, 27 Aug 2018 21:04:19 +0000 (14:04 -0700)]
Handle multiReg COPY
On x86, `MUL_LONG` wasn't considered a multi-reg node, as it should be, so that when it gets spilled or copied, the additional register will be correctly handled.
Also, the ARM and X86 versions of genStoreLongLclVar should be identical and shared (neither version were handling the copy of a `MUL_LONG`).
Finally, fix the LSRA dumping of multi-reg nodes.
Fix dotnet/coreclr#19397
Commit migrated from https://github.com/dotnet/coreclr/commit/
9e55f6cf2c20945077974311be03951ce9eb346b
Simon Nattress [Tue, 28 Aug 2018 20:17:05 +0000 (13:17 -0700)]
Merge pull request dotnet/coreclr#19709 from acmyu/docs
R2RDump - Add tables describing which architectures have been tested
Commit migrated from https://github.com/dotnet/coreclr/commit/
7ae2759c7aefad1a0f10fc3debd5cd7d5bfc2765
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 dotnet/coreclr#19715
Commit migrated from https://github.com/dotnet/coreclr/commit/
ead7a76026c7704bfd570669b637495adbd5e92a
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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f3a02269df4184d1e8cde884048dc1df40e87a83
Andy Ayers [Tue, 28 Aug 2018 13:43:11 +0000 (06:43 -0700)]
fix build break when STUB_LOGGING is defined (dotnet/coreclr#19707)
Commit migrated from https://github.com/dotnet/coreclr/commit/
4a97250c8878cc507dd41a5d25ec73792c1d8ce6
Brian Robbins [Tue, 28 Aug 2018 04:27:57 +0000 (21:27 -0700)]
Add missing license headers. (dotnet/coreclr#19693)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1b92bb4ccb7c3deed5c2d3dedd55669e9ba9dd37
David Mason [Tue, 28 Aug 2018 04:27:03 +0000 (21:27 -0700)]
re-enable com for local gc (dotnet/coreclr#19681)
* re-enable com for local gc
* Use RefCountedHandleCallbacks instead of new api
Commit migrated from https://github.com/dotnet/coreclr/commit/
00ab7387d849da889ebf6aac432ec989091bacec
Amy Yu [Tue, 28 Aug 2018 04:03:47 +0000 (00:03 -0400)]
Add architectures supported table
Commit migrated from https://github.com/dotnet/coreclr/commit/
241f1ca3d58a23ea298a94a52b5afca7b2ebf136
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
9e18844d8a257561189ffda7ebdf3a21ba061fcd
Brian Robbins [Tue, 28 Aug 2018 01:22:10 +0000 (18:22 -0700)]
Remove reflection from RuntimeEventSource test. (dotnet/coreclr#19692)
Commit migrated from https://github.com/dotnet/coreclr/commit/
6975ff37ea866b4a9dc913f5d72d31b10fb40da9
Anirudh Agnihotry [Mon, 27 Aug 2018 04:03:12 +0000 (21:03 -0700)]
Using shared copy of registryvalueKind (dotnet/corefxdotnet/coreclr#31922)
* using local copy of registryvaluekind and advapi32
* Moving complete file to shared
* name changed
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
9272df6f658e6d2badbccd8abdbd75201de64863
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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
286b3e52b426d0f977fde9e49744ae2f3ffdf990
Andy Ayers [Mon, 27 Aug 2018 18:10:26 +0000 (11:10 -0700)]
Some fixes for the interpreter (dotnet/coreclr#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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
41f67dba85067e7c7c72b316a2cf29a4ec7d1e15
Egor Chesakov [Mon, 27 Aug 2018 18:00:01 +0000 (11:00 -0700)]
Deal with compilation warnings in JIT in cross-bitness scenario (dotnet/coreclr#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
Commit migrated from https://github.com/dotnet/coreclr/commit/
38d416dd613ad10ac69e624096615a18214b5e53
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 (dotnet/coreclr#31818)"
This reverts commit dotnet/coreclr@
21eb9aa89fae41b73f87c073abd95041ecf1b0e0.
Commit migrated from https://github.com/dotnet/coreclr/commit/
57cdf454b123a44ef8d5944f4022b9502ce52d8a
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 (dotnet/coreclr#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>
Commit migrated from https://github.com/dotnet/coreclr/commit/
809169e85b34484a347c2858f41ce72ccb02ac18
Amy [Sun, 26 Aug 2018 03:55:56 +0000 (20:55 -0700)]
R2RDump - Non-Windows machine code (dotnet/coreclr#19638)
* Get machine architecture for non-Windows images
* Update readme
* Throw exception if machine is invalid, output OS
* Capitalization
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d2ae2fc7f97f31fa2730fadfc56b832299fd9e0
Amy [Sun, 26 Aug 2018 03:55:29 +0000 (20:55 -0700)]
R2RDump - Fix errors caused by ExportedTypes rids in AvailableTypes section (dotnet/coreclr#19647)
* Fix error caused by exportedType in AvailableTypes section
* TypeDef and ExportedType can both have the same rid
* Use HashSet instead of Dictionary
Commit migrated from https://github.com/dotnet/coreclr/commit/
c08d352c637af95f23ad3f9eb62436b2865500a4
Amy [Sun, 26 Aug 2018 03:55:04 +0000 (20:55 -0700)]
R2RDump - Check disassembler support (dotnet/coreclr#19664)
* Determine if disasm is supported on architectures instead of match
* Readme changes
Commit migrated from https://github.com/dotnet/coreclr/commit/
d2b76e093c71f471b0eb59192c3f0b0d409410b1
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
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
e40f3a38766b93e05d9e2760bc084085a3c3d642
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
2a6d6e26105dbe223015b98788fdfd12311dfc6d
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
3c6a6701e631149960e60d5859fa33615839f06d
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