platform/upstream/coreclr.git
7 years agoFix incremental build of mscordaccore (#9982)
Jan Vorlicek [Tue, 7 Mar 2017 21:41:22 +0000 (22:41 +0100)]
Fix incremental build of mscordaccore (#9982)

* Fix incremental build of mscordaccore

This change sets up proper dependency for the mscordaccore build and stops
using PRE_LINK command which is executed always.
The way it solves the problem is that it creates an object library from the
mscordac.cpp and then lets the mscordaccore.exp be generated from that object
and finally use both that object library and the mscordaccore.exp while building
mscordaccore.

7 years agoMerge pull request #9992 from adiaaida/fixjit32testing
Michelle McDaniel [Tue, 7 Mar 2017 19:24:10 +0000 (11:24 -0800)]
Merge pull request #9992 from adiaaida/fixjit32testing

Fix jit32 perf and throughput testing

7 years agoFix jit32 perf and throughput testing
Michelle McDaniel [Mon, 6 Mar 2017 22:21:15 +0000 (14:21 -0800)]
Fix jit32 perf and throughput testing

For jit32, we need to download the compatjit to make sure we are using a
jit32 build, not legacy backend (which is what is built when we run a
regular build out of coreclr). This change updates the groovy scripting to
pull down the jit nuget package that contains compatjit.

Until the packaging is fixed (#9991), we are defaulting to the last
package that packaged compatjit along with clrjit.

7 years agoMerge pull request #9996 from BruceForstall/FixCallFunFormatting
Bruce Forstall [Tue, 7 Mar 2017 19:14:00 +0000 (11:14 -0800)]
Merge pull request #9996 from BruceForstall/FixCallFunFormatting

Un-clang-format-horrible-ify emitIns_Call() and genEmitCall()

7 years ago[x86/Linux] CDECL as default P/Invoke Calling Convetion (#9977)
Jonghyun Park [Tue, 7 Mar 2017 11:27:35 +0000 (20:27 +0900)]
[x86/Linux] CDECL as default P/Invoke Calling Convetion (#9977)

* [x86/Linux] CDECL as default P/Invoke Calling Convetion

7 years agoEnhance ICU version scan (#9993)
Jan Vorlicek [Tue, 7 Mar 2017 11:03:08 +0000 (12:03 +0100)]
Enhance ICU version scan (#9993)

The scanning that tries to find locally installed ICU version was not
considering the case when only ICU library files with major version
component were present (like libicuuc.so.52). This is a rare case that
I've seen so far only when people built and installed ICU manually.
But it is worth to add checks for such case as a fallback, which is
what this change does.
I have also added checks for minorVersion and subVersion being -1 when
trying to detect the symbol versioning used. While the pre-existing code
would still work fine, it would unnecessarily try nonsensical version.

7 years ago[x86/Linux] Fix incorrect FP values (#9975)
Hanjoung Lee [Tue, 7 Mar 2017 08:57:29 +0000 (17:57 +0900)]
[x86/Linux] Fix incorrect FP values (#9975)

* [x86/Linux] Fix incorrect FP values

Restoring FP by CallerSP could be incorrect for nested EH.
Now that we have #9820, we can use current context for 1st pass of EH.

Fix #9848

7 years agoMerge pull request #9995 from BruceForstall/FixNetciForceRelocs
Bruce Forstall [Tue, 7 Mar 2017 07:34:31 +0000 (23:34 -0800)]
Merge pull request #9995 from BruceForstall/FixNetciForceRelocs

Add missing "break" in a forcerelocs case

7 years agoHarden resolveVirtualMethod against invalid types (#9989)
Andy Ayers [Tue, 7 Mar 2017 03:31:24 +0000 (19:31 -0800)]
Harden resolveVirtualMethod against invalid types (#9989)

Split resolveVirtualMethod into a wrapper/helper to allow early
returns as failure reasons are discovered.

Before devirtualizing, ensure that the derived class claimed by the jit
is really a subclass of the class that introduces the virtual method.
Fail early if this is not the case.

Also add early out for interface call devirtualization. The jit currently
does not ask for this but asking for it should not trigger an assert.

Closes #9945 (along with #9959).

7 years ago[x86/Linux] Check Stack Alignment in StubRareEnable/StubRareDisableTHROW (#9925)
Jonghyun Park [Tue, 7 Mar 2017 01:31:47 +0000 (10:31 +0900)]
[x86/Linux] Check Stack Alignment in StubRareEnable/StubRareDisableTHROW (#9925)

7 years agoMerge pull request #9986 from wtgodbe/XunitWrapperGranularity
William Godbe [Tue, 7 Mar 2017 00:36:06 +0000 (16:36 -0800)]
Merge pull request #9986 from wtgodbe/XunitWrapperGranularity

Create Xunit wrappers for 2nd-level test directories instead of top-level

7 years agoFix ICU detection in System.Globalization.Native build (#9990)
Jan Vorlicek [Tue, 7 Mar 2017 00:35:14 +0000 (01:35 +0100)]
Fix ICU detection in System.Globalization.Native build (#9990)

The config.cmake was not getting the ICU library paths it requires to
build a code that detects presence of the ucol_setMaxVariable.
I have excluded the libraries detection from the CMakeLists.txt
some time ago since they are not used in the build itself anymore,
but I have not realized that they are needed for this detection
script that's included from the CMakeLists.txt.

7 years agoUn-clang-format-horrible-ify emitIns_Call() and genEmitCall()
Bruce Forstall [Tue, 7 Mar 2017 00:29:58 +0000 (16:29 -0800)]
Un-clang-format-horrible-ify emitIns_Call() and genEmitCall()

7 years agoAdd missing "break" in a forcerelocs case
Bruce Forstall [Tue, 7 Mar 2017 00:22:07 +0000 (16:22 -0800)]
Add missing "break" in a forcerelocs case

7 years agoMerge pull request #9991 from adiaaida/fixx86NugetPackageCreation
Michelle McDaniel [Mon, 6 Mar 2017 23:25:57 +0000 (15:25 -0800)]
Merge pull request #9991 from adiaaida/fixx86NugetPackageCreation

Change PackagePlatform to Platform for x86 jit pkg

7 years agoChange PackagePlatform to Platform for x86 jit pkg
Michelle McDaniel [Mon, 6 Mar 2017 22:36:19 +0000 (14:36 -0800)]
Change PackagePlatform to Platform for x86 jit pkg

PackagePlatform was removed in 8dcf9665feabee339029c79b9d86dd24c71905d1,
but the x86 jit package props file was never updated to not use that
property. This change updates the props file to use Platform instead of
PackagePlatform to make sure we package compatjit.dll for x86.

7 years agoCreate Xunit wrappers for 2nd-level test directories instead of top-level
wtgodbe [Mon, 6 Mar 2017 21:44:21 +0000 (13:44 -0800)]
Create Xunit wrappers for 2nd-level test directories instead of top-level

7 years agoImplementation for Dictionary.TryAdd (#9923)
James Ko [Mon, 6 Mar 2017 18:44:34 +0000 (13:44 -0500)]
Implementation for Dictionary.TryAdd (#9923)

* Add Dictionary.TryAdd

* Fix the conflicts for real

* Remove branch from Add(TKey, TValue)

* Tweak naming

* Remove a slow assert

* PR feedback

7 years agoMerge pull request #9398 from mikedn/switch-cast
Sivarv [Mon, 6 Mar 2017 18:25:03 +0000 (10:25 -0800)]
Merge pull request #9398 from mikedn/switch-cast

Change switch value widening

7 years agoAdd stripSymbols argument; refactor symbol package build (#9664)
Davis Goodin [Mon, 6 Mar 2017 17:40:56 +0000 (11:40 -0600)]
Add stripSymbols argument; refactor symbol package build (#9664)

* Add argument to explicitly enable symbol stripping

* Refactor symbol package build

* Remove unnecessary native file distinctions

* Remove unnecessary WindowsSymbolFile step

7 years ago[x86/Linux] Stack align aware unwinder (#9928)
Jonghyun Park [Mon, 6 Mar 2017 11:31:37 +0000 (20:31 +0900)]
[x86/Linux] Stack align aware unwinder (#9928)

7 years agoDelete a few more unused hosting methods (#9973)
Jan Kotas [Mon, 6 Mar 2017 05:58:13 +0000 (21:58 -0800)]
Delete a few more unused hosting methods (#9973)

7 years agoAdd 3PN for GCBench (#9971)
Rich Lander [Mon, 6 Mar 2017 02:09:31 +0000 (18:09 -0800)]
Add 3PN for GCBench (#9971)

7 years agoAdd 3PN entry for Livermore Loops coded in C (#9972)
Rich Lander [Mon, 6 Mar 2017 02:09:17 +0000 (18:09 -0800)]
Add 3PN entry for Livermore Loops coded in C (#9972)

7 years agoRemove hosting methods that always return false (#9930)
Austin Wise [Mon, 6 Mar 2017 01:51:40 +0000 (17:51 -0800)]
Remove hosting methods that always return false (#9930)

* Remove CLRIoCompletionHosted as it always returns false.
* Remove CLRSyncHosted as it always returns false.
* Remove CLRMemoryHosted as it always returns false.
* Remove CLRTaskHosted as it always returns false.
* Remove CLRAssemblyHosted, CLRGCHosted,and CLRSecurityHosted.
They are not called.
* Remove IsThreadPoolHosted as it always returns false.
* Remove EnterRuntime and LeaveRuntime, as they do nothing.
* Add back calls to RevertIfImpersonated and GCX_PREEMP.

I accidentally deleted the call to RevertIfImpersonated instead of just
removing an extra parameter.

When I removed the HR_LEAVE_RUNTIME_HOLDER macro from windowsruntime.h,
I not only removed a LeaveRuntimeHolder but also a GCX_PREEMP. So I added
it back. The holder and GCX_PREEMP where only inserted when the
FEATURE_LEAVE_RUNTIME_HOLDER macro was defined. Since it is always defined,
I removed it. Also as I understand it, you would always want to have a
GCX_PREEMP before calling into the Windows API as not to block the GC,
so I'm not sure why you would want to disable it.

7 years agoDelete IsNonW8PFrameworkAPI checks (#9964)
Jan Kotas [Mon, 6 Mar 2017 01:27:36 +0000 (17:27 -0800)]
Delete IsNonW8PFrameworkAPI checks (#9964)

Dead code in CoreCLR

7 years agoAdd 3PN for Burgers equation (#9966)
Rich Lander [Sun, 5 Mar 2017 22:55:57 +0000 (14:55 -0800)]
Add 3PN for Burgers equation (#9966)

- Thanks to @taumuon for licensing the test, per our request!
- License is MIT.

7 years agoJIT: change codgen for dup to not lose type information
Andy Ayers [Sat, 4 Mar 2017 04:01:52 +0000 (20:01 -0800)]
JIT: change codgen for dup to not lose type information

The jit has traditionally optimized most cases of a

   zz; dup; stloc.x

sequence into

   zz; stloc.x; ldloc.x

with a comment noting that this makes the resulting compiler IR
more amenable to CSE. Here zz is any IL operation that pushes
a value on the stack. However if zz's result is a ref type, the
dup'ed value produced by zz may be a subtype of the type of the
local x, so this transformation can lose type information.

In the past the loss of type information hasn't mattered, but now if
zz subsequently is used as the this object in a virtual call, the jit
may attempt devirtualization and ask an ill-posed question to the VM,
claiming the type of the this object is an impossible supertype.

This changes modifies the transformation by introducing a new local temp y
that has the type of zz. The result is now

   zz; stloc.y; ldloc.y; ldloc.y; stloc.x

with the net result that a ldloc.y is left on the stack with the proper
type. As an optimization, if zz is ldloc.z then the expansion is simply

   zz (ldloc.z); ldloc.z; stloc.y

and if zz is a simple "cheap" constant (say ldnull) then the constant
expression is duplicated:

   zz (ldnull); ldnull; stloc.y

This resolves the jit side of #9945. Further work is needed on the VM
side since in unverifiable IL there may be other cases where the jit
can present an impossible type.

Diffs from this were minor and in many cases small improvements.

7 years agoRemove ComVisible as per #9371 (#9962)
Paul Westcott [Sun, 5 Mar 2017 05:32:12 +0000 (16:32 +1100)]
Remove ComVisible as per #9371 (#9962)

When lazy was merged, this change was lost.

7 years agoRemove unused bbAssertionKill (#9957)
mikedn [Sat, 4 Mar 2017 17:58:56 +0000 (19:58 +0200)]
Remove unused bbAssertionKill (#9957)

7 years agoUpdate glossary.md (#9951)
Adeel Mujahid [Sat, 4 Mar 2017 17:50:24 +0000 (19:50 +0200)]
Update glossary.md (#9951)

* Added the definitions for AOT, UTC and UWP.
* Made R2R as the initialism with 'Read-to-Run' its abbreviation.
* Fixed a typo: contributers -> contributors.
* Format as Term-Description markdown table.

7 years agoExtending optimized JIT helpers to Buffer.MemoryCopy (#9786)
Varun Venkatesan [Sat, 4 Mar 2017 17:24:30 +0000 (09:24 -0800)]
Extending optimized JIT helpers to Buffer.MemoryCopy (#9786)

7 years agoMove System.Lazy to shared CoreLib partition (#9955)
Jan Kotas [Sat, 4 Mar 2017 08:40:56 +0000 (00:40 -0800)]
Move System.Lazy to shared CoreLib partition (#9955)

7 years agoMerge pull request #9954 from tannergooding/fcall
Tanner Gooding [Sat, 4 Mar 2017 06:26:26 +0000 (22:26 -0800)]
Merge pull request #9954 from tannergooding/fcall

Updating `COMSingle` in `classlibnative` to use the appropriate FCALL declarations.

7 years agoRemove unreferenced file (#9952)
Alex Perovich [Sat, 4 Mar 2017 05:44:12 +0000 (23:44 -0600)]
Remove unreferenced file (#9952)

7 years agoAlternative System.Lazy implementation (#8963)
Paul Westcott [Sat, 4 Mar 2017 03:14:02 +0000 (14:14 +1100)]
Alternative System.Lazy implementation (#8963)

* Remove use of lock for PublicationOnly

This involves a little bit of trickery. In avoiding the lock we need to
go from m_implementation as PublicationOnly to null in a single step. We
can't do this though without another object, so we reuse out Lazy
object, which basically just spins its wheels until the value is ready.
This shouldn't be a very common scenerio (i.e. hitting that code path)
but it is possible.

* Minimize additional object creation

Storing factory in Lazy object, and passing Lazy as a parameter to
ILazyItem functions. This means that None & PublicationOnly now need no
creation of secondary object.

* Remove Func<T> for default constructor invoking

Fixing startup performance concerns

* Moved non-generic functionality out of Lazy

...and into a helper class

* Expression-bodied functions

7 years agoFixing the FCALL 'common gotchas' comment to clarify that it applies to all types...
Tanner Gooding [Sat, 4 Mar 2017 03:08:33 +0000 (19:08 -0800)]
Fixing the FCALL 'common gotchas' comment to clarify that it applies to all types that are not passable via register in __fastcall.

7 years agoUpdating `COMSingle` in `classlibnative` to use the appropriate FCALL Declarations.
Tanner Gooding [Sat, 4 Mar 2017 02:56:56 +0000 (18:56 -0800)]
Updating `COMSingle` in `classlibnative` to use the appropriate FCALL Declarations.

7 years ago[x86/Linux] Clean up pContext access (#9933)
Jonghyun Park [Fri, 3 Mar 2017 23:57:35 +0000 (08:57 +0900)]
[x86/Linux] Clean up pContext access (#9933)

* [x86/Linux] Clean up pContext access

* Fix ARM/Windows build error

7 years ago[x86/Linux] Revise VirtualMethodFixupStub (#9929)
Jonghyun Park [Fri, 3 Mar 2017 23:56:06 +0000 (08:56 +0900)]
[x86/Linux] Revise VirtualMethodFixupStub (#9929)

* [x86/Linux] Revise VirtualMethodFixupStub

7 years agoClean up Normalization code (#9941)
Tarek Mahmoud Sayed [Fri, 3 Mar 2017 22:50:38 +0000 (14:50 -0800)]
Clean up Normalization code (#9941)

7 years agoMerge pull request #9942 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Fri, 3 Mar 2017 21:32:05 +0000 (13:32 -0800)]
Merge pull request #9942 from dotnet-bot/master-UpdateDependencies

Update CoreClr to beta-25103-03 (master)

7 years agoSupport local stack unwinding on Android (#9940)
Frederik Carlier [Fri, 3 Mar 2017 21:16:55 +0000 (22:16 +0100)]
Support local stack unwinding on Android (#9940)

7 years agoMerge pull request #9773 from mikedn/user-range-check
Joseph Tremoulet [Fri, 3 Mar 2017 20:28:57 +0000 (15:28 -0500)]
Merge pull request #9773 from mikedn/user-range-check

Generate OAK_NO_THROW assertions from (uint)i < (uint)a.len checks

7 years agoAdd 3PN entries (#9943)
Rich Lander [Fri, 3 Mar 2017 19:04:42 +0000 (11:04 -0800)]
Add 3PN entries (#9943)

* Fix spelling

* Add 3PN for SciMark

* Add ByteMark 3PN entry

* Remove Microsoft copyright

* Add 3PN for Richards benchmark

7 years agoMerge pull request #9873 from mskvortsov/ryujit-arm32-long
Bruce Forstall [Fri, 3 Mar 2017 18:55:06 +0000 (10:55 -0800)]
Merge pull request #9873 from mskvortsov/ryujit-arm32-long

[RyuJIT/ARM32][WIP] Enable CG for long nodes

7 years agoAdd/improve assertion propagation comments
Mike Danes [Fri, 3 Mar 2017 17:23:33 +0000 (19:23 +0200)]
Add/improve assertion propagation comments

7 years agoUpdate CoreClr to beta-25103-03
dotnet-bot [Fri, 3 Mar 2017 17:40:48 +0000 (17:40 +0000)]
Update CoreClr to beta-25103-03

7 years agoGenerate OAK_NO_THROW assertions from (uint)i < (uint)a.len checks
Mike Danes [Thu, 23 Feb 2017 06:45:02 +0000 (08:45 +0200)]
Generate OAK_NO_THROW assertions from (uint)i < (uint)a.len checks

If "(uint)i < (uint)a.len" is true then we know that "i" is always within bounds and so "a[i]" does not need a range check.

7 years agoRefactor JTRUE handling during assertion gen/prop
Mike Danes [Thu, 2 Mar 2017 21:45:45 +0000 (23:45 +0200)]
Refactor JTRUE handling during assertion gen/prop

- Pull JTRUE related code out of the inner loop of assertion gen to keep the loop small and simple
- Ignore JTRUE in the inner loop of assertion prop, there's nothing to propagate to or from it
- Avoid some unnecessary bitset clears and copies

7 years agoAdd tests for (uint)i < (uint)a.len generated assertions
Mike Danes [Thu, 2 Mar 2017 17:00:36 +0000 (19:00 +0200)]
Add tests for (uint)i < (uint)a.len generated assertions

7 years agoMerge pull request #9897 from hseok-oh/patch_rootfs
Gaurav Khanna [Fri, 3 Mar 2017 17:12:27 +0000 (09:12 -0800)]
Merge pull request #9897 from hseok-oh/patch_rootfs

[ARM32/Linux] Prepare rootfs to build libcoreclrtraceptprovider.so

7 years agoMerge pull request #9934 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Fri, 3 Mar 2017 17:07:12 +0000 (09:07 -0800)]
Merge pull request #9934 from dotnet-bot/master-UpdateDependencies

Update CoreClr to beta-25103-02 (master)

7 years agoUse CoreCLROverridePath property for CoreFx tests
Russ Keldorph [Thu, 2 Mar 2017 22:51:34 +0000 (14:51 -0800)]
Use CoreCLROverridePath property for CoreFx tests

Remove file copy hack and use the new msbuild property to allow
overriding the runtime when running CoreFx tests.

7 years agoFix license header for test (GitHub_1323) (#9931)
Andrey Akinshin [Fri, 3 Mar 2017 15:26:54 +0000 (20:26 +0500)]
Fix license header for test (GitHub_1323) (#9931)

7 years agoRyuJIT/ARM32: enable codegen for long nodes.
Mikhail Skvortcov [Fri, 3 Mar 2017 12:20:04 +0000 (15:20 +0300)]
RyuJIT/ARM32: enable codegen for long nodes.

7 years agoUpdate CoreClr to beta-25103-02
dotnet-bot [Fri, 3 Mar 2017 09:33:08 +0000 (09:33 +0000)]
Update CoreClr to beta-25103-02

7 years agoUpdate CoreClr to beta-25103-01 (#9927)
dotnet bot [Fri, 3 Mar 2017 05:37:23 +0000 (21:37 -0800)]
Update CoreClr to beta-25103-01 (#9927)

7 years agoMerge shared changes from corert and use C# shared project to enable VS editing ...
Alex Perovich [Fri, 3 Mar 2017 02:11:47 +0000 (20:11 -0600)]
Merge shared changes from corert and use C# shared project to enable VS editing (#9922)

7 years agoMerge pull request #9915 from BruceForstall/IncBuild1
Bruce Forstall [Fri, 3 Mar 2017 02:10:39 +0000 (18:10 -0800)]
Merge pull request #9915 from BruceForstall/IncBuild1

Fix AsmConstants.inc to be incrementally rebuilt as necessary

7 years agoMerge pull request #9921 from adityamandaleeka/rt_dump_changes
Aditya Mandaleeka [Fri, 3 Mar 2017 00:56:08 +0000 (16:56 -0800)]
Merge pull request #9921 from adityamandaleeka/rt_dump_changes

Fix error in dumpling text file cleanup

7 years agoFix AsmConstants.inc to be incrementally rebuilt as necessary
Bruce Forstall [Thu, 2 Mar 2017 18:23:21 +0000 (10:23 -0800)]
Fix AsmConstants.inc to be incrementally rebuilt as necessary

Previously, it was rebuilt on every build.

7 years agoMerge pull request #9917 from BruceForstall/BuildCrossAltJit
Bruce Forstall [Fri, 3 Mar 2017 00:17:41 +0000 (16:17 -0800)]
Merge pull request #9917 from BruceForstall/BuildCrossAltJit

Build cross-compile altjits for arm32 and arm64

7 years agoFix error in dumpling text file cleanup.
Aditya Mandaleeka [Thu, 2 Mar 2017 22:28:13 +0000 (14:28 -0800)]
Fix error in dumpling text file cleanup.

7 years agoBuild cross-compile altjits for arm32 and arm64
Bruce Forstall [Thu, 2 Mar 2017 17:14:52 +0000 (09:14 -0800)]
Build cross-compile altjits for arm32 and arm64

On x86, build an x86-host, arm32-target altjit.
On amd64, build an amd64-host, arm64-target altjit.

Each are named protononjit.dll, using our existing naming
convention (proto for "prototype", nonjit meaning the code
won't be executed).

Use these via:
```
set COMPlus_AltJit=*
set COMPlus_AltJitName=protononjit.dll
```
Of course, instead of `*`, you can use any function name.

They are very useful for debugging the JIT in a "nicer" environment
than the full native environment, especially if the full native
environment isn't complete, or if the tools (such as debuggers, editors)
are better in the cross environment than the native environment.

These are only built on Windows. It might be possible to build them
on Linux as well, but that will require some more build work.

7 years ago[x86/Linux] Add STDCALL for reverse P/Invoke delegates (#9909)
Evgeny Pavlov [Thu, 2 Mar 2017 21:27:36 +0000 (00:27 +0300)]
[x86/Linux] Add STDCALL for reverse P/Invoke delegates (#9909)

7 years ago[Linux][GDB-JIT] Fix lldb type displaying issues (#9906)
Igor Kulaychuk [Thu, 2 Mar 2017 20:41:09 +0000 (23:41 +0300)]
[Linux][GDB-JIT] Fix lldb type displaying issues (#9906)

* Make array data have fixed size of 1 element

* Add bounds info for multidimentional arrays

* Fix array element size for value types

* Fix ref types duplication in DWARF types cache map

* Add typedef for reference types

Example: make MyClass a typedef for __MyClass *

* Use type name with namespace in DWARF

* Fix duplication of typedef statements in DWARF

* Fix memory leak in ByteTypeInfo::DumpStrings

* Add typedefs for build-in types

7 years agoMerge pull request #9916 from dotnet-bot/from-tfs
Bruce Forstall [Thu, 2 Mar 2017 19:26:01 +0000 (11:26 -0800)]
Merge pull request #9916 from dotnet-bot/from-tfs

Merge changes from TFS

7 years agoAdd src\jit\protononjit directory to git mirror in preparation for future GitHub...
Bruce Forstall [Thu, 2 Mar 2017 19:23:20 +0000 (11:23 -0800)]
Add src\jit\protononjit directory to git mirror in preparation for future GitHub work

[tfs-changeset: 1649472]

7 years agoMerge pull request #9911 from dotnet-bot/master-UpdateDependencies
Stephen Toub [Thu, 2 Mar 2017 19:18:19 +0000 (14:18 -0500)]
Merge pull request #9911 from dotnet-bot/master-UpdateDependencies

Update CoreClr to beta-25102-03 (master)

7 years agoMerge pull request #9775 from adiaaida/addThroughputPerfTesting
Michelle McDaniel [Thu, 2 Mar 2017 19:06:53 +0000 (11:06 -0800)]
Merge pull request #9775 from adiaaida/addThroughputPerfTesting

Add Throughput Perf testing

7 years agoFix LDVIRTFTN case for GVM target methods (#9890)
Fadi Hanna [Thu, 2 Mar 2017 19:04:22 +0000 (11:04 -0800)]
Fix LDVIRTFTN case for GVM target methods (#9890)

* Fix LDVIRTFTN case for GVM target methods

7 years agoUpdate windows-instructions.md
Brian Sullivan [Thu, 2 Mar 2017 18:43:01 +0000 (10:43 -0800)]
Update windows-instructions.md

7 years agoRemoving ref T Span.GetItem and updating Indexer to return ref (#9787)
Ahson Ahmed Khan [Thu, 2 Mar 2017 18:13:13 +0000 (10:13 -0800)]
Removing ref T Span.GetItem and updating Indexer to return ref (#9787)

7 years agoUpdate CoreClr to beta-25102-03
dotnet-bot [Thu, 2 Mar 2017 17:28:13 +0000 (17:28 +0000)]
Update CoreClr to beta-25102-03

7 years agoMerge pull request #9894 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Thu, 2 Mar 2017 16:53:57 +0000 (08:53 -0800)]
Merge pull request #9894 from dotnet-bot/master-UpdateDependencies

Update CoreClr to beta-25102-02 (master)

7 years agoDevirtualize calls in some simple cases
Andy Ayers [Thu, 2 Mar 2017 03:47:18 +0000 (19:47 -0800)]
Devirtualize calls in some simple cases

Devirtualize calls where the this object type at a call site
is a subtype of the type described at the call site. Currently learns
types from local and arg references and a subset of other operators.

Will devirtualize if either the class or method is final (sealed in C#),
or if the type is known exactly (eg from a newobj).

Devirtualization is run twice, once during importation, and again in a
limited way after inlinining. Calls devirtualized during importation are
are subsequently eligible for inlining. Calls devirtualized during inlining
currently cannot be inlined.

7 years agoJit interface support for devirtualization
Andy Ayers [Mon, 30 Jan 2017 23:45:11 +0000 (15:45 -0800)]
Jit interface support for devirtualization

Add new method to jit interface so the jit can determine what derived
method might be called for a given base method, derived class pair.

Implement support in the VM and in other places (zap, spmi).

7 years ago[x86/Linux] Fix clang 3.9 build error (#9900)
Jonghyun Park [Thu, 2 Mar 2017 14:52:26 +0000 (23:52 +0900)]
[x86/Linux] Fix clang 3.9 build error (#9900)

7 years agoUpdate CoreClr to beta-25102-02
dotnet-bot [Thu, 2 Mar 2017 10:12:44 +0000 (10:12 +0000)]
Update CoreClr to beta-25102-02

7 years ago[x86/Linux] Initial filter support (#9820)
Jonghyun Park [Thu, 2 Mar 2017 09:58:55 +0000 (18:58 +0900)]
[x86/Linux] Initial filter support (#9820)

* [x86/Linux] Initial Filter Support

7 years agoRemove CLRThreadpoolHosted as it always returns false. (#9899)
Austin Wise [Thu, 2 Mar 2017 09:28:56 +0000 (01:28 -0800)]
Remove CLRThreadpoolHosted as it always returns false. (#9899)

7 years ago[x86/Linux] Clean up EXCEPTION_REGISTRATION_RECORD (#9895)
Jonghyun Park [Thu, 2 Mar 2017 07:50:11 +0000 (16:50 +0900)]
[x86/Linux] Clean up EXCEPTION_REGISTRATION_RECORD (#9895)

7 years agoTemporarily disabling SpanBench tests that use indexer setter. (#9896)
Ahson Ahmed Khan [Thu, 2 Mar 2017 07:49:08 +0000 (23:49 -0800)]
Temporarily disabling SpanBench tests that use indexer setter. (#9896)

7 years agoUpdate links to point to valid BotR pages - One extra link that was missed out (...
Matt Warren [Thu, 2 Mar 2017 06:57:52 +0000 (06:57 +0000)]
Update links to point to valid BotR pages - One extra link that was missed out (#9878)

7 years agoUse the correct class handle for fat call temporary (#9893)
Michal Strehovský [Thu, 2 Mar 2017 06:15:34 +0000 (22:15 -0800)]
Use the correct class handle for fat call temporary (#9893)

`clsHnd` is the class handle of the type that owns the method for
`opcode != CEE_CALLI`. We need the class handle for the method's
return type though.

This is ending up with RyuJIT asking weird questions over JitInterface
(`getClassGClayout` of a reference type).

Also removing a line that was added in #9191 to support the old code.

7 years ago[ARM32/Linux] Prepare rootfs to build libcoreclrtraceptprovider.so
Hyeongseok Oh [Thu, 2 Mar 2017 05:01:18 +0000 (14:01 +0900)]
[ARM32/Linux] Prepare rootfs to build libcoreclrtraceptprovider.so

Prepare rootfs to build libcoreclrtraceptprovider.so
by adding fix process of rootfs for ubuntu 14.04 armhf

7 years agoPreallocate jump stubs for dynamic methods (#9883)
Koundinya Veluri [Thu, 2 Mar 2017 04:52:15 +0000 (20:52 -0800)]
Preallocate jump stubs for dynamic methods (#9883)

Preallocate jump stubs for dynamic methods

- This eliminates the possibility of running into an out-of-memory situation after compiling the method
- The temporary entry points block containing FixupPrecodes is extended for dynamic methods to include sufficient space for jump stubs
- When the target is too far for the FixupPrecode to encode a short relative jump, it instead does a short relative call or jump to the corresponding jump stub, which does an absolute jump to the target

7 years agoAdding Span API perf tests for comparison with arrays and to monitor progress (#9790)
Ahson Ahmed Khan [Thu, 2 Mar 2017 04:16:40 +0000 (20:16 -0800)]
Adding Span API perf tests for comparison with arrays and to monitor progress (#9790)

* wip

* Adding Span API perf tests for comparison with arrays and to monitor progress

* Reducing iteration count so tests finish in < 2 minutes

* Reducing the number of test cases

* Commenting out ref DangerousGetPinnableReference test

* Updated csproj to use latest compiler

* Tuning test cases and runtime

7 years agoCleanup the native globalization code (#9887)
Tarek Mahmoud Sayed [Thu, 2 Mar 2017 02:20:18 +0000 (18:20 -0800)]
Cleanup the native globalization code (#9887)

* Cleanup the native globalization code

After we merged the globalization code used for Windows and Linux, this change is cleaning up the native VM globalization code

* Added a comment to the normalization code

7 years agoFix casing for newly added test (#9889)
Andy Ayers [Thu, 2 Mar 2017 01:45:25 +0000 (17:45 -0800)]
Fix casing for newly added test (#9889)

7 years agoMerge pull request #9882 from dotnet-bot/master-UpdateDependencies
Gaurav Khanna [Thu, 2 Mar 2017 01:39:18 +0000 (17:39 -0800)]
Merge pull request #9882 from dotnet-bot/master-UpdateDependencies

Update CoreClr to beta-25101-04 (master)

7 years agoCleanup (#9892)
Jan Kotas [Thu, 2 Mar 2017 01:28:42 +0000 (17:28 -0800)]
Cleanup (#9892)

* Delete unused PdbTypeMatch tool
* Delete unused GetFileVersion.dll binary
* Delete bad comments

7 years ago[x86/Linux] Initial fix of arguments passing in FunctionPtrTest (WIP) (#9855)
Evgeny Pavlov [Thu, 2 Mar 2017 00:10:17 +0000 (03:10 +0300)]
[x86/Linux] Initial fix of arguments passing in FunctionPtrTest (WIP) (#9855)

* [x86/Linux] Initial fix of incorrect arguments passing in FunctionPtrTest

7 years agoFix incremental build on Unix (#9779)
Jan Vorlicek [Wed, 1 Mar 2017 23:36:12 +0000 (00:36 +0100)]
Fix incremental build on Unix (#9779)

This change fixes issue with dactablerva.h being generated even if the
libcoreclr.so hasn't changed. Also, the dependency of the daccess.cpp
on this header was not honored by the build system and so even if the
dactablerva.h was regenerated with a different contents, the daccess.cpp
was not rebuilt.

7 years ago[Arm64/Unix] Fix stack unwinding (#9877)
Steve MacLean [Wed, 1 Mar 2017 22:16:23 +0000 (17:16 -0500)]
[Arm64/Unix] Fix stack unwinding (#9877)

This restore the functionality lost by #9866 w/o functional
loss

7 years agoMerge pull request #9868 from wtgodbe/HelixPrep
William Godbe [Wed, 1 Mar 2017 20:45:28 +0000 (12:45 -0800)]
Merge pull request #9868 from wtgodbe/HelixPrep

Allow user to zip tests even when not building against packages

7 years agoUpdate CoreClr to beta-25101-04
dotnet-bot [Wed, 1 Mar 2017 19:55:19 +0000 (19:55 +0000)]
Update CoreClr to beta-25101-04

7 years agoMerge pull request #9770 from adityamandaleeka/card_bundles_unix_2
Aditya Mandaleeka [Wed, 1 Mar 2017 18:29:32 +0000 (10:29 -0800)]
Merge pull request #9770 from adityamandaleeka/card_bundles_unix_2

Implement second-level card tables for non-Windows platforms

7 years agoAdd Throughput Perf testing
Michelle McDaniel [Thu, 23 Feb 2017 22:27:38 +0000 (14:27 -0800)]
Add Throughput Perf testing

This change adds scripting to run perf testing in the lab. We perform the
testing by running crossgen on a list of dlls. It then writes the data to a
csv file which is passed to other processing scripts.