Mike Danes [Sat, 18 Mar 2017 00:39:25 +0000 (02:39 +0200)]
Lower long compares that are materialized into a register
Commit migrated from https://github.com/dotnet/coreclr/commit/
e5d76089a7af352759ed395ecc3c2e61bd6f9640
Mike Danes [Sat, 18 Mar 2017 09:02:35 +0000 (11:02 +0200)]
Introduce GT_CMP and GT_SETCC(condition)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7a4b14e5366bba52d188695c803c9e27e103d362
Michal Strehovský [Tue, 23 May 2017 01:27:19 +0000 (18:27 -0700)]
Use sigInst.methInstCount != 0 to detect generic methods (dotnet/coreclr#11780)
`methInstCount` is the thing that RyuJIT uses to detect generic virtual
methods in another place. `CORINFO_CALLCONV_GENERIC` reporting was added
because nobody knew about `methInstCount`. We already report
`methodInstCount` in CoreRT. We can delete a couple of lines on the
CoreRT side by switching to this scheme.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b7751d55b3f584e118c0dcba3ede6ed752c1175c
Bruce Forstall [Tue, 23 May 2017 00:51:45 +0000 (17:51 -0700)]
Merge pull request dotnet/coreclr#11810 from BruceForstall/FixUninitWarning
Fix VC++ C4201 warning on desktop build
Commit migrated from https://github.com/dotnet/coreclr/commit/
e2b4629d8cd3c11f93f787f80b469cbed955b74d
Bruce Forstall [Tue, 23 May 2017 00:51:22 +0000 (17:51 -0700)]
Merge pull request dotnet/coreclr#11797 from BruceForstall/CommonizeAdr
Handle INS_adr in emitIns_R_L on both arm32 and arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
7db329b4b7faf0d75849712b2a70c0f107119540
José Rivero [Mon, 22 May 2017 23:50:05 +0000 (16:50 -0700)]
Bump the version of the xUnit-Performance package (dotnet/coreclr#11793)
- In a previous PR this was reverted and broke the Profile On/Off perf runs
Commit migrated from https://github.com/dotnet/coreclr/commit/
2711964dd0f60cafcaceec40097ffdbdf522f64d
Joseph Tremoulet [Mon, 22 May 2017 21:27:30 +0000 (17:27 -0400)]
Quiet warning C2220
This warning reports "potentially uninitialized local variable
`fieldOffset` used". The use is guarded by a check on `fieldHnd` being
non-null, and `fieldOffset` gets initialized properly on all paths that
set `fieldHnd` to something other than null, so the fix is simply to
initialize `fieldOffset` to 0 at its declaration so the compiler won't
complain.
Resolves dotnet/coreclr#11800.
Commit migrated from https://github.com/dotnet/coreclr/commit/
acfbd811e8a107f15085b32a9d30f3148d044e00
Bruce Forstall [Mon, 22 May 2017 23:07:08 +0000 (16:07 -0700)]
Fix VC++ C4201 warning on desktop build
Fixes dotnet/coreclr#11808
Commit migrated from https://github.com/dotnet/coreclr/commit/
12f387850d90d0580e23c9da498242ccf2ce0161
Russ Keldorph [Mon, 22 May 2017 18:24:09 +0000 (11:24 -0700)]
Revert "Fixed tests build on Linux"
Commit migrated from https://github.com/dotnet/coreclr/commit/
a16a8a852077b0c471cf12ef75dc5e8a41333533
Bruce Forstall [Mon, 22 May 2017 20:08:42 +0000 (13:08 -0700)]
Merge pull request dotnet/coreclr#11776 from parjong/fix/x86_STDMETHODCALLTYPE_as_cdecl
[x86/Linux] Set CDECL as STDMETHODCALLTYPE
Commit migrated from https://github.com/dotnet/coreclr/commit/
c41d51e46069b3b21b8a0361688e2557586f353c
Bruce Forstall [Mon, 22 May 2017 20:06:34 +0000 (13:06 -0700)]
Merge pull request dotnet/coreclr#11778 from hqueue/arm/ryujit/float_ld_st
[RyuJIT/ARM32] Implement and add NYI assertion for load/store for float
Commit migrated from https://github.com/dotnet/coreclr/commit/
21deb6f87b1b8edaedae3a1c9a4adf73547f4ca9
Bruce Forstall [Mon, 22 May 2017 18:34:15 +0000 (11:34 -0700)]
Handle INS_adr in emitIns_R_L on both arm32 and arm64
Commit migrated from https://github.com/dotnet/coreclr/commit/
48794652d5077bce1f759df58b1550941717fb56
Pat Gavlin [Mon, 22 May 2017 19:59:33 +0000 (12:59 -0700)]
Merge pull request dotnet/coreclr#11750 from pgavlin/gh11734
Fix legality checks in SetRegOptionalForBinOp.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6be915a5aa21e4639bdcd0a228a7f8e851420dd7
Jeremy Kuhne [Mon, 22 May 2017 19:49:08 +0000 (12:49 -0700)]
Update Unix SafeHandle to throw NotFound correctly (dotnet/coreclr#11757)
* Update Unix SafeHandle to throw NotFound correctly
Need to match Windows semantics for missing files. This means throwing
FileNotFound only if the last segment of the path can't be found.
* Dispose handle and trim ending separator properly
Commit migrated from https://github.com/dotnet/coreclr/commit/
a2329cb926774ef13b09c377f1c866f68718e2aa
Pat Gavlin [Mon, 22 May 2017 18:08:16 +0000 (11:08 -0700)]
Use operator/operand size for legality checks.
Commit migrated from https://github.com/dotnet/coreclr/commit/
af72bc4055d1a2e079081c091dd733e1b64987e9
Bruce Forstall [Mon, 22 May 2017 18:05:11 +0000 (11:05 -0700)]
Merge pull request dotnet/coreclr#11542 from BruceForstall/RefactorXarchCodegen
Refactor xarch codegen
Commit migrated from https://github.com/dotnet/coreclr/commit/
9efaad4d382c1fc98d3196725c9fc2082618abd3
Hyeongseok Oh [Mon, 22 May 2017 16:42:10 +0000 (01:42 +0900)]
[ARM32/RyuJIT] Enable passing struct argument that use stack only (dotnet/coreclr#11541)
* [ARM32/RyuJIT] Enable passing struct argument that use stack only
Enable passing struct argument when it uses stack only.
Cannot pass splitted struct argument that uses stack and register(s) yet.
* Remove redundant GC type assignment and fix internal register count
- Remove redundant GC type assignment in genPutArgStk
- Fix internal register count for ARM32: 2 -> 1
Commit migrated from https://github.com/dotnet/coreclr/commit/
4349824ed5da261f408042a6a023e080ff3e71db
Igor Kulaychuk [Mon, 22 May 2017 16:30:40 +0000 (19:30 +0300)]
Fix FieldDesc::GetExactFieldType when FieldDesc doesn't exactly represent the owner type (dotnet/coreclr#10941)
* Fix FieldDesc::GetExactFieldType when FieldDesc doesn't exactly represent the owner type
To get the exact type from FieldDesc, field signature should point past the calling convention.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5493b8439dca2ada6e912716e035654b16685bb1
Ruben Ayrapetyan [Mon, 22 May 2017 14:38:20 +0000 (17:38 +0300)]
Delete default copy/move constructors and assignment operators of RelativePointer and RelativeFixupPointer. (dotnet/coreclr#11745)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3c76c1fff9473f8a0051907453c7e1902a6c3647
Bruce Forstall [Fri, 12 May 2017 06:39:39 +0000 (23:39 -0700)]
Refactor genCodeForTreeNode for xarch to match arm32/arm64
Almost all code in genCodeForTreeNode() has been placed in
separate functions, that match the names of function for
arm32/arm64.
Commit migrated from https://github.com/dotnet/coreclr/commit/
36f1c6a3ebf1ed510f310f2e91af753d93b5ad3e
Bruce Forstall [Mon, 22 May 2017 14:07:45 +0000 (07:07 -0700)]
Merge pull request dotnet/coreclr#11710 from sjsinju/jump
[RyuJit/ARM32] Enable loading arguments when jump instruction
Commit migrated from https://github.com/dotnet/coreclr/commit/
c63b9fbdfefeae9a769a432c7e3410730ad2ee36
dotnet bot [Mon, 22 May 2017 14:02:09 +0000 (07:02 -0700)]
Report Span/ReadOnlySpan intrinsics to RyuJIT (dotnet/corertdotnet/coreclr#3669) (dotnet/coreclr#11775)
This lets RyuJIT optimize range checks on Span same way as it does for
arrays.
* Annotate the intrinsics
* Uncomment them in the table
* Report `sigInst` for all intrinsics
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
fda098cb13d5b86cdf95a1da542e22581f64e929
Hyung-Kyu Choi [Mon, 22 May 2017 07:03:26 +0000 (16:03 +0900)]
[RyuJIT/ARM32] Implement and add NYI assertion for load/store for float
- Implement load/store for float where address is [base + index * scale]
- Add NYI assertion for not implemented cases to enable AltJit
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
dfca51c6392c9218189afef4f6ae926d1f3d22a6
Jonghyun Park [Tue, 16 May 2017 05:30:36 +0000 (14:30 +0900)]
[x86/Linux] Use CDECL (instead of STDCALL) as STDMETHODCALLTYPE
Commit migrated from https://github.com/dotnet/coreclr/commit/
d25366cbf3831a058e32491b472df629c72d2d8b
Bruce Forstall [Mon, 22 May 2017 05:09:20 +0000 (22:09 -0700)]
Merge pull request dotnet/coreclr#11526 from mskvortsov/MulLong
[RyuJIT/ARM32] Enable GT_MUL_LONG codegen
Commit migrated from https://github.com/dotnet/coreclr/commit/
554f0af07567230bc8baef37231e9b68243f8e81
Atsushi Kanamori [Mon, 22 May 2017 04:52:23 +0000 (21:52 -0700)]
Implement HasSameMetadataDefinitionAs() on CoreCLR (dotnet/coreclr#11774)
This api was approved here:
https://github.com/dotnet/corefx/issues/5884
and is a necessary step to fixing the System.Dynamic.Runtime.Tests
failure:
https://github.com/dotnet/corefx/issues/19895
which is caused by Microsoft.CSharp trying to do the impossible
and emulate this api without GetMetadataToken() support.
This approach opts for the most straightforward and efficient
implementation without any special-casing for weird situations
(this is also what Microsoft.CSharp implements today as
well as what someone else trying to trampoline members
across generic instantaitions is like to do.)
This results in the following behavior for these
corner cases. With the possible exception of dotnet/coreclr#3,
I think they are tolerable enough to accept and codify:
1. "other" implemented by an entirely different Reflection
provider than "this".
Behavior:
returns false without invoking any methods on the
"other" Member.
To change it to throw an ArgumentException would
mean extra cast checks against the 6 possible
Runtime types (or having said RuntimeTypes implement
a sentinel interface.)
Given that HasSameMetadataDefinitionAs() is a
"looser cousin of Equals()" and "Equals()"
doesn't throw for objects from a different universe,
this seems reasonable.
2. Arrays, ByRefs, Pointers and Types from GetTypeFromCLSID()
Behavior:
Arrays, ByRefs, Pointers all return token 0x0600000
and so they'll return "true" wrt to each other (provided
both types are implemented by the same provider.)
CLSID types all return the typedef of __ComObject
so they'll return "true" wrt to each other.
The constructor exposed by CLSID types all return
the typedef of some constructor on __ComObject so
they'll return "true" wrt to each other.
I do not think these are interesting cases that merit
special handling. These types will never appear
in an enumeration of the members of a type. (The
fact that Reflection surfaces them in objects
that are assignable to MemberInfo is a structural
flaw in Reflection's object model.)
3. Synthesized constructors and methods on array types.
Behavior:
These methods all return 0x06000000 as a token
so the constructors will all compare true wrt
each other, and likewise with the methods.
This is a bit crummy though it's not clear
what the "right" policy should look like.
I could be persuaded to throw NotSupported
for these, to leave the possibility open
for a better story later. On the other hand,
I wouldn't demand it either.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c557fcbdce2d339c9215eecd987ddab6621529cd
sjsujinkim [Thu, 18 May 2017 10:27:26 +0000 (19:27 +0900)]
[RyuJit/ARM32] Enable loading arguments when jump instruction
There was no code generation for GT_JMP node on ARM32. So it has made 'NYI: Unimplemented node type jump' message.
That was implemented as genJmpMethod() on other archtectures.
It is about loading arguments node when jump instruction. and the implementation of that for ARM64 seems not much different from that.
So it just merged genJmpMethod from codegenarm64.cpp to codegenarmarch.cpp after some modification.
Commit migrated from https://github.com/dotnet/coreclr/commit/
29c9d67d421072b78d3304b7b5ccc83328dbcc83
Jarret Shook [Sun, 21 May 2017 15:46:52 +0000 (08:46 -0700)]
Merge pull request dotnet/coreclr#11718 from jashook/add_nyi_typ_struct_fast_tail_call
[*64] NYI: TYP_STRUCT, fastTailCall stack fixup
Commit migrated from https://github.com/dotnet/coreclr/commit/
9a6125d007152407087998f63cef236280c75639
William Godbe [Sun, 21 May 2017 14:47:54 +0000 (07:47 -0700)]
Remove explicit passing of ConfigurationGroup=Release from pipebuild (dotnet/coreclr#11751)
Commit migrated from https://github.com/dotnet/coreclr/commit/
dbffcebfad4f947981b4f0b7cbaed858386d8304
Mike McLaughlin [Sun, 21 May 2017 00:18:30 +0000 (17:18 -0700)]
Fix ReadMemory error reading DSO link_map name. (dotnet/coreclr#11759)
Commit migrated from https://github.com/dotnet/coreclr/commit/
265b30d1f4a9d7d93741003f4fca3f3b9ddd3558
Gaurav Khanna [Sat, 20 May 2017 16:48:01 +0000 (09:48 -0700)]
Fix package Publish in official builds (dotnet/coreclr#11767)
Commit migrated from https://github.com/dotnet/coreclr/commit/
199a53af4ee3b564ae569c79ff2881acfd612879
Steve MacLean [Sat, 20 May 2017 16:10:00 +0000 (12:10 -0400)]
[Arm64/Win] Revise JIT_MemCpy (dotnet/coreclr#11261)
* [Arm64/Win] Revise JIT_MemCpy
This is the Windows equivalent of dotnet/coreclr#11143 which merged
* [Arm64/Win] Use b<cond> instead of newer b.<cond>
Looks like Windows arm64 assembler does not support the newer assembly mnemonic
Commit migrated from https://github.com/dotnet/coreclr/commit/
f33807f6e5e3086d85e53969a9bbfff4bd7f631d
mskvortsov [Sat, 20 May 2017 14:51:54 +0000 (17:51 +0300)]
Linux/x86: Fix clang 4.0 build (dotnet/coreclr#11610)
Commit migrated from https://github.com/dotnet/coreclr/commit/
4f8be95166a30ea7c0b1d6aed4ef424ee47c425a
Joseph Tremoulet [Sat, 20 May 2017 13:52:46 +0000 (09:52 -0400)]
Merge pull request dotnet/coreclr#10453 from JosephTremoulet/ImplicitByRef
Promote implicit-byref struct arguments
Commit migrated from https://github.com/dotnet/coreclr/commit/
989d1a2872d469cba9cc600b07f26553a7beabbf
Maoni Stephens [Sat, 20 May 2017 04:51:52 +0000 (21:51 -0700)]
NO_WRITE_BARRIER hasn't been used in ages and we don't think it will be used (dotnet/coreclr#11762)
Commit migrated from https://github.com/dotnet/coreclr/commit/
35f5c097986c53050225bc590c41fa55e5776d85
Joseph Tremoulet [Sat, 20 May 2017 02:25:50 +0000 (22:25 -0400)]
Merge pull request dotnet/coreclr#11521 from JosephTremoulet/SpanAssert
Propagate assertions for more checked bounds
Commit migrated from https://github.com/dotnet/coreclr/commit/
4908b1422412210caa52bdb6a20871287adf43e7
mskvortsov [Sat, 20 May 2017 01:23:58 +0000 (04:23 +0300)]
[RyuJIT/ARM32] Fix src register trashing in genFloatToIntCast (dotnet/coreclr#11644)
RyuJIT/ARM32: Fix src register trashing in genFloatToIntCast
Commit migrated from https://github.com/dotnet/coreclr/commit/
19c652b65aef29f8cb2b8aacdb3bbd3afba958e2
Joseph Tremoulet [Sat, 20 May 2017 00:20:12 +0000 (20:20 -0400)]
Merge pull request dotnet/coreclr#10946 from JosephTremoulet/RationalFlags
Clear GTF_ASG from non-stores in rationalize
Commit migrated from https://github.com/dotnet/coreclr/commit/
a96445ddc2c487b4adf79edd1d90a1646f2120dc
Roman Artemev [Fri, 19 May 2017 23:30:23 +0000 (16:30 -0700)]
Merge pull request dotnet/coreclr#10532 from rartemev/fix_tests_build
Made possible to build tests on Linux too
Commit migrated from https://github.com/dotnet/coreclr/commit/
a940cf1c37a64a086733bbcb85532e88572bc96e
Hyeongseok Oh [Fri, 19 May 2017 23:12:09 +0000 (08:12 +0900)]
[ARM32] Simplify getting aligment value when remorphing (dotnet/coreclr#11709)
* [ARM32] Skip getting aligment when remorphing
Skip aligment computation in morphing phase when remorphing
It simplify getting alignment value for struct
morphed to FIELD_LIST in ARM32/RyuJIT
* Move comment
Move comment about `InferOpSizeAlign`
Commit migrated from https://github.com/dotnet/coreclr/commit/
075a2d6f382e370dee1ae73b66bca28c827cc4c5
Roman Artemev [Wed, 8 Mar 2017 23:37:31 +0000 (15:37 -0800)]
Test build fixes for Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
aad6903366ed6d70f218b92bfc762feb29a73773
Michal Strehovský [Fri, 19 May 2017 04:47:46 +0000 (21:47 -0700)]
Merge pull request dotnet/corertdotnet/coreclr#3654 from dotnet/nmirror
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
52bd52bb06bd268915aff0180eb7f1c53ee57a60
Bruce Forstall [Fri, 19 May 2017 22:50:10 +0000 (15:50 -0700)]
Merge pull request dotnet/coreclr#11714 from hqueue/arm/ryujit/init_val
[RyuJIT/ARM32] Implement GT_INIT_VAL
Commit migrated from https://github.com/dotnet/coreclr/commit/
c7758583122ceff2deb6e60dd3381486d7d71504
Bruce Forstall [Fri, 19 May 2017 22:48:46 +0000 (15:48 -0700)]
Merge pull request dotnet/coreclr#11713 from mskvortsov/Ckfinite
[RyuJIT/ARM32] Ckfinite codegen
Commit migrated from https://github.com/dotnet/coreclr/commit/
401830dc508f9ead140f078e05669ff696b68687
Eugene Rozenfeld [Fri, 19 May 2017 22:38:04 +0000 (15:38 -0700)]
Merge pull request dotnet/coreclr#11209 from erozenfeld/MorphCastNarrowing
Add missing opcodes for morph cast narrowing.
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf55af2f4c6c29832efe5eeb44f75ff3317ac022
Bruce Forstall [Fri, 19 May 2017 22:36:41 +0000 (15:36 -0700)]
Merge pull request dotnet/coreclr#11680 from mskvortsov/CleanupLongNYIs
[RyuJIT/ARM32] Clean up remaining GT_LONG NYIs
Commit migrated from https://github.com/dotnet/coreclr/commit/
e4c36745745c62c4670be709dc6fb7941e0dcf4c
Bruce Forstall [Fri, 19 May 2017 22:23:50 +0000 (15:23 -0700)]
Merge pull request dotnet/coreclr#11643 from hqueue/arm/ryujit/cast_smalltype2float
[RyuJIT/ARM32] Enable casting from small int to float
Commit migrated from https://github.com/dotnet/coreclr/commit/
39a69f0002bb6758dfc76772872661f4292325f9
Fei Peng [Fri, 19 May 2017 22:00:57 +0000 (15:00 -0700)]
remove unnecessary return copy (dotnet/coreclr#11133)
Commit migrated from https://github.com/dotnet/coreclr/commit/
866ce9448b095492bf30ae2381744cef0bdb0adc
Bruce Forstall [Fri, 19 May 2017 21:54:57 +0000 (14:54 -0700)]
Merge pull request dotnet/coreclr#11700 from BruceForstall/CleanupGTFlags
Un-clang-format GTF_ flags
Commit migrated from https://github.com/dotnet/coreclr/commit/
19a68e00295bd1599389b8dea4f57e80dcecb2cd
Bruce Forstall [Fri, 19 May 2017 21:47:45 +0000 (14:47 -0700)]
Merge pull request dotnet/coreclr#11594 from mikedn/lower-shift-mask
Removes unnecessary shift count masking
Commit migrated from https://github.com/dotnet/coreclr/commit/
9abc52673e5db02939615d34aa7f565d9868e215
Jonghyun Park [Fri, 19 May 2017 21:26:27 +0000 (06:26 +0900)]
[ARM/Linux] Support unaligned struct read/write (dotnet/coreclr#11290)
* [ARM/Linux] Support unaligned struct read
* Fix format error
* Support unaligned struct write
Commit migrated from https://github.com/dotnet/coreclr/commit/
aedce4461460371a858656fc79aeb0934bfc5cde
Bruce Forstall [Fri, 19 May 2017 21:20:39 +0000 (14:20 -0700)]
Merge pull request dotnet/coreclr#11011 from mikedn/imp-runtime-lookup
Simplify runtime lookup tree
Commit migrated from https://github.com/dotnet/coreclr/commit/
1ec8901e1a8e0f452f43589aa5dce6fa0a7fb7c6
William Godbe [Fri, 19 May 2017 21:14:33 +0000 (14:14 -0700)]
Merge pull request dotnet/coreclr#11720 from wtgodbe/BuildToolsCleanup
Clean up 2.0.0 BuildTools PR
Commit migrated from https://github.com/dotnet/coreclr/commit/
7c41871f582fedc751ee6cabd95df3fbad36d847
Bruce Forstall [Fri, 19 May 2017 21:00:07 +0000 (14:00 -0700)]
LSRA throughput tweaks (dotnet/coreclr#11698)
Convert LinearScan::getVarReg() to take a tracked var index, not varNum
Change LSRA to create Intervals only for tracked variables
Change getIntervalForLocalVar() to take a tracked variable index.
Create getIntervalForLocalVarNode()
This reduces instruction count of superpmi replay over minopts tests by 0.6%.
Commit migrated from https://github.com/dotnet/coreclr/commit/
25472eeb5db62ba18a5763a32fd693aa836b6e23
Bruce Forstall [Fri, 19 May 2017 20:58:35 +0000 (13:58 -0700)]
Improve BitVecOps<>::Iter::NextElem (dotnet/coreclr#11696)
* Improve BitVecOps<>::Iter::NextElem
Tweak the implementation, to reduce the number of instructions
executed in the hot path.
Also, don't pass "env" to NextElem; it can be stored by Init()
if required. For non-inlined calls, this saves setting up one
argument.
Use a `m_bsEnd` end condition. This eliminates the need to handle
short/long differently, and reduces conditions when updating
the current bits to iterate over in the long case.
Overall, pin shows this reduces instruction count of superpmi over
a minopts test run by 2.6% (NextElem is very hot).
Also, fix BitSetAsUInt64 NextElem() iterator: It should store and updated
its own bit count, and not depend on the value passed in to be the
correct latest bit count.
Commit migrated from https://github.com/dotnet/coreclr/commit/
698a89e6e2d6866666dd942bdf7506f96fb8310e
Pat Gavlin [Fri, 19 May 2017 20:36:21 +0000 (20:36 +0000)]
Merge pull request dotnet/coreclr#11746 from pgavlin/gh11733
Do not reverse operands for user-call intrinsics.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6ce65bd1bc1570e4e37b6f6c7c5acb640e6dcac5
Pat Gavlin [Fri, 19 May 2017 19:45:45 +0000 (12:45 -0700)]
Remove `GTF_REVERSE_OPS` from LIR. (dotnet/coreclr#10698)
In HIR, this flag indicates that the second operand to a binary node will execute before
the node's first operand. LIR, however, no longer determines ordering via use edges, so
this flag only affects the order in which operands to a node are considered. The sole
constraint on this use ordering is that for a given node, the same ordering must be used
in liveness, LSRA, and the code generator; this is due to the correspondence between
use ordering and spill/reload/last-use ordering. As a result, the reverse ops flag is
unnecessary and rather unhelpful in LIR, causing little more than a bit of extra complexity
throughout the backend.
This change removes `GTF_REVERSE_OPS` from LIR by clearing this flag during rationalize
and verifying that it remains clear in `LIR::CheckLIR`. We could reuse this bit for an
additional backend-specific purpose in the future with a bit more work in the checker.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f993896e20cb303deb7f5c4021901446f07dd7df
Pat Gavlin [Fri, 19 May 2017 18:24:13 +0000 (11:24 -0700)]
Format code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9be51dbffd1569c0227f71f8ddd80d0d1cf6700f
Pat Gavlin [Fri, 19 May 2017 18:17:22 +0000 (11:17 -0700)]
Fix legality checks in SetRegOptionalForBinOp.
It is not legal to make an operand register optional on xarch if the type
of the operand is narrower than the type of the operator and the contents
of the upper bits are not known to be zero. `SetRegOptionalForBinOp` was
not considering the case where `op1` was legal but `op2` was the preferred
register-optional operand and was illegal.
Fixes dotnet/coreclr#11734.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a018c4839f43bbab7345edd7506bb618d6ed5503
Wes Haggard [Fri, 19 May 2017 17:59:39 +0000 (10:59 -0700)]
Set StrongName=None for System.Private.CoreLib
We don't ship the managed version of System.Private.CoreLib so
it doesn't need a strong name signature. We always crossgen it
so it is native.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dde23243ab8ca1626d918a6143e7717c58246459
Bruce Forstall [Fri, 19 May 2017 18:09:03 +0000 (11:09 -0700)]
Merge pull request dotnet/coreclr#11741 from mskvortsov/FixUBFX
[ARM32] Fix ubfx instruction encoding
Commit migrated from https://github.com/dotnet/coreclr/commit/
5a6747acd4dac2b7470da1d52c0e13ab8a85e5f8
jashook [Mon, 15 May 2017 17:52:46 +0000 (10:52 -0700)]
[*64] NYI: TYP_STRUCT, fastTailCall stack fixup
This will add an NYI for AMD64 and Arm64 during fastTailCall stack fixup which requires
a temp. Currently this code path is very difficult to execute for the case of TYP_STRUCT
because we will have already created copies of structs that are passed on the stack
during morph. The NYI will avoid silent bad codegen in the case that we make changes in
earlier stages that will force this code path to hit.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dbe79a89dfe23e912fab0dccdfc136178e7fe9d1
wtgodbe [Thu, 18 May 2017 18:22:42 +0000 (11:22 -0700)]
Clean up 2.0.0 BuildTools PR
Commit migrated from https://github.com/dotnet/coreclr/commit/
40151f7f049643d8945a1bb712701b7ce80f5384
Bruce Forstall [Fri, 19 May 2017 17:24:18 +0000 (10:24 -0700)]
Merge pull request dotnet/coreclr#10662 from helloguo/VectorConversion
Add JIT intrinsics support for vector conversion on AMD64 and x86
Commit migrated from https://github.com/dotnet/coreclr/commit/
7a755987c3ceee405a1457df4bff9ac6f4218eda
Wes Haggard [Fri, 19 May 2017 17:22:49 +0000 (10:22 -0700)]
Merge pull request dotnet/coreclr#11747 from weshaggard/UpdateSigning
Update signing for coreclr repo
Commit migrated from https://github.com/dotnet/coreclr/commit/
61722c9b0b1eb4d49432b8ba77934d5a1dcfb600
Wes Haggard [Fri, 19 May 2017 17:18:04 +0000 (10:18 -0700)]
Update signing for coreclr repo
Make sign.builds consistent with corefx and only add strongname
signatures for managed assemblies and not native assemblies
Commit migrated from https://github.com/dotnet/coreclr/commit/
bf28e963adf6b162e6cab58a09d81f675d2f68c9
Pat Gavlin [Fri, 19 May 2017 16:33:20 +0000 (09:33 -0700)]
Do not reverse operands for user-call intrinsics.
Maintaining reversed execution order for such nodes is problematic when
these intrinsics are rewritten into calls during rationalize.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d520bc1408067ff96fbcaac8d13dbde46fe04f5a
Andy Ayers [Fri, 19 May 2017 15:24:20 +0000 (08:24 -0700)]
JIT: relax method attribute assertion check in devirtualization (dotnet/coreclr#11730)
The jit may see `CORINFO_FLG_DONT_INLINE` change between the time it
first reads a method's attributes and the time it re-reads it, since
jitting on some other thread may have deduced the method as noinline
in between the two reads. This bit doesn't affect devirtualization
and so the bit change is harmless.
Tolerate this by masking out this flag bit when comparing attributes.
No changes to generated code.
Closes dotnet/coreclr#11619.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ef108aed7ba01e916b3b13c78f4641d6df2c3919
Jonghyun Park [Fri, 19 May 2017 15:17:27 +0000 (00:17 +0900)]
[lldb-plugin] Include PAL headers instead of embedding it (dotnet/coreclr#11705)
Commit migrated from https://github.com/dotnet/coreclr/commit/
525e94134e21fe83ea7c34714d564ad3b8c2fe6b
Joseph Tremoulet [Fri, 19 May 2017 14:01:20 +0000 (10:01 -0400)]
Merge pull request dotnet/coreclr#11207 from JosephTremoulet/PreserveVN
Preserve value numbers in gtSetEvalOrder
Commit migrated from https://github.com/dotnet/coreclr/commit/
d1c816414563a352802d56c953a0a656b5ea6542
Jiyoung Giuliana Yun [Fri, 19 May 2017 13:35:35 +0000 (22:35 +0900)]
Enable GDBJIT feature in Tizen armel CI (dotnet/coreclr#11708)
Tizen basically requires GDBJIT enabled libraries.
Enable GDBJIT feature to prevent related build fail issues in advance.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8789a2abbba0ad3153914cdb63828d4c129ad4e8
Mikhail Skvortcov [Fri, 19 May 2017 07:53:48 +0000 (10:53 +0300)]
ARM32: Fix ubfx instruction encoding.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f16d7b530377cbd9504e55f87d94e10b75850c72
Mikhail Skvortcov [Thu, 18 May 2017 13:21:55 +0000 (16:21 +0300)]
RyuJIT/ARM32: enable ckfinite codegen.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba04e23c8df4653e423630788aca1bda08f63fce
Jonghyun Park [Fri, 19 May 2017 05:32:17 +0000 (14:32 +0900)]
[GDBJIT] Fix incomplete type build error (dotnet/coreclr#11706)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a49500177d54b0592e330bee4e8e95994687716f
dotnet bot [Fri, 19 May 2017 02:52:00 +0000 (19:52 -0700)]
Update CoreFx to preview2-25319-01 (dotnet/coreclr#11736)
Commit migrated from https://github.com/dotnet/coreclr/commit/
01fe990e991a588bae3341a1f87469be91f4fe1d
William Godbe [Thu, 18 May 2017 23:18:29 +0000 (16:18 -0700)]
Merge pull request dotnet/coreclr#11724 from wtgodbe/FixJITCheckProjects
Fix & Re-enable JIT CheckProjects test
Commit migrated from https://github.com/dotnet/coreclr/commit/
e4b6873c3565e402c26eccae5e4e6f1cb1172925
William Godbe [Thu, 18 May 2017 22:58:56 +0000 (15:58 -0700)]
Merge pull request dotnet/coreclr#11728 from wtgodbe/RemoveWarnings
Get rid of double-import of Buildversion.targets
Commit migrated from https://github.com/dotnet/coreclr/commit/
983962491816a98acafdfffd0046455423ac26ae
wtgodbe [Thu, 18 May 2017 21:24:59 +0000 (14:24 -0700)]
Get rid of double-import of Buildversion.targets
Commit migrated from https://github.com/dotnet/coreclr/commit/
f2e56b4473213650ec949da19500136427314116
Drew Scoggins [Thu, 18 May 2017 21:06:19 +0000 (14:06 -0700)]
Merge pull request dotnet/coreclr#11697 from DrewScoggins/FixRestoreIssue
Fix Performance Runs
Commit migrated from https://github.com/dotnet/coreclr/commit/
c7f81da14a30b0f4159c8c37fc8f323ed24aa45d
wtgodbe [Thu, 18 May 2017 20:12:12 +0000 (13:12 -0700)]
Fix & Re-enable JIT CheckProjects test
Commit migrated from https://github.com/dotnet/coreclr/commit/
68c0f9e78aa1a838b9b823951ea623daf5d98ba4
Vance Morrison [Thu, 18 May 2017 20:00:27 +0000 (13:00 -0700)]
Fix Externally reported issue with are ETW logging messages (dotnet/coreclr#11722)
Some of the string messages associated with our event are invalid in obvious ways.
External users found this during a review. Trivial Fix.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4991b89e61db2af8234e75224726e403559328d8
Drew Scoggins [Thu, 18 May 2017 17:42:06 +0000 (10:42 -0700)]
Disable Musicstore from ILLink test
MusicStore is currently a very flaky scenario so for now I am disabling
the MusicStore test of ILLink. We will add this back when we move this
scenario test over to its own leg.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6830dfd607c0425b6231993c0eebd6de7df4a034
Tom Deseyn [Thu, 18 May 2017 15:27:02 +0000 (17:27 +0200)]
pal/configure.cmake: add missing HAVE_SCHED_AFFINITY (dotnet/coreclr#11711)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c353b8696c7b22cd1061387c6fd54704a78dbdb9
SaeHie Park [Thu, 18 May 2017 15:20:57 +0000 (00:20 +0900)]
Enable pow for arm/armel in tryrun (dotnet/coreclr#11703)
This will fix CoreFX System.Tests.MathFTests.Pow() failures
Commit migrated from https://github.com/dotnet/coreclr/commit/
dcce7af910646ed566ddc769d6981158ab27a22a
Mikhail Skvortcov [Wed, 17 May 2017 11:25:08 +0000 (14:25 +0300)]
RyuJIT/ARM32: Cleanup remaining GT_LONG NYIs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5b99c869ca9782b6b5f4d5a28ccad239430e1d2d
Hyung-Kyu Choi [Thu, 18 May 2017 12:39:43 +0000 (21:39 +0900)]
[RyuJIT/ARM32] Implement GT_INIT_VAL
Introduce same logic of xarch and arm64 to arm32.
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
16b439e1bbbe02686a946a5bf4eef244194225e9
Jonghyun Park [Thu, 18 May 2017 03:34:39 +0000 (12:34 +0900)]
Use relevant define for resumable frame SP handling (and update ifdef condition) (dotnet/coreclr#11253)
* Use relevant define instead of explicit _TARGET_XXX_
m_pvResumableFrameTargetSP-related implementations in the stack walker
are explicitly ifdefed by _TARGET_XXX_.
This commit introduces relevant define (RECORD_RESUMABLE_FRAME_SP) and
uses it to ifdef relevant implementations.
This commit does not introduce any behavior changes.
* Update ifdef condition
Commit migrated from https://github.com/dotnet/coreclr/commit/
16955080066a1f114d615eaef161f5dbbee353cd
Jonghyun Park [Thu, 18 May 2017 03:34:05 +0000 (12:34 +0900)]
[x86/Linux] Port 'DacUnwindStackFrame' (dotnet/coreclr#11666)
* [x86/Linux] Implement 'DacUnwindStackFrame'
* Update ContextPointers using ContextRecord
* An attempt to fix x86/Windows build error
Commit migrated from https://github.com/dotnet/coreclr/commit/
be98fe4989e33273005504425cb4922aa0587b11
Jonghyun Park [Thu, 18 May 2017 03:30:52 +0000 (12:30 +0900)]
[x86/Linux] Fix undefined references on SOS (dotnet/coreclr#11701)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e33facae6baeb5f14c242ba83112b72d205db911
Jan Kotas [Thu, 18 May 2017 01:25:05 +0000 (18:25 -0700)]
Finish deleting dead CAS code from CoreLib (dotnet/coreclr#11436)
Fixes dotnet/coreclr#9321 and deletes CleanupToDoList.cs
Delete unmanaged security implementation
Commit migrated from https://github.com/dotnet/coreclr/commit/
13e7c4368da664a8b50228b1a5ef01a660fbb2dd
William Godbe [Thu, 18 May 2017 00:48:15 +0000 (17:48 -0700)]
Merge pull request dotnet/coreclr#11690 from wtgodbe/IlTestsFix
Fix & re-enable failing Loader IL tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
c290deb3bd5331a5d70470e6203f2b4b2059bd90
Mike McLaughlin [Wed, 17 May 2017 22:39:25 +0000 (15:39 -0700)]
The createdump utility needs RPATH (dotnet/coreclr#11688)
To find the mscordaccore reference when run as a standalone utility. Works fine when launched from coreclr.
Issue dotnet/coreclr#11687
Commit migrated from https://github.com/dotnet/coreclr/commit/
509e423b163d2f18cdb9e026a4cf7a63c5c744a8
Drew Scoggins [Wed, 17 May 2017 22:35:36 +0000 (15:35 -0700)]
Fix Performance Runs
This fixes the performance runs to work with the new 2.0 build tools
package that we just took.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c8d2707c8456c9030c6c6649dffc050e7d5427cc
Carol Eidt [Wed, 17 May 2017 21:53:50 +0000 (14:53 -0700)]
Merge pull request dotnet/coreclr#11660 from CarolEidt/LSRACleanup
LSRA Cleanup
Commit migrated from https://github.com/dotnet/coreclr/commit/
753a7445d7fb2e27b40d1ab9c570b9ca0cbe3a90
Sergey Andreenko [Wed, 17 May 2017 20:34:09 +0000 (13:34 -0700)]
merger takes MC file names as UTF16 names. (dotnet/coreclr#11506)
There were problems with:
1. Arabick and Japanese symbols in CLR_SH;
2. Long MC names.
We didn't see these problem before, because we moved all MC files and
renamed them with short numbers names.
Now if we want to:
1. avoid MC files copying;
2. save information that is encoded in this names for spmi diff between
different collections
we want this fix.
Commit migrated from https://github.com/dotnet/coreclr/commit/
520a426df0eda248106a8eb7a261ed1b71e5802a
wtgodbe [Wed, 17 May 2017 20:07:28 +0000 (13:07 -0700)]
Fix & re-enable failing Loader IL tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
1b96e44e96165afba1145445d10e11515c099d67
Gaurav Khanna [Wed, 17 May 2017 19:06:49 +0000 (12:06 -0700)]
Move master to 2.1 Preview1 (dotnet/coreclr#11662)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d9dd6041fa1ca2b56dd6af6e4947bd4ad8b72489
Pat Gavlin [Wed, 17 May 2017 17:02:31 +0000 (10:02 -0700)]
Merge pull request dotnet/coreclr#11684 from pgavlin/FixPushdBalance
Remove a couple mistaken calls to popd.
Commit migrated from https://github.com/dotnet/coreclr/commit/
bd93a8213e76ad2c2fc2f89241d95d51aba469d7
Pat Gavlin [Wed, 17 May 2017 16:29:00 +0000 (09:29 -0700)]
Remove a couple mistaken calls to popd.
These calls were causing individual test runs to fail if other
directories were on the stack.
Commit migrated from https://github.com/dotnet/coreclr/commit/
defd9e16bbc98cd69815821650062ab9a102ab1c
Jonghyun Park [Wed, 17 May 2017 14:37:01 +0000 (23:37 +0900)]
Fix CreateDump-related undefined reference on non-AMD64/Linux platforms (dotnet/coreclr#11635)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9b9c245549cf7bab23e62989951eaf74efed10b1