platform/upstream/coreclr.git
8 years agoFix casing of DaylightTime.cs
Jose Perez Rodriguez [Sat, 20 Aug 2016 00:41:31 +0000 (17:41 -0700)]
Fix casing of DaylightTime.cs

[tfs-changeset: 1623368]

8 years agoOpen source SuperPMI
Bruce Forstall [Fri, 19 Aug 2016 22:56:04 +0000 (15:56 -0700)]
Open source SuperPMI

OVERVIEW
========

This directory contains the SuperPMI tool used for testing the .NET
just-in-time (JIT) compiler.

SuperPMI has two uses:
1. Verification that a JIT code change doesn't cause any asserts.
2. Finding test code where two JIT compilers generate different code, or verifying
that the two compilers generate the same code.

Case #1 is useful for doing quick regression checking when making a source
code change to the JIT compiler. The process is: (a) make a JIT source code
change, (b) run that newly built JIT through a SuperPMI run to verify no
asserts have been introduced.

Case #2 is useful for generating assembly language diffs, to help analyze the
impact of a JIT code change.

SuperPMI works in two phases: collection and playback. In the collection phase,
the system is configured to collect SuperPMI data. Then, run any set of .NET managed
programs. When these managed programs invoke the JIT compiler, SuperPMI gathers and
captures all information passed between the JIT and its .NET host. In the
playback phase, SuperPMI loads the JIT directly, and causes it to compile all
the functions that it previously compiled, but using the collected data to
provide answers to various questions that the JIT needs to ask. The .NET
execution engine (EE) is not invoked at all.

TOOLS
==========

There are two native executable tools: superpmi and mcs. There is a .NET Core
C# program that is built as part of the coreclr repo tests build called
superpmicollect.exe.

All will show a help screen if passed -?.

COLLECTION
==========

Set the following environment variables:

SuperPMIShimLogPath=<full path to an empty temporary directory>
SuperPMIShimPath=<full path to clrjit.dll, the "standalone" JIT>
COMPlus_AltJit=*
COMPlus_AltJitName=superpmi-shim-collector.dll

(On Linux, use libclrjit.so and libsuperpmi-shim-collector.so. On Mac,
use libclrjit.dylib and libsuperpmi-shim-collector.dylib.)

Then, run some managed programs. When done running programs, un-set these variables.

Now, you will have a large number of .mc files. Merge these using the mcs
tool:

mcs -merge base.mch *.mc

One benefit of SuperPMI is the ability to remove duplicated compilations, so
on replay only unique functions are compiled. Use the following to create a
"unique" set of functions:

mcs -removeDup -thin base.mch unique.mch

Note that -thin is not required. However, it will delete all the compilation
result collected during the collection phase, which makes the resulting MCH
file smaller. Those compilation results are not required for playback.

Use the superpmicollect.exe tool to automate and simplify this process.

PLAYBACK
========

Once you have a merged, de-duplicated MCH collection, you can play it back
using:

superpmi unique.mch clrjit.dll

You can do this much faster by utilizing all the processors on your machine,
and replaying in parallel, using:

superpmi -p unique.mch clrjit.dll

REMAINING WORK
=============

The basic of assembly diffing are there, using the "coredistools"
package. The open source build needs to be altered to use this package
to wire up the correct build steps.

[tfs-changeset: 1623347]

8 years agoUsing the public DaylightTime instead of the internal one in corefx dir for Linux...
Jose Perez Rodriguez [Fri, 19 Aug 2016 20:30:25 +0000 (13:30 -0700)]
Using the public DaylightTime instead of the internal one in  corefx dir for Linux/OSX builds.

[tfs-changeset: 1623319]

8 years agoMerge pull request #6808 from stephentoub/fix_wr
Stephen Toub [Fri, 19 Aug 2016 17:59:55 +0000 (13:59 -0400)]
Merge pull request #6808 from stephentoub/fix_wr

Fix WeakReference in mscorlib ref assembly

8 years agoImplement the proposed design for RyuJIT's LIR. (#6689)
Pat Gavlin [Fri, 19 Aug 2016 17:44:46 +0000 (10:44 -0700)]
Implement the proposed design for RyuJIT's LIR. (#6689)

These changes implement the design for RyuJIT's LIR described in https://github.com/dotnet/coreclr/blob/master/Documentation/design-docs/removing-embedded-statements.md.

The following passes required changes:

Rationalize, which has been almost completely rewritten
Long decomposition
Target-independent lowering
Target-dependent lowering
LSRA
Liveness
Flowgraph optimization
Codegen
For the most part, these changes are confined to the backend. Common code that needed to be updated included liveness, flowgraph optimization, and a few miscellaneous utilities.

