Michelle McDaniel [Thu, 22 Sep 2016 16:41:29 +0000 (09:41 -0700)]
Merge pull request #7312 from adiaaida/improveFormattingVerbosity
Improve formatting job output
Michelle McDaniel [Thu, 22 Sep 2016 15:58:47 +0000 (08:58 -0700)]
Improve formatting job output
To make it more clear where there are formatting errors, have format.py
print what commands the user needs to run to fix the formatting errors in
their PR.
Michelle McDaniel [Thu, 22 Sep 2016 15:24:57 +0000 (08:24 -0700)]
Merge pull request #7311 from adiaaida/fixutilsformatting
Fix formatting in utils.cpp
Michelle McDaniel [Thu, 22 Sep 2016 15:23:35 +0000 (08:23 -0700)]
Fix formatting in utils.cpp
Jonghyun Park [Thu, 22 Sep 2016 13:53:18 +0000 (22:53 +0900)]
Supports cross build configuration override (#7307)
Jan Kotas [Thu, 22 Sep 2016 13:47:29 +0000 (06:47 -0700)]
Merge pull request #7304 from dotnet-bot/from-tfs
Merge changes from TFS
Vance Morrison [Thu, 22 Sep 2016 13:46:49 +0000 (06:46 -0700)]
Generate CrossGen Pdbs as part of bulid (#7298)
This change has two parts. The first part changes build.cmd and the pkgproj
so that as part of generating a .NET Core package we also generate the PDBS
for the Native System.Private.Corelib.ni.dll.
The second part changes crossgen so that it marks the Native Images as having
a list of 0 exports. This is important because we want the generated PDBs
to be naturally published on the symbol server, and currently the symbol server
skips DLLs what are 'resource only' (no imports or exports). Because native
images don't use 'normal' PE imports and exports, they get optimized away
by the symbol server. Making a empy list of exports fixes this.
Peter Kukol [Thu, 22 Sep 2016 05:39:06 +0000 (22:39 -0700)]
Display histogram of total memory per method when MEASURE_MEM_ALLOC is on. (#7286)
* Display histogram of total memory per method when MEASURE_MEM_ALLOC is on.
Sivarv [Thu, 22 Sep 2016 01:28:49 +0000 (18:28 -0700)]
Merge pull request #7285 from sivarv/internalReg
Support Lower to reserve internal register(s) different from targetReg.
dotnet-bot [Thu, 22 Sep 2016 01:05:43 +0000 (18:05 -0700)]
Add missing contracts on GCHeapUtilities
[tfs-changeset: 1628632]
Michelle McDaniel [Thu, 22 Sep 2016 00:27:26 +0000 (17:27 -0700)]
Merge pull request #7302 from adiaaida/moreFormatting
Fix formatting in ssabuilder
sivarv [Wed, 21 Sep 2016 22:17:04 +0000 (15:17 -0700)]
Support Lower to reserve internal register(s) different from targetReg.
Tarek Mahmoud Sayed [Wed, 21 Sep 2016 23:01:59 +0000 (16:01 -0700)]
Merge pull request #7299 from tarekgh/MarkCultureInfoMethodsAsPublic
Mark some CultureInfo methods as public
Michelle McDaniel [Wed, 21 Sep 2016 22:10:31 +0000 (15:10 -0700)]
Fix formatting in ssabuilder
The formatting changes missed the new changes to ssabuilder. Format that
file.
Michelle McDaniel [Wed, 21 Sep 2016 21:57:18 +0000 (14:57 -0700)]
Merge pull request #7291 from adiaaida/format
Reformat jit source base and turn on formatting jobs for PR
Gaurav Khanna [Wed, 21 Sep 2016 21:56:33 +0000 (14:56 -0700)]
Merge pull request #7284 from gkhanna79/Ver120
Update Nuget package versions to 1.2.0
Tarek Mahmoud Sayed [Wed, 21 Sep 2016 21:10:44 +0000 (14:10 -0700)]
Mark some CultureInfo methods as public
We are exposing such APIs now so we need them to be public
Michelle McDaniel [Wed, 21 Sep 2016 18:18:21 +0000 (11:18 -0700)]
Fix formatting job for Ubuntu
The change to move to the newer version of the CLI for coreclr causes
something to look for a config.json file in the current directory (rather
than the directory where the build.sh script resides), forcing build.sh to
be run from the base coreclr dir (you can't run it from any other
location), so changing directories to the jitutils bin directory would
cause the build to fail, failing the jit-format run. This change fixes the
format.py script to build the full path to the jit-format executable and
then run it from the coreclr directory, rather than changing to the utils
bin dir and running jit-format from there.
Michelle McDaniel [Wed, 21 Sep 2016 16:56:46 +0000 (09:56 -0700)]
Make formatting jobs required for PR
Michelle McDaniel [Wed, 21 Sep 2016 17:30:30 +0000 (10:30 -0700)]
Fix conflicts between nix and Windows formatting
Michelle McDaniel [Wed, 21 Sep 2016 16:39:53 +0000 (09:39 -0700)]
Reformat jit code on OSX
Michelle McDaniel [Wed, 21 Sep 2016 16:25:28 +0000 (09:25 -0700)]
Reformat jit code for Windows x64
Eugene Rozenfeld [Wed, 21 Sep 2016 20:41:18 +0000 (13:41 -0700)]
Merge pull request #7191 from erozenfeld/SSAStackOverflow
Fix for StackOverflow in SsaBuilder::TopologicalSort.
John Chen [Wed, 21 Sep 2016 20:29:21 +0000 (13:29 -0700)]
Fix OS X build break with AppleClang 8.0.0 (#7292)
Fixes issue #7275
Carol Eidt [Wed, 21 Sep 2016 19:54:19 +0000 (12:54 -0700)]
Merge pull request #7293 from CarolEidt/FixArmObj
Fix Arm64 codegen to use GT_FIELD_LIST
Carol Eidt [Wed, 21 Sep 2016 18:52:45 +0000 (11:52 -0700)]
Merge pull request #7289 from CarolEidt/Fix7196
Fix Issue 7196: No extra internal regs for block nodes
Carol Eidt [Wed, 21 Sep 2016 18:12:45 +0000 (11:12 -0700)]
Fix Arm64 codegen to use GT_FIELD_LIST
In #7252 changing GT_LIST to GT_FIELD_LIST when passing struct fields,
I omitted some required changes to codegenarm64.cpp. This caused the
crossgen of System.Private.CoreLib.dll to fail.
Eugene Rozenfeld [Wed, 14 Sep 2016 19:41:47 +0000 (12:41 -0700)]
Fix for StackOverflow in SsaBuilder::TopologicalSort.
SsaBuilder::TopologicalSort allocated an array of bools on the stack.
In one of internal cases the array had 126,758 elements, which caused a
StackOverflow. This change switches SsaBuilder::TopologicalSort from
stack-allocated array of bools to BitVec.
TopologicalSortHelper used to be recursive. It was changed to use an iterative
algorithm in a previous change. I'm inlining TopologicalSortHelper into
TopologicalSort now.
I verified no measurable negative throughput impact from this change
and no asm diffs in SuperPMI.
Carol Eidt [Wed, 21 Sep 2016 16:13:20 +0000 (09:13 -0700)]
Fix Issue 7196: No extra internal regs for block nodes
There is some possibly obsolete code that copies the internal registers
for a GT_IND onto the address node as well. With the struct IR changes,
the block nodes (e.g. GT_STORE_BLK) also return true for OperIsIndir(),
so they were getting the internal registers copied over from their address
node. This led to an assert on Arm64.
Fix #7196
John Chen [Wed, 21 Sep 2016 13:50:03 +0000 (06:50 -0700)]
Fix CrossGen error reporting when input is missing (#7287)
Currently, running "crossgen foo.dll" when foo.dll does not exist produces
a misleading error message "The image being compiled is not a .NET assembly".
The reason is CrossGen ignores the actual error code reported during
initial asssembly load and verification, and always reports the error as
NGEN_E_FILE_NOT_ASSEMBLY. This change removes that logic, since the original
error code is much more likely to be useful.
Hugh Bellamy [Wed, 21 Sep 2016 13:48:08 +0000 (14:48 +0100)]
If out some dead code in System.Array for FEATURE_CORECLR (#7288)
Peter Kukol [Wed, 21 Sep 2016 01:59:34 +0000 (18:59 -0700)]
Clean up GenTree node size dumping code. (#7278)
Clean up GenTreeXxxx struct size dump; fix 32-bit build when MEASURE_NODE_SIZE is enabled.
Joseph Tremoulet [Wed, 21 Sep 2016 00:49:23 +0000 (20:49 -0400)]
Merge pull request #7280 from JosephTremoulet/BoundsCheckDisable
Respect JitNoRangeChks flag in RyuJit
Gaurav Khanna [Wed, 21 Sep 2016 00:44:03 +0000 (17:44 -0700)]
Update Nuget package versions to 1.2.0
Carol Eidt [Tue, 20 Sep 2016 23:41:35 +0000 (16:41 -0700)]
Merge pull request #7252 from CarolEidt/x86GtObj
Support GT_OBJ for x86
Mike McLaughlin [Tue, 20 Sep 2016 22:22:33 +0000 (15:22 -0700)]
Fix launch timing issue in dbgshim found in VS. (#7279)
Issue #7274.
Joseph Tremoulet [Tue, 20 Sep 2016 20:09:32 +0000 (16:09 -0400)]
Respect JitNoRangeChks flag in RyuJit
Honor this config flag by having assertion prop treat all bounds check
nodes as redundant when it is set.
Also change the flag's lookup options to `REGUTIL_default` to match the
rest of the jit-focused flags.
Note that support for this flag is conditional on having the preprocessor
flag `FEATURE_ENABLE_NO_RANGE_CHECKS` defined, which requires a custom
build with line 199 of inc/switches.h un-commented (or with compile flags
altered to include `-DFEATURE_ENABLE_NO_RANGE_CHECKS`) -- the purpose of
the flag is to facilitate experiments to estimate the cumulative cost of
bounds checking in various workloads.
Carol Eidt [Sat, 10 Sep 2016 15:24:51 +0000 (08:24 -0700)]
Support GT_OBJ for x86
Add support for GT_OBJ for x86, and allow them to be transformed into a list
of fields (in morph) if it is a promoted struct. Add a new list type for
this (GT_FIELD_LIST) with the type and offset, and use it for the multireg
arg passing as well for consistency.
Also refactor fgMorphArgs so that there is a positive check for reMorphing,
rather than relying on gtCallLateArgs, which can be null if there are no
register args.
In codegenxarch, modify the struct passing (genPutStructArgStk) to work for
both the x64/ux and x86 case, including the option of pushing fields onto
the stack.
Eliminate the redundant INS_movs_ptr, and replace with the pre-existing
INS_movsp.
Davis Goodin [Tue, 20 Sep 2016 18:03:36 +0000 (13:03 -0500)]
Upgrade CLI, buildtools for RTM shared framework. (#7045)
kchoi [Tue, 20 Sep 2016 15:23:11 +0000 (08:23 -0700)]
mute EH failures exposed by LTO (#7267)
It does this by using a no-inline, no-opt function that takes in
the volatile pointer and performing operation that generates h/w
exception. The function has a runtime check on the volatile pointer to
pretend to throw (but never does), which fools the C++ runtime into
handling the h/w exception.
Vance Morrison [Tue, 20 Sep 2016 15:10:56 +0000 (08:10 -0700)]
Merge pull request #7268 from vancem/master
Fix Bad NGEN Pdbs for ReadyToRun images
Rama krishnan Raghupathy [Tue, 20 Sep 2016 05:35:49 +0000 (22:35 -0700)]
Merge pull request #7181 from ramarag/CompilerServices
Adding Compiler services APIs
Mike McLaughlin [Tue, 20 Sep 2016 01:47:25 +0000 (18:47 -0700)]
Create long-named DAC and SOS DLLs for Windows. (#7265)
Issue #5869
Rama Krishnan Raghupathy [Thu, 15 Sep 2016 20:45:04 +0000 (13:45 -0700)]
Fix GC Stress testing on non windows platforms
Rama Krishnan Raghupathy [Thu, 15 Sep 2016 00:03:11 +0000 (17:03 -0700)]
test FixedAddressValueType and RuntimeWrappedException
Vance Morrison [Mon, 19 Sep 2016 23:18:38 +0000 (16:18 -0700)]
FixBadReadyToRunPdb.9-19-16
Pat Gavlin [Mon, 19 Sep 2016 23:14:04 +0000 (16:14 -0700)]
Merge pull request #7232 from pgavlin/gh4186
Implement indirect VSD calls for x86.
Peter Kukol [Mon, 19 Sep 2016 22:44:22 +0000 (16:44 -0600)]
Add option for showing GT_xxx operator counts. (#7262)
Pat Gavlin [Mon, 19 Sep 2016 20:56:30 +0000 (13:56 -0700)]
Fix a bug in LIR::Use::ReplaceWith.
Dan Moseley [Mon, 19 Sep 2016 20:56:59 +0000 (13:56 -0700)]
Expose missing public field on Debugger (#7258)
Dan Moseley [Mon, 19 Sep 2016 18:16:37 +0000 (11:16 -0700)]
Fill out SecurityException with stubs (#7250)
Swaroop Sridhar [Mon, 19 Sep 2016 16:02:42 +0000 (09:02 -0700)]
Merge pull request #7237 from swaroop-sridhar/gc86legacy
X86 GcEncode: Support V1 and V2 encodings
Pat Gavlin [Sat, 17 Sep 2016 01:35:38 +0000 (18:35 -0700)]
Mark GT_IND nodes that represent VSD targets.
The operand to such a node must be materialized into a register on
certain platforms. This change defines a new IND-specific flag,
GTF_IND_VSD_TGT, and uses that flag to indicate that a particular
GT_IND node represents a VSD target. This flag is then observed by
lowering on the necessary platforms in order to short circuit the
logic that attempts to make the GT_IND's operand contained.
Swaroop Sridhar [Fri, 16 Sep 2016 21:32:06 +0000 (14:32 -0700)]
X86 GcEncode: Support V1 and V2 encodings
The RYU+LegacyBackend Desktop JIT for X86 is still on V1.
So, permit both V1 and V2 encodings in gcencode.cpp.
Bart J.F. De Smet [Mon, 19 Sep 2016 01:11:37 +0000 (18:11 -0700)]
Exposing Type.GetTypeFromHandleUnsafe from model.xml (#7249)
Exposing Type.GetTypeFromHandleUnsafe from model.xml
Justin Van Patten [Sun, 18 Sep 2016 22:36:33 +0000 (15:36 -0700)]
Version: Make fields readonly and delete duplicate code (#7246)
Change `Version`'s fields to `readonly` to better guarantee its
immutability, and remove duplicate code.
kvochko [Sun, 18 Sep 2016 06:04:18 +0000 (10:04 +0400)]
Prevent source line info from being released (#7222)
Rama Krishnan Raghupathy [Thu, 15 Sep 2016 02:55:54 +0000 (19:55 -0700)]
Exposing IUnknownConstantAttribute
Rama Krishnan Raghupathy [Wed, 14 Sep 2016 02:21:58 +0000 (19:21 -0700)]
Exposing Remaining CompilerServices Apis in mscorlib
Rama Krishnan Raghupathy [Wed, 14 Sep 2016 00:46:07 +0000 (17:46 -0700)]
Exposing ExecuteCodeWithGuaranteedCleanup in mscorlib
Rama Krishnan Raghupathy [Tue, 13 Sep 2016 23:34:56 +0000 (16:34 -0700)]
Exposing RunModuleConstructor in mscorlib
Eric Mellino [Sat, 17 Sep 2016 00:05:43 +0000 (17:05 -0700)]
Merge pull request #7238 from dotnet/mellinoe-patch-1
Add an Ubuntu 16.10 badge to README.md
Pat Gavlin [Fri, 16 Sep 2016 22:44:47 +0000 (15:44 -0700)]
Address PR feedback.
Michelle McDaniel [Fri, 16 Sep 2016 22:23:28 +0000 (15:23 -0700)]
Merge pull request #7169 from adiaaida/shiftCnsInt
Add optimization for shift by CNS_INT
Eric Mellino [Fri, 16 Sep 2016 21:54:50 +0000 (14:54 -0700)]
Add an Ubuntu 16.10 badge to README.md
Eric Mellino [Fri, 16 Sep 2016 21:38:12 +0000 (14:38 -0700)]
Merge pull request #7233 from mellinoe/ubuntu1610-ci
Add Ubuntu 16.10 to CI
Sepideh Khoshnood [Fri, 16 Sep 2016 20:12:56 +0000 (13:12 -0700)]
Add few System.Reflection APIs (#7193)
* Add few remaining exposable System.Reflection APIs
Michelle McDaniel [Fri, 9 Sep 2016 17:44:03 +0000 (10:44 -0700)]
Add optimization for shift by CNS_INT
This change adds support for shifting by a GT_CNS_INT without going
through a helper. If the shiftOp is a GT_CNS_INT we do several
transformations based on the shift amount:
If the shift amount is 0, the shift is a nop, so we just put together the
hi and lo ops as a GT_LONG.
If the shift amount is < 32, we generate a shl/shld pattern, a shr/shrd
pattern or a sar/shrd pattern, depending on the oper. The first operand of
the shrd/shld is a GT_LONG, which we crack in codegen, using it
essentially as two int operands, rather than creating a tri op GenTree
node (essentially so that we can have 3 operands, instead of the normal
two).
If the shift amount is 32, it differs between shifting left and shifting
right. For GT_LSH, we move the loOp into the hiResult and set the loResult
to 0. For GT_RSZ, we move the hiOp into the loResult, and set the hiResult
to 0. For GT_RSH, we move the hiOp into the loResult, and set the hiResult
to a 31 bit signed shift of the hiOp to sign extend.
If the shift amount is less than 64, but larger than 32: for GT_LSH, the
hiResult is a shift of the loOp by shift amount - 32 (the move from lo into hi is
the 32 bit shift). We set the loResult to 0. For GT_RSH and GT_RSZ, the
loResult is a right shift (signed for GT_RSH) of the hiOp by shift amount
- 32. The hiResult is 0 for GT_RSZ, and a 31 bit signed shift of hiOp1 for
GT_RSH.
If the shift amount is >= 64, we set both hiResult and loResult to 0 for
GT_LSH and GT_RSZ, and do a sign extend shift to set hiResult and loResult
to the sign of the original hiOp for GT_RSH.
Eric Mellino [Fri, 16 Sep 2016 19:11:29 +0000 (12:11 -0700)]
Add Ubuntu 16.10 to CI
Pat Gavlin [Mon, 12 Sep 2016 21:23:29 +0000 (14:23 -0700)]
Implement indirect VSD calls for x86.
Indirect VSD calls on x86 require not only that the address of the
VSD indirection cell is passed to the stub in EAX, but also that the
call instruction is
a) preceeded by a 3-byte NOP, and
b) exactly `call [eax]`.
On x64, these types of calls only require that the indirection cell
address is passed in R11 (i.e. they do not require the generation of
a specific call instruction encoding). The RyuJIT IR is therefore
able to represent such calls succinctly as something like:
t72 = lclVar ref V04 loc1 u:3 (last use) $240
/--* t72 ref
t295 = * putarg_reg ref
t202 = lclVar long V09 tmp4 u:4 $382
/--* t202 long
t296 = * putarg_reg long
t106 = lclVar long V09 tmp4 u:4 (last use) $382
/--* t106 long
t297 = * indir long
/--* t295 ref this in rcx
+--* t296 long arg1 in r11
+--* t297 long calli tgt
t107 = * call ind stub ref $24a
In this form, the address of the indirection cell is in the lclVar
`tmp4`, which is then used by both a `putarg_reg` to move the
argument into R11 and by the indirection that generates the call
target. Because there are a relatively large number of registers on
x64, this works out nicely: the address of the indirection cell is
frequently allocated to R11, few extraneous copies are required,
and the code generator produces `call [r11]` for the call instruction.
Unfortunately, the situation is not so straightforward on x86: not
only must code generator must both pass the address of the indirection
cell in EAX and produce the specific call form mentioned earlier,
but there are also far fewer available registers. As a result, the
address of the indirection cell is infrequently allocated to EAX and
(barring an implicit understanding in the code generator that a
previous putarg_reg has placed the address of the indirection cell
into EAX) requires a redundant `mov eax, ...` before the call.
Ideally, we would be able to store the address of the indirection cell
to a local with a very short lifetime and pre-allocate that local to
EAX, but the IR does not have that capability, and adding it now
seems to be prohibitively expensive. Instead, this change omits the
`putarg_reg` used to put the the indirection cell address into the
required register on other platforms and simply uses the `calli tgt`
operand to the call to represent both the non-standard argument and
the call target:
t40 = lclVar ref V04 loc1 u:3 $1c0
/--* t40 ref
t280 = * putarg_reg ref
t70 = lclVar int V06 loc3 u:4 (last use) $2c1
/--* t70 int
t281 = * indir int
/--* t280 ref this in ecx
+--* t281 int calli tgt
t71 = * call ind stub ref $1c6
Lowering then marks the indirection as contained and sets the
destination candidates for its operand to EAX.
Rama Krishnan Raghupathy [Wed, 14 Sep 2016 22:57:36 +0000 (15:57 -0700)]
Enable Building Libraries for ilproj
Peter Kukol [Fri, 16 Sep 2016 05:59:05 +0000 (23:59 -0600)]
Option for reporting GenTree operator bashing stats (#7152)
* Add option (off by default) to report GenTree operator bashing stats.
Wes Haggard [Fri, 16 Sep 2016 03:16:01 +0000 (20:16 -0700)]
Merge pull request #7212 from joperezr/FixmscorlibRef
Remove unwanted String.Split methods from Reference assembly
Pat Gavlin [Fri, 16 Sep 2016 02:11:30 +0000 (19:11 -0700)]
Merge pull request #7170 from pgavlin/gh7144
Refactor call arg table updates.
Sivarv [Fri, 16 Sep 2016 00:55:43 +0000 (17:55 -0700)]
Merge pull request #7194 from sivarv/jitstressregs1or8Fix
Fix to issues #7167, 7094 and 7143
Aditya Mandaleeka [Thu, 15 Sep 2016 23:56:26 +0000 (16:56 -0700)]
Minor fix in GC section of BOTR
Pat Gavlin [Tue, 13 Sep 2016 20:42:14 +0000 (13:42 -0700)]
Refactor call arg table updates.
When a call argument is replaced by a new node, the corresponding entry
in the call's argument table must be replaced. Managing this replacement
was a bit ad-hoc: there were a (small) number of places throughout the
compiler that needed to do so, and each determined whether or not to
call the udpate method (`fgFixupArgTabEntryPtr`) independently. The
update method has been removed and its functionality replaced with a
new method, `GenTree::ReplaceOperand`, which will update the call
argument table iff the replaced node is a call argument.
Jose Perez Rodriguez [Thu, 15 Sep 2016 23:19:50 +0000 (16:19 -0700)]
Adding new Split members with defaults
sivarv [Thu, 15 Sep 2016 18:30:48 +0000 (11:30 -0700)]
Fix LSRA stress modes not to constrain candidates to below the
required limit.
Gaurav Khanna [Thu, 15 Sep 2016 22:40:27 +0000 (15:40 -0700)]
Merge pull request #7213 from dotnet/revert-7123-WinArm32CI
Revert "Enable Win32Arm CI support"
Gaurav Khanna [Thu, 15 Sep 2016 22:30:32 +0000 (15:30 -0700)]
Revert "Enable Win32Arm CI support"
Jose Perez Rodriguez [Thu, 15 Sep 2016 21:49:47 +0000 (14:49 -0700)]
Remove unwanted String.Split methods from Reference assembly
Joseph Tremoulet [Thu, 15 Sep 2016 20:32:13 +0000 (16:32 -0400)]
Merge pull request #7159 from JosephTremoulet/HelperHoist
Recognize mod-free helper calls in loop hoisting
Sean Gillespie [Thu, 15 Sep 2016 20:05:03 +0000 (13:05 -0700)]
Update the GC from CoreRT (#7207)
Gaurav Khanna [Thu, 15 Sep 2016 18:08:27 +0000 (11:08 -0700)]
Merge pull request #7123 from gkhanna79/WinArm32CI
Enable Win32Arm CI support
Joseph Tremoulet [Thu, 25 Aug 2016 17:45:20 +0000 (13:45 -0400)]
Recognize mod-free helper calls in loop hoisting
Update the code in `optHoistLoopExprsForTree` that identifies exprs with
memory side-effects to recognize helper calls that don't mutate the heap;
this allows hoisting invariant exprs past such helper calls.
Fixes #6901.
Joseph Tremoulet [Thu, 15 Sep 2016 17:48:20 +0000 (13:48 -0400)]
Merge pull request #7162 from JosephTremoulet/VolatileTest
Add missing volatile annotation to test
Joseph Tremoulet [Tue, 13 Sep 2016 17:01:15 +0000 (13:01 -0400)]
Harden test against JIT optimizations
Declare static field `finalizerCompletedOnce` volatile -- this test has a
side-effect-free busy-loop which checks that static variable for a change it
expects a finalizer to make to it; this static field must be volatile to
ensure the jit doesn't hoist the load from the loop.
Call GC.KeepAlive on the objects constructed in the various allocation
loops in this test, to make sure that the entire allocation isn't
optimized away.
Joseph Tremoulet [Thu, 15 Sep 2016 15:37:43 +0000 (11:37 -0400)]
Merge pull request #7201 from JosephTremoulet/MscVer
Update _MSC_FULL_VER check for constexpr handling
Gaurav Khanna [Thu, 15 Sep 2016 14:36:06 +0000 (07:36 -0700)]
Merge pull request #7179 from dotnet-bot/master-UpdateDependencies
Update CoreClr, CoreFx, External to beta-24515-02, beta-24514-06, beta-24514-00, respectively (master)
Joseph Tremoulet [Thu, 15 Sep 2016 01:08:04 +0000 (21:08 -0400)]
Update _MSC_FULL_VER check for constexpr handling
Previously the code was comparing against
190024210 (VS2015 Update 3).
Update it to instead compare against
190024315, the last pre-release build
before C++14 constexpr support got added; this fixes compilation using
pre-release MSVC compilers between 24210 and 24315.
Fixes #6642.
James Ko [Thu, 15 Sep 2016 11:37:41 +0000 (07:37 -0400)]
Override CopyTo in MemoryStream (#7131)
* Cache some virtual method calls in Stream.ValidateCopyToArguments
* Add override of Stream.CopyTo to MemoryStream
dotnet-bot [Thu, 15 Sep 2016 08:13:44 +0000 (08:13 +0000)]
Update CoreClr, CoreFx, External to beta-24515-02, beta-24514-06, beta-24514-00, respectively
Justin Van Patten [Thu, 15 Sep 2016 00:48:51 +0000 (17:48 -0700)]
Minor String.Split cleanup to align more closely with CoreRT (#7185)
Pat Gavlin [Wed, 14 Sep 2016 23:40:41 +0000 (16:40 -0700)]
Merge pull request #7189 from pgavlin/x86-cmp-long
Implement long compare lowering for x86.
Carol Eidt [Wed, 14 Sep 2016 23:37:33 +0000 (16:37 -0700)]
Merge pull request #7188 from CarolEidt/Fix7160
Allow GT_OBJ for Arm64
Vance Morrison [Wed, 14 Sep 2016 22:45:58 +0000 (15:45 -0700)]
Merge pull request #6892 from jamesqo/list-optimizations
Copy directly to the internal buffer in List.InsertRange
Pat Gavlin [Wed, 14 Sep 2016 21:22:52 +0000 (14:22 -0700)]
Address more PR feedback.
Pat Gavlin [Wed, 14 Sep 2016 20:18:06 +0000 (13:18 -0700)]
Address PR feedback.
Swaroop Sridhar [Wed, 14 Sep 2016 19:26:20 +0000 (12:26 -0700)]
Merge pull request #6974 from swaroop-sridhar/gc86
Implement GcInfo v2 for X86