platform/upstream/coreclr.git
7 years agoMerge pull request #11832 from jashook/add_1_mod_1_case
Jarret Shook [Wed, 24 May 2017 20:37:59 +0000 (13:37 -0700)]
Merge pull request #11832 from jashook/add_1_mod_1_case

Add the case 1 % 1 to our bringup test

7 years ago[Arm64/Win] Revise JIT_MemSet (#11420)
Steve MacLean [Wed, 24 May 2017 18:31:44 +0000 (14:31 -0400)]
[Arm64/Win] Revise JIT_MemSet (#11420)

* [Arm64/Win] Revise JIT_MemSet

This is the Windows equivalent of #11217 which merged

* [Arm64/Win] Use csel<con> for csel

MS Assembler expects csel<cond> for the csel instruction

7 years ago[x86/Linux] Thread-safe UMThunkMarshInfo::RunTimeInit (#11864)
Jonghyun Park [Wed, 24 May 2017 17:34:59 +0000 (02:34 +0900)]
[x86/Linux] Thread-safe UMThunkMarshInfo::RunTimeInit (#11864)

7 years agoILLink performance: Disable Roslyn Test
Swaroop Sridhar [Tue, 23 May 2017 21:33:36 +0000 (14:33 -0700)]
ILLink performance: Disable Roslyn Test

Temporarily disable roslyn test, since it is failing in the lab.

7 years agoScale back [Serializable] on CoreCLR types (#11765)
Morgan Brown [Wed, 24 May 2017 00:11:24 +0000 (17:11 -0700)]
Scale back [Serializable] on CoreCLR types (#11765)

Removes SerializableAttribute from CoreCLR types not intended to be serializable as well as adding special handling to MulticastDelegate to prevent serializing delegates (which can't be correctly serialized cross platform/runtime).

7 years agoReturn early if EventPipeBuffer is empty. (#11855)
Brian Robbins [Tue, 23 May 2017 23:11:44 +0000 (16:11 -0700)]
Return early if EventPipeBuffer is empty. (#11855)

7 years agoDelete special handling of IJW RVA fields at NGen time (#11818)
Jan Kotas [Tue, 23 May 2017 22:09:03 +0000 (15:09 -0700)]
Delete special handling of IJW RVA fields at NGen time (#11818)

Mixed mode managed C++ is not supported by CoreCLR so this is not needed for anything.

Fixes #11761

7 years agoMerge pull request #11694 from JosephTremoulet/IconHoist
Joseph Tremoulet [Tue, 23 May 2017 21:57:56 +0000 (17:57 -0400)]
Merge pull request #11694 from JosephTremoulet/IconHoist

Don't hoist IConHandle statics above cctors

7 years agoAdd the case 1 % 1 to our bringup test
jashook [Tue, 23 May 2017 16:50:33 +0000 (09:50 -0700)]
Add the case 1 % 1 to our bringup test

Addresses lack of coverage shown in #7168.

7 years agoMerge pull request #11366 from ruben-ayrapetyan/remove-zap-code-relocs-for-linux...
Bruce Forstall [Tue, 23 May 2017 16:38:03 +0000 (09:38 -0700)]
Merge pull request #11366 from ruben-ayrapetyan/remove-zap-code-relocs-for-linux-arm32

Change relocations in ngen-ed code with PC-relative constants for Linux ARM32

7 years agoMerge pull request #10275 from mikedn/x86-cmp-long-lower
Pat Gavlin [Tue, 23 May 2017 15:29:45 +0000 (08:29 -0700)]
Merge pull request #10275 from mikedn/x86-cmp-long-lower

Lower long compares that are materialized into a register

7 years agoRemove "corerun" sos plugin command. (#11812)
Mike McLaughlin [Tue, 23 May 2017 15:01:25 +0000 (08:01 -0700)]
Remove "corerun" sos plugin command. (#11812)

It broke building on debug osx and isn't used or needed anymore.

7 years agoDirect mapping of IL-assembly images that don't contain writeable sections.
Ruben Ayrapetyan [Wed, 5 Apr 2017 18:08:32 +0000 (21:08 +0300)]
Direct mapping of IL-assembly images that don't contain writeable sections.

7 years agoExtract PEImage::CreateLayoutMapped and PEImage::CreateLayoutFlat from PEImage::GetLa...
Ruben Ayrapetyan [Fri, 7 Apr 2017 10:25:42 +0000 (13:25 +0300)]
Extract PEImage::CreateLayoutMapped and PEImage::CreateLayoutFlat from PEImage::GetLayoutInternal.

7 years agoMerge pull request #10990 from mikedn/narrow-test
Pat Gavlin [Tue, 23 May 2017 06:09:25 +0000 (23:09 -0700)]
Merge pull request #10990 from mikedn/narrow-test

Narrow TEST instructions when possible

7 years agoDelete long compare support from x86 codegen
Mike Danes [Sun, 19 Mar 2017 12:57:19 +0000 (14:57 +0200)]
Delete long compare support from x86 codegen

7 years agoLower long compares that are materialized into a register
Mike Danes [Sat, 18 Mar 2017 00:39:25 +0000 (02:39 +0200)]
Lower long compares that are materialized into a register

7 years agoIntroduce GT_CMP and GT_SETCC(condition)
Mike Danes [Sat, 18 Mar 2017 09:02:35 +0000 (11:02 +0200)]
Introduce GT_CMP and GT_SETCC(condition)

7 years agoUse sigInst.methInstCount != 0 to detect generic methods (#11780)
Michal Strehovský [Tue, 23 May 2017 01:27:19 +0000 (18:27 -0700)]
Use sigInst.methInstCount != 0 to detect generic methods (#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.

7 years agoMerge pull request #11810 from BruceForstall/FixUninitWarning
Bruce Forstall [Tue, 23 May 2017 00:51:45 +0000 (17:51 -0700)]
Merge pull request #11810 from BruceForstall/FixUninitWarning

Fix VC++ C4201 warning on desktop build

7 years agoMerge pull request #11797 from BruceForstall/CommonizeAdr
Bruce Forstall [Tue, 23 May 2017 00:51:22 +0000 (17:51 -0700)]
Merge pull request #11797 from BruceForstall/CommonizeAdr

Handle INS_adr in emitIns_R_L on both arm32 and arm64

7 years agoBump the version of the xUnit-Performance package (#11793)
José Rivero [Mon, 22 May 2017 23:50:05 +0000 (16:50 -0700)]
Bump the version of the xUnit-Performance package (#11793)

- In a previous PR this was reverted and broke the Profile On/Off perf runs

7 years agoQuiet warning C2220
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 #11800.

7 years agoFix VC++ C4201 warning on desktop build
Bruce Forstall [Mon, 22 May 2017 23:07:08 +0000 (16:07 -0700)]
Fix VC++ C4201 warning on desktop build

Fixes #11808

7 years agoFix off-by-one error
Joseph Tremoulet [Mon, 22 May 2017 21:23:50 +0000 (17:23 -0400)]
Fix off-by-one error

The code in loop hoisting visiting a comma for a static init helper call
and static field access tried to clear the childrenHoistable bit for the
field, but had an off-by-one error and was instead clearing the bit for
the helper call, which could lead to missed legal helper call hoists.
Update that code to simply assert that the flag is already set for the
field (using the correct index), which must be true since the check is
guarded by a check that childIsCctorDependent is true for it.

7 years agoRevert "Fixed tests build on Linux"
Russ Keldorph [Mon, 22 May 2017 18:24:09 +0000 (11:24 -0700)]
Revert "Fixed tests build on Linux"

7 years agoMerge pull request #11776 from parjong/fix/x86_STDMETHODCALLTYPE_as_cdecl
Bruce Forstall [Mon, 22 May 2017 20:08:42 +0000 (13:08 -0700)]
Merge pull request #11776 from parjong/fix/x86_STDMETHODCALLTYPE_as_cdecl

[x86/Linux] Set CDECL as STDMETHODCALLTYPE

7 years agoMerge pull request #11778 from hqueue/arm/ryujit/float_ld_st
Bruce Forstall [Mon, 22 May 2017 20:06:34 +0000 (13:06 -0700)]
Merge pull request #11778 from hqueue/arm/ryujit/float_ld_st

[RyuJIT/ARM32] Implement and add NYI assertion for load/store for float

7 years agoHandle INS_adr in emitIns_R_L on both arm32 and arm64
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

7 years agoMerge pull request #11750 from pgavlin/gh11734
Pat Gavlin [Mon, 22 May 2017 19:59:33 +0000 (12:59 -0700)]
Merge pull request #11750 from pgavlin/gh11734

Fix legality checks in SetRegOptionalForBinOp.

7 years agoUpdate Unix SafeHandle to throw NotFound correctly (#11757)
Jeremy Kuhne [Mon, 22 May 2017 19:49:08 +0000 (12:49 -0700)]
Update Unix SafeHandle to throw NotFound correctly (#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

7 years agoUse operator/operand size for legality checks.
Pat Gavlin [Mon, 22 May 2017 18:08:16 +0000 (11:08 -0700)]
Use operator/operand size for legality checks.

7 years agoMerge pull request #11542 from BruceForstall/RefactorXarchCodegen
Bruce Forstall [Mon, 22 May 2017 18:05:11 +0000 (11:05 -0700)]
Merge pull request #11542 from BruceForstall/RefactorXarchCodegen

Refactor xarch codegen

7 years ago[ARM32/RyuJIT] Enable passing struct argument that use stack only (#11541)
Hyeongseok Oh [Mon, 22 May 2017 16:42:10 +0000 (01:42 +0900)]
[ARM32/RyuJIT] Enable passing struct argument that use stack only (#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

7 years agoFix FieldDesc::GetExactFieldType when FieldDesc doesn't exactly represent the owner...
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 (#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.

7 years agoDelete default copy/move constructors and assignment operators of RelativePointer...
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. (#11745)

7 years agoRefactor genCodeForTreeNode for xarch to match arm32/arm64
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.

7 years agoMerge pull request #11710 from sjsinju/jump
Bruce Forstall [Mon, 22 May 2017 14:07:45 +0000 (07:07 -0700)]
Merge pull request #11710 from sjsinju/jump

[RyuJit/ARM32] Enable loading arguments when jump instruction

7 years agoReport Span/ReadOnlySpan intrinsics to RyuJIT (dotnet/corert#3669) (#11775)
dotnet bot [Mon, 22 May 2017 14:02:09 +0000 (07:02 -0700)]
Report Span/ReadOnlySpan intrinsics to RyuJIT (dotnet/corert#3669) (#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>
7 years ago[RyuJIT/ARM32] Implement and add NYI assertion for load/store for float
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>
7 years ago[x86/Linux] Use CDECL (instead of STDCALL) as STDMETHODCALLTYPE
Jonghyun Park [Tue, 16 May 2017 05:30:36 +0000 (14:30 +0900)]
[x86/Linux] Use CDECL (instead of STDCALL) as STDMETHODCALLTYPE

7 years agoMerge pull request #11526 from mskvortsov/MulLong
Bruce Forstall [Mon, 22 May 2017 05:09:20 +0000 (22:09 -0700)]
Merge pull request #11526 from mskvortsov/MulLong

[RyuJIT/ARM32] Enable GT_MUL_LONG codegen

7 years agoImplement HasSameMetadataDefinitionAs() on CoreCLR (#11774)
Atsushi Kanamori [Mon, 22 May 2017 04:52:23 +0000 (21:52 -0700)]
Implement HasSameMetadataDefinitionAs() on 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 #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.

7 years ago[RyuJit/ARM32] Enable loading arguments when jump instruction
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.

7 years agoMerge pull request #11718 from jashook/add_nyi_typ_struct_fast_tail_call
Jarret Shook [Sun, 21 May 2017 15:46:52 +0000 (08:46 -0700)]
Merge pull request #11718 from jashook/add_nyi_typ_struct_fast_tail_call

[*64] NYI: TYP_STRUCT, fastTailCall stack fixup

7 years agoRemove explicit passing of ConfigurationGroup=Release from pipebuild (#11751)
William Godbe [Sun, 21 May 2017 14:47:54 +0000 (07:47 -0700)]
Remove explicit passing of ConfigurationGroup=Release from pipebuild (#11751)

7 years agoFix ReadMemory error reading DSO link_map name. (#11759)
Mike McLaughlin [Sun, 21 May 2017 00:18:30 +0000 (17:18 -0700)]
Fix ReadMemory error reading DSO link_map name. (#11759)

7 years agoFix package Publish in official builds (#11767)
Gaurav Khanna [Sat, 20 May 2017 16:48:01 +0000 (09:48 -0700)]
Fix package Publish in official builds (#11767)

7 years ago[Arm64/Win] Revise JIT_MemCpy (#11261)
Steve MacLean [Sat, 20 May 2017 16:10:00 +0000 (12:10 -0400)]
[Arm64/Win] Revise JIT_MemCpy (#11261)

* [Arm64/Win] Revise JIT_MemCpy

This is the Windows equivalent of #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

7 years agoLinux/x86: Fix clang 4.0 build (#11610)
mskvortsov [Sat, 20 May 2017 14:51:54 +0000 (17:51 +0300)]
Linux/x86: Fix clang 4.0 build (#11610)

7 years agoMerge pull request #10453 from JosephTremoulet/ImplicitByRef
Joseph Tremoulet [Sat, 20 May 2017 13:52:46 +0000 (09:52 -0400)]
Merge pull request #10453 from JosephTremoulet/ImplicitByRef

Promote implicit-byref struct arguments

7 years agoNO_WRITE_BARRIER hasn't been used in ages and we don't think it will be used (#11762)
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 (#11762)

7 years agoMerge pull request #11521 from JosephTremoulet/SpanAssert
Joseph Tremoulet [Sat, 20 May 2017 02:25:50 +0000 (22:25 -0400)]
Merge pull request #11521 from JosephTremoulet/SpanAssert

Propagate assertions for more checked bounds

7 years ago[RyuJIT/ARM32] Fix src register trashing in genFloatToIntCast (#11644)
mskvortsov [Sat, 20 May 2017 01:23:58 +0000 (04:23 +0300)]
[RyuJIT/ARM32] Fix src register trashing in genFloatToIntCast (#11644)

RyuJIT/ARM32: Fix src register trashing in genFloatToIntCast

7 years agoDon't hoist IConHandle statics above cctors
Joseph Tremoulet [Wed, 17 May 2017 20:32:14 +0000 (16:32 -0400)]
Don't hoist IConHandle statics above cctors

These constants appear loop invariant, hence so do their dereferences
when a loop has no memory side-effects.  Add flag `GTF_ICON_INITCLASS`
similar to `GTF_FLD_INITCLASS`/`GTF_CLS_VAR_INITCLASS`, and use it to
prevent hoisting such references without also hoisting their static
init helper calls.

Resolves #11689

7 years agoMerge pull request #10946 from JosephTremoulet/RationalFlags
Joseph Tremoulet [Sat, 20 May 2017 00:20:12 +0000 (20:20 -0400)]
Merge pull request #10946 from JosephTremoulet/RationalFlags

Clear GTF_ASG from non-stores in rationalize

7 years agoMerge pull request #10532 from rartemev/fix_tests_build
Roman Artemev [Fri, 19 May 2017 23:30:23 +0000 (16:30 -0700)]
Merge pull request #10532 from rartemev/fix_tests_build

Made possible to build tests on Linux too

7 years ago[ARM32] Simplify getting aligment value when remorphing (#11709)
Hyeongseok Oh [Fri, 19 May 2017 23:12:09 +0000 (08:12 +0900)]
[ARM32] Simplify getting aligment value when remorphing (#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`

7 years agoTest build fixes for Linux
Roman Artemev [Wed, 8 Mar 2017 23:37:31 +0000 (15:37 -0800)]
Test build fixes for Linux

7 years agoMerge pull request dotnet/corert#3654 from dotnet/nmirror
Michal Strehovský [Fri, 19 May 2017 04:47:46 +0000 (21:47 -0700)]
Merge pull request dotnet/corert#3654 from dotnet/nmirror

Merge nmirror to master

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
7 years agoMerge pull request #11714 from hqueue/arm/ryujit/init_val
Bruce Forstall [Fri, 19 May 2017 22:50:10 +0000 (15:50 -0700)]
Merge pull request #11714 from hqueue/arm/ryujit/init_val

[RyuJIT/ARM32] Implement GT_INIT_VAL

7 years agoMerge pull request #11713 from mskvortsov/Ckfinite
Bruce Forstall [Fri, 19 May 2017 22:48:46 +0000 (15:48 -0700)]
Merge pull request #11713 from mskvortsov/Ckfinite

[RyuJIT/ARM32] Ckfinite codegen

7 years agoMerge pull request #11209 from erozenfeld/MorphCastNarrowing
Eugene Rozenfeld [Fri, 19 May 2017 22:38:04 +0000 (15:38 -0700)]
Merge pull request #11209 from erozenfeld/MorphCastNarrowing

Add missing opcodes for morph cast narrowing.

7 years agoMerge pull request #11680 from mskvortsov/CleanupLongNYIs
Bruce Forstall [Fri, 19 May 2017 22:36:41 +0000 (15:36 -0700)]
Merge pull request #11680 from mskvortsov/CleanupLongNYIs

[RyuJIT/ARM32] Clean up remaining GT_LONG NYIs

7 years agoMerge pull request #11643 from hqueue/arm/ryujit/cast_smalltype2float
Bruce Forstall [Fri, 19 May 2017 22:23:50 +0000 (15:23 -0700)]
Merge pull request #11643 from hqueue/arm/ryujit/cast_smalltype2float

[RyuJIT/ARM32] Enable casting from small int to float

7 years agoremove unnecessary return copy (#11133)
Fei Peng [Fri, 19 May 2017 22:00:57 +0000 (15:00 -0700)]
remove unnecessary return copy (#11133)

7 years agoMerge pull request #11700 from BruceForstall/CleanupGTFlags
Bruce Forstall [Fri, 19 May 2017 21:54:57 +0000 (14:54 -0700)]
Merge pull request #11700 from BruceForstall/CleanupGTFlags

Un-clang-format GTF_ flags

7 years agoMerge pull request #11594 from mikedn/lower-shift-mask
Bruce Forstall [Fri, 19 May 2017 21:47:45 +0000 (14:47 -0700)]
Merge pull request #11594 from mikedn/lower-shift-mask

Removes unnecessary shift count masking

7 years ago[ARM/Linux] Support unaligned struct read/write (#11290)
Jonghyun Park [Fri, 19 May 2017 21:26:27 +0000 (06:26 +0900)]
[ARM/Linux] Support unaligned struct read/write (#11290)

* [ARM/Linux] Support unaligned struct read

* Fix format error

* Support unaligned struct write

7 years agoMerge pull request #11011 from mikedn/imp-runtime-lookup
Bruce Forstall [Fri, 19 May 2017 21:20:39 +0000 (14:20 -0700)]
Merge pull request #11011 from mikedn/imp-runtime-lookup

Simplify runtime lookup tree

7 years agoMerge pull request #11720 from wtgodbe/BuildToolsCleanup
William Godbe [Fri, 19 May 2017 21:14:33 +0000 (14:14 -0700)]
Merge pull request #11720 from wtgodbe/BuildToolsCleanup

Clean up 2.0.0 BuildTools PR

7 years agoLSRA throughput tweaks (#11698)
Bruce Forstall [Fri, 19 May 2017 21:00:07 +0000 (14:00 -0700)]
LSRA throughput tweaks (#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%.

7 years agoImprove BitVecOps<>::Iter::NextElem (#11696)
Bruce Forstall [Fri, 19 May 2017 20:58:35 +0000 (13:58 -0700)]
Improve BitVecOps<>::Iter::NextElem (#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.

7 years agoMerge pull request #11746 from pgavlin/gh11733
Pat Gavlin [Fri, 19 May 2017 20:36:21 +0000 (20:36 +0000)]
Merge pull request #11746 from pgavlin/gh11733

Do not reverse operands for user-call intrinsics.

7 years agoRemove `GTF_REVERSE_OPS` from LIR. (#10698)
Pat Gavlin [Fri, 19 May 2017 19:45:45 +0000 (12:45 -0700)]
Remove `GTF_REVERSE_OPS` from LIR. (#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.

7 years agoFormat code.
Pat Gavlin [Fri, 19 May 2017 18:24:13 +0000 (11:24 -0700)]
Format code.

7 years agoFix legality checks in SetRegOptionalForBinOp.
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 #11734.

7 years agoSet StrongName=None for System.Private.CoreLib
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.

7 years agoMerge pull request #11741 from mskvortsov/FixUBFX
Bruce Forstall [Fri, 19 May 2017 18:09:03 +0000 (11:09 -0700)]
Merge pull request #11741 from mskvortsov/FixUBFX

[ARM32] Fix ubfx instruction encoding

7 years ago[*64] NYI: TYP_STRUCT, fastTailCall stack fixup
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.

7 years agoClean up 2.0.0 BuildTools PR
wtgodbe [Thu, 18 May 2017 18:22:42 +0000 (11:22 -0700)]
Clean up 2.0.0 BuildTools PR

7 years agoMerge pull request #10662 from helloguo/VectorConversion
Bruce Forstall [Fri, 19 May 2017 17:24:18 +0000 (10:24 -0700)]
Merge pull request #10662 from helloguo/VectorConversion

Add JIT intrinsics support for vector conversion on AMD64 and x86

7 years agoMerge pull request #11747 from weshaggard/UpdateSigning
Wes Haggard [Fri, 19 May 2017 17:22:49 +0000 (10:22 -0700)]
Merge pull request #11747 from weshaggard/UpdateSigning

Update signing for coreclr repo

7 years agoUpdate signing for coreclr repo
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

7 years agoDo not reverse operands for user-call intrinsics.
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.

7 years agoJIT: relax method attribute assertion check in devirtualization (#11730)
Andy Ayers [Fri, 19 May 2017 15:24:20 +0000 (08:24 -0700)]
JIT: relax method attribute assertion check in devirtualization (#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 #11619.

7 years ago[lldb-plugin] Include PAL headers instead of embedding it (#11705)
Jonghyun Park [Fri, 19 May 2017 15:17:27 +0000 (00:17 +0900)]
[lldb-plugin] Include PAL headers instead of embedding it (#11705)

7 years agoMerge pull request #11207 from JosephTremoulet/PreserveVN
Joseph Tremoulet [Fri, 19 May 2017 14:01:20 +0000 (10:01 -0400)]
Merge pull request #11207 from JosephTremoulet/PreserveVN

Preserve value numbers in gtSetEvalOrder

7 years agoEnable GDBJIT feature in Tizen armel CI (#11708)
Jiyoung Giuliana Yun [Fri, 19 May 2017 13:35:35 +0000 (22:35 +0900)]
Enable GDBJIT feature in Tizen armel CI (#11708)

Tizen basically requires GDBJIT enabled libraries.
Enable GDBJIT feature to prevent related build fail issues in advance.

7 years agoARM32: Fix ubfx instruction encoding.
Mikhail Skvortcov [Fri, 19 May 2017 07:53:48 +0000 (10:53 +0300)]
ARM32: Fix ubfx instruction encoding.

7 years agoRyuJIT/ARM32: enable ckfinite codegen.
Mikhail Skvortcov [Thu, 18 May 2017 13:21:55 +0000 (16:21 +0300)]
RyuJIT/ARM32: enable ckfinite codegen.

7 years ago[GDBJIT] Fix incomplete type build error (#11706)
Jonghyun Park [Fri, 19 May 2017 05:32:17 +0000 (14:32 +0900)]
[GDBJIT] Fix incomplete type build error (#11706)

7 years agoUpdate CoreFx to preview2-25319-01 (#11736)
dotnet bot [Fri, 19 May 2017 02:52:00 +0000 (19:52 -0700)]
Update CoreFx to preview2-25319-01 (#11736)

7 years agoMerge pull request #11724 from wtgodbe/FixJITCheckProjects
William Godbe [Thu, 18 May 2017 23:18:29 +0000 (16:18 -0700)]
Merge pull request #11724 from wtgodbe/FixJITCheckProjects

Fix & Re-enable JIT CheckProjects test

7 years agoMerge pull request #11728 from wtgodbe/RemoveWarnings
William Godbe [Thu, 18 May 2017 22:58:56 +0000 (15:58 -0700)]
Merge pull request #11728 from wtgodbe/RemoveWarnings

Get rid of double-import of Buildversion.targets

7 years agoGet rid of double-import of Buildversion.targets
wtgodbe [Thu, 18 May 2017 21:24:59 +0000 (14:24 -0700)]
Get rid of double-import of Buildversion.targets

7 years agoMerge pull request #11697 from DrewScoggins/FixRestoreIssue
Drew Scoggins [Thu, 18 May 2017 21:06:19 +0000 (14:06 -0700)]
Merge pull request #11697 from DrewScoggins/FixRestoreIssue

Fix Performance Runs

7 years agoFix & Re-enable JIT CheckProjects test
wtgodbe [Thu, 18 May 2017 20:12:12 +0000 (13:12 -0700)]
Fix & Re-enable JIT CheckProjects test

7 years agoFix Externally reported issue with are ETW logging messages (#11722)
Vance Morrison [Thu, 18 May 2017 20:00:27 +0000 (13:00 -0700)]
Fix Externally reported issue with are ETW logging messages (#11722)

Some of the string messages associated with our event are invalid in obvious ways.
External users found this during a review.   Trivial Fix.

7 years agoDisable Musicstore from ILLink test
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.