The utilities used to analyze and manipulate LIR live (almost) entirely in src/jit/lir.{cpp,h}. The core concepts that are unique to LIR are LIR::Use and LIR::Range. The latter is a tuple that captures an SDSU def (i.e. an LIR node) and its corresponding use->def edge and user. The former serves to abstract a self-contained sequence of LIR nodes that make up e.g. the contents of a basic block.

Testing indicates that neither JIT throughput nor code quality are significantly impacted by these changes.

8 years agoExpose missing members of System.Reflection in contract to prep for dotnet/corefx...
Sepideh Khoshnood [Fri, 19 Aug 2016 17:14:47 +0000 (10:14 -0700)]
Expose missing members of System.Reflection in contract to prep for dotnet/corefx#1053 (#6614)

* Add missing Reflection APIs, Misc
* Add missing Reflection APIs, System.Reflection.Assembly
* Add missing Reflection APIs, some AssemblyAttributes, AssemblyName, AssemblyNameFlags
* Add missing Reflection APIs, ConstructorInfo, CustomAttributeData, CustomAttributeNamedArgument, CustomAttributeTypedArgument
* Add missing Reflection APIs, EventInfo, FieldInfo
* Add missing Reflection APIs, IReflect, ImageFileMachine, ExceptionHandlingClause
* Add missing Reflection APIs, ParameterInfo, PropertyInfo, Pointer, ResourceAttributes
* Add missing Reflection APIs, MethodBase, MethodBody, MethodInfo
* Fix some issues and add few more missing APIs
* Add more missing APIs
* Add rest from System.Reflection.AssemblyName
* Add serialization features, AssemblyName, Pointer, Missing
* Add more from System.Reflection.Module and add System.ModuleHandle
* Add equality operators to System.Reflection.Module* Add equality operators to System.Reflection.MemberInfo and System.Type
* Add some of missing APIs from System.Type
* Add some missing changes for System.Type

8 years agoFix WeakReference in mscorlib ref assembly
Stephen Toub [Fri, 19 Aug 2016 12:01:38 +0000 (08:01 -0400)]
Fix WeakReference in mscorlib ref assembly

It's missing the ISerializable implementation.

8 years agoMerge pull request #6780 from CarolEidt/Pre1stClassStructBlkOps
Carol Eidt [Thu, 18 Aug 2016 23:50:29 +0000 (16:50 -0700)]
Merge pull request #6780 from CarolEidt/Pre1stClassStructBlkOps

Preparatory changes for Blk Ops IR

8 years agoMerge pull request #6797 from dotnet-bot/from-tfs
Pat Gavlin [Thu, 18 Aug 2016 23:09:29 +0000 (16:09 -0700)]
Merge pull request #6797 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #6774 from kouvel/Apis
Koundinya Veluri [Thu, 18 Aug 2016 22:06:27 +0000 (15:06 -0700)]
Merge pull request #6774 from kouvel/Apis

Expose some threading type members

8 years agoMerge pull request #6765 from bryanar/cat_call
Bryan P. Arant [Thu, 18 Aug 2016 22:03:52 +0000 (15:03 -0700)]
Merge pull request #6765 from bryanar/cat_call

printing dumpling url at dumpling upload time

8 years agoPreparatory changes for Blk Ops IR
Carol Eidt [Tue, 16 Aug 2016 20:42:50 +0000 (13:42 -0700)]
Preparatory changes for Blk Ops IR

These are mostly refactoring changes, in preparation for the change to the IR for block assignments.

8 years agoMerge pull request #6782 from ramarag/testjson
Rama krishnan Raghupathy [Thu, 18 Aug 2016 20:39:11 +0000 (13:39 -0700)]
Merge pull request #6782 from ramarag/testjson

Restoring the Test Runtime libraries from a single project.json
Fixes #5174

8 years agoMerge pull request #6796 from stephentoub/fix_serialization_issues
Stephen Toub [Thu, 18 Aug 2016 20:17:49 +0000 (16:17 -0400)]
Merge pull request #6796 from stephentoub/fix_serialization_issues

Fix several serialization issues

8 years agoExpose some threading type members
Koundinya Veluri [Mon, 15 Aug 2016 18:17:48 +0000 (11:17 -0700)]
Expose some threading type members

- Exposed some public members of WaitHandle
- Fixed "path too long" error message to take a length parameter (as in mscorlib.txt) and uses of it to pass in the correct value for the length
- Made SignalAndWait implementation available on Windows, and throw PlatformNotSupportedException on others

Part of dotnet/corefx#10933

8 years agoRemove TypeForwardedFrom attributes for System and System.Core
Stephen Toub [Thu, 18 Aug 2016 18:14:02 +0000 (14:14 -0400)]
Remove TypeForwardedFrom attributes for System and System.Core

These assemblies don't exist in .NET Core.  Having these attributes on serializable types causes deserialization for such types to fail, as it attempts to load the assembly from which they were forwarded.

8 years agoFix serialization of delegates without targets
Stephen Toub [Thu, 18 Aug 2016 18:06:39 +0000 (14:06 -0400)]
Fix serialization of delegates without targets

A null check is missing when FEATURE_REMOTING is not defined, resulting in an invalid cast exception when deserializing a delegate without a target (e.g. a delegate for a static method).

8 years agoFix serialization of several exception types
Stephen Toub [Thu, 18 Aug 2016 18:05:35 +0000 (14:05 -0400)]
Fix serialization of several exception types

VerificationException's deserialization ctor was being tree-shaken away.

SecurityException's deserialization ctor was ifdef'd out.

8 years agoMerge pull request #6747 from JosephTremoulet/VNLoops
Joseph Tremoulet [Thu, 18 Aug 2016 15:02:56 +0000 (11:02 -0400)]
Merge pull request #6747 from JosephTremoulet/VNLoops

Record expr location for opqaue value numbers

8 years agoAn easy fix for #6760 (#6770)
Viacheslav Nikolaev [Thu, 18 Aug 2016 12:12:09 +0000 (15:12 +0300)]
An easy fix for #6760 (#6770)

As mentioned in #6760 we can postpone the calculation of the NeedsTurkishCasing property.

Conflicts:
src/mscorlib/corefx/System/Globalization/TextInfo.Unix.cs

8 years agoDue to comdat folding some fcalls are pointing to same code. This fix ensures that...
Rahul Kumar [Thu, 18 Aug 2016 02:37:23 +0000 (19:37 -0700)]
Due to comdat folding some fcalls are pointing to same code. This fix ensures that these fcall has a unique code address. (#6776)

8 years agoRestoring the Test Runtime libraries from a single project.json
Rama Krishnan Raghupathy [Thu, 18 Aug 2016 01:03:39 +0000 (18:03 -0700)]
Restoring the Test Runtime libraries from a single project.json
This will ensure the expected version to be present at the runtime

8 years agoFix CRWLock ID generation overflow bug
Koundinya Veluri [Wed, 17 Aug 2016 21:48:59 +0000 (14:48 -0700)]
Fix CRWLock ID generation overflow bug

There are several problems with the CRWLock constructor, where it tries to increment a 64-bit lock ID in two 32-bit pieces using lock-free code in a fast path:
- For the lower 32 bits, LLockID, zero is reserved for identifying a free lock entry. Upon incrementing LLockID from -1 to 0, the code was not skipping zero or incrementing the upper 32 bits, ULockID. Instead, it waited for one more increment to LLockID before increment ULockID. Assignment of the invalid LLockID caused a free lock entry to be reused for a new lock, and corruption in lock state thereafter. This is the issue identified by the bug.
- If LLockID != -1 in thread A, but the compare-exchange fails because thread B had updated the value before thread A, ULockID was not being read again in thread A. If thread B had also incremented ULockID, thread A would continue to use the old ULockID.
- In the locked slow path that handles incrementing ULockID, ULockID is updated before LLockID. The constructor though, was reading ULockID before LLockID. This allows a race where Thread A reads an old value for ULockID and a new value for LLockID, increments LLockID successfully, and continues to use the old ULockID.

Due to the availability of InterlockedCompareExchange64 on all supported platforms, we decided to use that instead to simplify the solution and fix all of the above issues at the same time.

Bug: 242568
Integrated from changes: 1621197, 1621810

[tfs-changeset: 1622814]

8 years agoMerge pull request #6773 from jashook/disable_jit32_timeouts_round_two
Jarret Shook [Wed, 17 Aug 2016 20:05:42 +0000 (13:05 -0700)]
Merge pull request #6773 from jashook/disable_jit32_timeouts_round_two

Disable tests that timeout for jit32

8 years agoMerge pull request #6748 from rahku/arm64ShadowHeap
Rahul Kumar [Wed, 17 Aug 2016 18:00:15 +0000 (11:00 -0700)]
Merge pull request #6748 from rahku/arm64ShadowHeap

update GC shadow heap as part of writebarrier jit helper

8 years agoDisable tests that timeout for jit32
jashoo [Wed, 17 Aug 2016 17:47:26 +0000 (10:47 -0700)]
Disable tests that timeout for jit32

See issues #6720, #6718, #6714 for more information.

8 years agoMerge pull request #6766 from dotnet-bot/UpdateDependencies20160817062015
Wes Haggard [Wed, 17 Aug 2016 15:29:26 +0000 (08:29 -0700)]
Merge pull request #6766 from dotnet-bot/UpdateDependencies20160817062015

Updating External dependencies to beta-24417-00

8 years agoMakes FCallMemcpy unwindable (#6753)
Jonghyun Park [Wed, 17 Aug 2016 06:32:41 +0000 (15:32 +0900)]
Makes FCallMemcpy unwindable (#6753)

FCallMemcpy function in vm/arm/memcpy.S creates an stack frame that
libunwind cannot recognize, which leads to the issue in #6752.

This commit makes the stack frame of FCallMemcpy unwindable to fix
issue #6752.

8 years agoUpdating External dependencies to beta-24417-00
dotnet-bot [Wed, 17 Aug 2016 06:20:15 +0000 (06:20 +0000)]
Updating External dependencies to beta-24417-00

8 years agoApply correct symbolic name _ARM_ instead of _TARGET_ARM_ (#6756)
Hyung-Kyu Choi [Wed, 17 Aug 2016 04:03:30 +0000 (13:03 +0900)]
Apply correct symbolic name _ARM_ instead of _TARGET_ARM_ (#6756)

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
8 years agoprinting dumpling url at upload time.
Bryan P. Arant [Wed, 17 Aug 2016 00:25:27 +0000 (17:25 -0700)]
printing dumpling url at upload time.

8 years agoMerge pull request #6749 from ramarag/sos_misc
Rama krishnan Raghupathy [Wed, 17 Aug 2016 01:44:22 +0000 (18:44 -0700)]
Merge pull request #6749 from ramarag/sos_misc

Arm64 Sos fixes for

8 years agoMerge pull request #6763 from dotnet-bot/from-tfs
Jan Kotas [Wed, 17 Aug 2016 01:33:14 +0000 (18:33 -0700)]
Merge pull request #6763 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #6362 from svick/culturedata-regionnames
Tarek Mahmoud Sayed [Wed, 17 Aug 2016 00:36:06 +0000 (17:36 -0700)]
Merge pull request #6362 from svick/culturedata-regionnames

Move RegionNames out of #ifs

8 years agoFix build break from new alignments
Koundinya Veluri [Tue, 16 Aug 2016 20:14:29 +0000 (13:14 -0700)]
Fix build break from new alignments

- MSVC seems to require alignment specification to be on the declaration as well as the definition
- Ignore warning about padding parent struct due to __declspec(align()), as that is intentional

Original change PR: https://github.com/dotnet/coreclr/pull/6516

[tfs-changeset: 1622589]

8 years agoMerge pull request #6761 from stephentoub/mscorlib_deserialization
Stephen Toub [Tue, 16 Aug 2016 19:42:38 +0000 (15:42 -0400)]
Merge pull request #6761 from stephentoub/mscorlib_deserialization

Add deserialization ctors to mscorlib ref assembly

8 years agoAdding new generics tests (#6709)
Fadi Hanna [Tue, 16 Aug 2016 17:58:50 +0000 (10:58 -0700)]
Adding new generics tests (#6709)

8 years agoAdd deserialization ctors to mscorlib ref assembly
Stephen Toub [Tue, 16 Aug 2016 17:14:07 +0000 (13:14 -0400)]
Add deserialization ctors to mscorlib ref assembly

In a previous PR, I'd added these to model.xml, but we're still consuming the mscorlib ref assembly in corefx, so we need these deserialization ctors there, too.

8 years agoMerge pull request #6743 from dotnet-bot/UpdateDependencies20160815051908
Gaurav Khanna [Tue, 16 Aug 2016 16:56:29 +0000 (09:56 -0700)]
Merge pull request #6743 from dotnet-bot/UpdateDependencies20160815051908

Updating External dependencies to beta-24415-00

8 years agoRecord expr location for opqaue value numbers
Joseph Tremoulet [Sat, 13 Aug 2016 18:17:09 +0000 (14:17 -0400)]
Record expr location for opqaue value numbers

When value numbering sees an expression that is too complex, runs out of
compile-time budget for deep field/phi sequences, etc., it assigns
`VNForExpr()` for the expression whose value number is being computed.
This produces a new, unique, opaque value number that will compare as
equal to itself but not to any other value number.

This change updates value numbering to record the location of the
expression whose value such a value numbers is created to stand in for.
While attaching location information to value numbers in general must be
done with care regarding subtleties of correlating value numbers for
expressions in different locations that compute the same value, those
subtleties are not relevant in the case of these unique/opaque value
numbers, whose point is to stand in for the value of one particular
expression and whose value may be propagated by copies but will never be
computed by other redundant expressions.

Loop-invariant code hoisting is updated to take these locations into
account when determining loop-invariance; the opaque value number is
loop-invariant if the expression whose value it represents is outside the
loop.

The `VNForExpr()` method is updated to take a `BasicBlock*` to identify
the location, but the backing store only records the block's loop number,
since the loop-invariance check is the only consumer of this information
and doing so allows a more compact representation (in particular, we avoid
allocating `m_defs` backing storage for these value numbers, since they are
used for the "give up and be conservative" cases).

The `BasicBlock*` passed to `VNForExpr()` can be `nullptr` to still have
the prior semantics of a fully opaque value number that can't be proved
loop-invariant; this is used for a handful of cases where the budgeting
results are memoized and so expressions at different locations could end
up sharing opaque value numbers, as well as a few cases where the
`VNForExpr()` call is covering a rare corner case in a utility for which
the corresponding `BasicBlock` may not be handy.

Fixes #6303.

8 years agoArm64 Sos fixes for
Rama Krishnan Raghupathy [Tue, 16 Aug 2016 01:34:24 +0000 (18:34 -0700)]
Arm64 Sos fixes for
!verify heap
!u
!u -gcinfo

8 years agoupdate GC shadow heap as part of writebarrier jit helper
Rahul Kumar [Tue, 16 Aug 2016 01:32:59 +0000 (18:32 -0700)]
update GC shadow heap as part of writebarrier jit helper

8 years agoMerge pull request #6423 from stephentoub/restore_serialization
Stephen Toub [Tue, 16 Aug 2016 00:33:00 +0000 (20:33 -0400)]
Merge pull request #6423 from stephentoub/restore_serialization

Restore most serialization implementations in coreclr

8 years agoMerge pull request #6516 from benaadams/WorkerThreadStart
Koundinya Veluri [Mon, 15 Aug 2016 18:52:40 +0000 (11:52 -0700)]
Merge pull request #6516 from benaadams/WorkerThreadStart

WorkerThreadStart volatile read+cmpxchg loop

8 years agoMerge pull request #6745 from AtsushiKan/rv
Atsushi Kanamori [Mon, 15 Aug 2016 17:00:09 +0000 (10:00 -0700)]
Merge pull request #6745 from AtsushiKan/rv

Fix issue https://github.com/dotnet/coreclr/issues/6600

8 years agoFix issue https://github.com/dotnet/coreclr/issues/6600
Atsushi Kanamori [Mon, 15 Aug 2016 13:52:29 +0000 (06:52 -0700)]
Fix issue https://github.com/dotnet/coreclr/issues/6600

Return parameters not accomodated in
Attribute.GetParentDefinition(ParameterInfo)

8 years agoAdd deserialization ctors to model.xml
Stephen Toub [Sun, 24 Jul 2016 23:57:33 +0000 (19:57 -0400)]
Add deserialization ctors to model.xml

8 years agoUpdating External dependencies to beta-24415-00
dotnet-bot [Mon, 15 Aug 2016 05:19:08 +0000 (05:19 +0000)]
Updating External dependencies to beta-24415-00

8 years agoPort serialization implementation to Unix globalization types
Stephen Toub [Sat, 23 Jul 2016 17:49:15 +0000 (10:49 -0700)]
Port serialization implementation to Unix globalization types

These will need to be tested.  They are a straight port from the Windows implementation, but the implementation has diverged, and it's possible (likely) there are some differences I didn't catch.

8 years agoEnsure On* methods are not removed by BclRewriter
Stephen Toub [Sat, 23 Jul 2016 04:53:10 +0000 (21:53 -0700)]
Ensure On* methods are not removed by BclRewriter

8 years agoRestore most serialization implementations in coreclr
Stephen Toub [Sat, 23 Jul 2016 03:26:01 +0000 (20:26 -0700)]
Restore most serialization implementations in coreclr

I audited all uses of FEATURE_SERIALIZATION in coreclr and removed most of the ifdef'ing.  The remaining uses of FEATURE_SERIALIZATION are primary related to actually implementing formatters, CAS-related types, and a few types I've left non-serializable (e.g. ExecutionContext) but that we can revisit later if needed.

8 years agoMerge pull request #6740 from dotnet-bot/from-tfs
Jan Kotas [Sun, 14 Aug 2016 06:15:57 +0000 (23:15 -0700)]
Merge pull request #6740 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoFixup a few contracts
Jan Kotas [Sun, 14 Aug 2016 01:52:58 +0000 (18:52 -0700)]
Fixup a few contracts

[tfs-changeset: 1622296]

8 years agoMerge pull request #6731 from weshaggard/FixSerializationPackageVersion
Wes Haggard [Sat, 13 Aug 2016 07:05:33 +0000 (00:05 -0700)]
Merge pull request #6731 from weshaggard/FixSerializationPackageVersion

Update version of S.R.Serialization.Primitives to version 4.1.1

8 years agoMerge pull request #6728 from rahku/typeloaderHang
Rahul Kumar [Sat, 13 Aug 2016 06:09:19 +0000 (23:09 -0700)]
Merge pull request #6728 from rahku/typeloaderHang

Issue: If two threads try to load the same type it can cause clr to h…

8 years agoMerge pull request #6726 from rahku/fixes
Rahul Kumar [Sat, 13 Aug 2016 06:08:18 +0000 (23:08 -0700)]
Merge pull request #6726 from rahku/fixes

In intGCShadow() first reserve memory before committing

8 years agoUpdate version of S.R.Serialization.Primitives to version 4.1.1
Wes Haggard [Sat, 13 Aug 2016 04:51:07 +0000 (21:51 -0700)]
Update version of S.R.Serialization.Primitives to version 4.1.1

8 years agoMerge pull request #6729 from pgavlin/Reformat
Pat Gavlin [Sat, 13 Aug 2016 02:11:09 +0000 (19:11 -0700)]
Merge pull request #6729 from pgavlin/Reformat

Re-reformat the JIT sources.

8 years agoreview fixes
Rahul Kumar [Sat, 13 Aug 2016 00:41:03 +0000 (17:41 -0700)]
review fixes

8 years agoIn intGCShadow() first reserve memory before committing. VirtualCommit does not accep...
Rahul Kumar [Sat, 13 Aug 2016 00:29:02 +0000 (17:29 -0700)]
In intGCShadow() first reserve memory before committing. VirtualCommit does not accept NULL as input address

8 years agoReformat the JIT sources.
Pat Gavlin [Fri, 12 Aug 2016 23:51:22 +0000 (16:51 -0700)]
Reformat the JIT sources.

The sources were formatted using jit-format on Windows with the
following command lines in the following order:

    `jit-format.cmd -o Windows -b Checked -a x64 -f`
    `jit-format.cmd -o Windows -b Debug -a x64 -f`
    `jit-format.cmd -o Windows -b Release -a x64 -f`

The versions of clang-format and clang-tidy that were invoked by
jit-format were:

    clang-format version 3.8.1 (branches/release_38)

    LLVM (http://llvm.org/):
      LLVM version 3.8.1
      Optimized build with assertions.
      Built Jun 22 2016 (12:19:56).
      Default target: x86_64-pc-windows-msvc
      Host CPU: sandybridge

8 years agoMassage the code a bit for jit-format w/ Clang 3.8.
Pat Gavlin [Fri, 12 Aug 2016 23:34:18 +0000 (16:34 -0700)]
Massage the code a bit for jit-format w/ Clang 3.8.

Manually insert a few braces that would otherwise have been inserted
in the wrong place.

8 years agoRevert #6686.
Pat Gavlin [Fri, 12 Aug 2016 22:10:30 +0000 (15:10 -0700)]
Revert #6686.

The code was accidentally formatted with Clang 3.9. It will be reformatted
with Clang 3.8 and a new PR submitted.

8 years agoIssue: If two threads try to load the same type it can cause clr to hang if the first...
Rahul Kumar [Fri, 12 Aug 2016 23:47:47 +0000 (16:47 -0700)]
Issue: If two threads try to load the same type it can cause clr to hang if the first thread to start the load happens to be a background thread. Background thread would create PendingTypeLoadEntry  and insert it into unresolvedClassHash. Second thread (having normal priority) would block on PendingTypeLoadEntry->m_crst waiting for the background thread to unblock it. After doing partial load of type background thread periodically checks if there are other threads waiting for type to get loaded. In this case it does find a thread waiting so it unblocks thread. However, background thread has not removed PendingTypeLoadEntry  from unresolvedClassHash. This causes the second thread to continue spinning and so not allowing background thread to get any processor cycles to remove PendingTypeLoadEntry  from unresolvedClassHash. This cause app to be seem like it has hung. It is possible that this may not repro on multi-proc machine where the background thread can get scheduled on another processor when second thread continues to spin on another processor.

Fix: First remove the PendingTypeLoadEntry  from unresolvedClassHash and then unblock the waiting threads.

8 years agoMerge pull request #6721 from jashook/disable_jit32_tests
Jarret Shook [Fri, 12 Aug 2016 22:00:47 +0000 (15:00 -0700)]
Merge pull request #6721 from jashook/disable_jit32_tests

Disable tests to get jit32 jobs green

8 years agoMerge pull request #6685 from RussKeldorph/test-native-log
Russ Keldorph [Fri, 12 Aug 2016 21:58:10 +0000 (14:58 -0700)]
Merge pull request #6685 from RussKeldorph/test-native-log

Re-enable creating Tests_Native* log files

8 years agoFix exception filter getter for native frames (#6723)
Sasha Semennikov [Fri, 12 Aug 2016 21:34:57 +0000 (14:34 -0700)]
Fix exception filter getter for native frames (#6723)

8 years agoFixing priority on tests (making tests P1) (#6706)
Fadi Hanna [Fri, 12 Aug 2016 19:54:24 +0000 (12:54 -0700)]
Fixing priority on tests (making tests P1) (#6706)

8 years agoMerge pull request #6722 from dotnet-bot/from-tfs
Jan Kotas [Fri, 12 Aug 2016 19:50:37 +0000 (12:50 -0700)]
Merge pull request #6722 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMore fixes for unreachable code warnings with older compiler
Jan Kotas [Fri, 12 Aug 2016 17:51:58 +0000 (10:51 -0700)]
More fixes for unreachable code warnings with older compiler

[tfs-changeset: 1622213]

8 years agoDisable tests to get jit32 jobs green
jashoo [Fri, 12 Aug 2016 17:25:09 +0000 (10:25 -0700)]
Disable tests to get jit32 jobs green

See issues #6720, #6718, #6714 for more information

8 years agoMerge pull request #6712 from dotnet-bot/from-tfs
Jan Kotas [Fri, 12 Aug 2016 15:02:48 +0000 (08:02 -0700)]
Merge pull request #6712 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoEnable FEATURE_STUBS_AS_IL for ARM/Linux (#6500)
Jonghyun Park [Fri, 12 Aug 2016 15:02:22 +0000 (00:02 +0900)]
Enable FEATURE_STUBS_AS_IL for ARM/Linux (#6500)

This commit enables FEATURE_STUBS_AS_IL for ARM/Linux. This commit
tries to fix #6452.

8 years agoFix unreachable code warnings with MSVC++ 18.10
Jan Kotas [Fri, 12 Aug 2016 06:36:12 +0000 (23:36 -0700)]
Fix unreachable code warnings with MSVC++ 18.10

[tfs-changeset: 1622176]

8 years agoMerge pull request #6690 from wtgodbe/regioninfo
William Godbe [Thu, 11 Aug 2016 21:48:38 +0000 (14:48 -0700)]
Merge pull request #6690 from wtgodbe/regioninfo

Fix region info test on Debian

8 years agoFix region info test on Debian
wtgodbe [Wed, 10 Aug 2016 21:16:48 +0000 (14:16 -0700)]
Fix region info test on Debian

8 years agoMerge pull request #6686 from adiaaida/formatted
Michelle McDaniel [Thu, 11 Aug 2016 20:39:22 +0000 (13:39 -0700)]
Merge pull request #6686 from adiaaida/formatted

Reformat jit source base using clang-format and clang-tidy

8 years agoMerge pull request #6701 from dotnet-bot/from-tfs
Brian Sullivan [Thu, 11 Aug 2016 20:12:40 +0000 (13:12 -0700)]
Merge pull request #6701 from dotnet-bot/from-tfs

Merge changes from TFS

8 years agoMerge pull request #6704 from dotnet/wtgodbe-patch-1
William Godbe [Thu, 11 Aug 2016 19:13:32 +0000 (12:13 -0700)]
Merge pull request #6704 from dotnet/wtgodbe-patch-1

Update unix test instructions

8 years agoUpdate unix test instructions
William Godbe [Thu, 11 Aug 2016 19:13:19 +0000 (12:13 -0700)]
Update unix test instructions

8 years agoMerge pull request #6702 from dotnet/RunTestDocumentation
William Godbe [Thu, 11 Aug 2016 18:59:47 +0000 (11:59 -0700)]
Merge pull request #6702 from dotnet/RunTestDocumentation

Fix linux test running documentation

8 years agoFix linux test running documentation
William Godbe [Thu, 11 Aug 2016 18:59:35 +0000 (11:59 -0700)]
Fix linux test running documentation

We should specify that corefx will be from a Debug build, not a Release build.

8 years agoMerge pull request #6637 from smile21prc/coreclr-perf
smile21prc [Thu, 11 Aug 2016 17:45:10 +0000 (10:45 -0700)]
Merge pull request #6637 from smile21prc/coreclr-perf

Automate the perf data collection for JIT CodeQuality benchmarks on Windows.

8 years agoAdd missing security annotation
Jan Kotas [Thu, 11 Aug 2016 17:32:59 +0000 (10:32 -0700)]
Add missing security annotation

[tfs-changeset: 1622038]

8 years agoReformat jit sources with clang-tidy and format
Michelle McDaniel [Tue, 9 Aug 2016 20:15:05 +0000 (13:15 -0700)]
Reformat jit sources with clang-tidy and format

This change is the result of running clang-tidy and clang-format on jit
sources.

8 years agoPrepare jit source for clang-tidy
Michelle McDaniel [Tue, 9 Aug 2016 16:59:01 +0000 (09:59 -0700)]
Prepare jit source for clang-tidy

In templates, clang-tidy will replace 0 with nullptr, but this is illegal
for primitive types. This change replaces 0 in two templated functions
with ZERO, which is defined to be 0 to avoid this issue.

Additioanlly, we need to conditionally define some macros for running
under __clang__ so they are found by clang-tidy.

8 years agoMerge pull request #6657 from gkhanna79/UpdateVer
Gaurav Khanna [Thu, 11 Aug 2016 16:27:01 +0000 (09:27 -0700)]
Merge pull request #6657 from gkhanna79/UpdateVer

Update package versions to 1.1.0

8 years agoARM: disable stack unwinding using DWARF (#6700)
hqueue [Thu, 11 Aug 2016 16:21:41 +0000 (01:21 +0900)]
ARM: disable stack unwinding using DWARF (#6700)

libunwind for ARM does not interpret ARM vfpv3/NEON
registers in DWARF format correctly.

Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
8 years agoMerge pull request #6699 from dotnet-bot/UpdateDependencies20160811052348
Gaurav Khanna [Thu, 11 Aug 2016 13:43:38 +0000 (06:43 -0700)]
Merge pull request #6699 from dotnet-bot/UpdateDependencies20160811052348

Updating External dependencies to beta-24411-00

8 years agoMerge pull request #6691 from ramarag/ResolveWorkerChainLookupAsmStubFix
Rama krishnan Raghupathy [Thu, 11 Aug 2016 08:26:51 +0000 (01:26 -0700)]
Merge pull request #6691 from ramarag/ResolveWorkerChainLookupAsmStubFix

Preserving ResolveCacheElem in X9

8 years agoUpdating External dependencies to beta-24411-00
dotnet-bot [Thu, 11 Aug 2016 05:23:48 +0000 (05:23 +0000)]
Updating External dependencies to beta-24411-00

8 years agoMerge pull request #6285 from JosephTremoulet/LenProp
Joseph Tremoulet [Thu, 11 Aug 2016 00:16:31 +0000 (20:16 -0400)]
Merge pull request #6285 from JosephTremoulet/LenProp

Propagate known array lengths to more places

8 years agoPreserving ResolveCacheElem in X9
Rama Krishnan Raghupathy [Wed, 10 Aug 2016 22:02:35 +0000 (15:02 -0700)]
Preserving ResolveCacheElem in X9

8 years agoUpdate Arm32 package version reference
Gaurav Khanna [Wed, 10 Aug 2016 21:58:00 +0000 (14:58 -0700)]
Update Arm32 package version reference

8 years agoAutomate the perf data collection for JIT CodeQuality benchmarks on Windows.
Smile Wei [Wed, 3 Aug 2016 22:20:15 +0000 (15:20 -0700)]
Automate the perf data collection for JIT CodeQuality benchmarks on Windows.

Fix a quote.

8 years agoPropagate known array lengths to more places
Joseph Tremoulet [Thu, 23 Jun 2016 20:21:13 +0000 (16:21 -0400)]
Propagate known array lengths to more places

Earlyprop limits its propagation of array lengths to blocks marked
BBF_HAS_INDX, for throughput reasons.  The importer sets that flag on
blocks that store/load array elements, but not blocks that simply extract
an array's length.  This change renames the flag to BBF_HAS_IDX_LEN, and
updates the importer to set it also on blocks with ldlen operations.  This
change also updates fgOptWhileLoop to propagate the flag when it
copies such an expression as part of a zero-trip test.

Fixes #2325.

8 years agoMerge pull request #6682 from JosephTremoulet/ConstantIndex
Joseph Tremoulet [Wed, 10 Aug 2016 20:30:53 +0000 (16:30 -0400)]
Merge pull request #6682 from JosephTremoulet/ConstantIndex

Update FieldSeq annotations in EarlyProp

8 years agoMerge pull request #6671 from gkhanna79/FixLFAN
Gaurav Khanna [Wed, 10 Aug 2016 19:24:33 +0000 (12:24 -0700)]
Merge pull request #6671 from gkhanna79/FixLFAN

Fix LoadFromAssemblyName to invoke fallback context

8 years agoMerge pull request #6606 from rahku/arm64todo
Rahul Kumar [Wed, 10 Aug 2016 18:47:47 +0000 (11:47 -0700)]
Merge pull request #6606 from rahku/arm64todo

ARM64: Fix for ARM64TODO

8 years agoARM64: Fix for ARM64TODO
Rahul Kumar [Thu, 4 Aug 2016 18:43:21 +0000 (11:43 -0700)]
ARM64: Fix for ARM64TODO