Atsushi Kanamori [Tue, 27 Jun 2017 18:51:28 +0000 (11:51 -0700)]
Fix bad range check in TextInfo.IndexOfStringOrdinalIgnoreCase (dotnet/coreclr#12478)
Breaks:
int idx = "\uabcd".IndexOf("", 1, StringComparison.OrdinalIgnoreCase);
should return 1, returns -1 instead.
(propagated fix from CoreRT)
Commit migrated from https://github.com/dotnet/coreclr/commit/
53900a63a76cce3e054bd93d1533348edc2c71f1
Ruben Ayrapetyan [Tue, 27 Jun 2017 18:31:03 +0000 (21:31 +0300)]
Implement JIT_NewArr1_R2R as R2R wrapper for JIT_NewArr1 to support both MethodTable-based and TypeDesc-based helpers. (dotnet/coreclr#12475)
Related issue: dotnet/coreclr#12463
Commit migrated from https://github.com/dotnet/coreclr/commit/
3951920cbd825c2b2251ba3572ca354f887d6033
Carol Eidt [Tue, 27 Jun 2017 14:36:56 +0000 (07:36 -0700)]
Merge pull request dotnet/coreclr#12473 from hqueue/arm/ryujit/lsra_use_helper
[RyuJIT/ARM32][WIP] Update LSRA with helpers
Commit migrated from https://github.com/dotnet/coreclr/commit/
f1499d2214d0d8d630bff30045ce520b73d4356c
Konstantin Baladurin [Tue, 27 Jun 2017 14:19:31 +0000 (17:19 +0300)]
[Linux][GDB-JIT] Fix memory leak (dotnet/coreclr#12452)
Use NewArrayHolder for pVars in LocalsInfo class
Commit migrated from https://github.com/dotnet/coreclr/commit/
81925e260279a88d268dcfd862b43d49254f9def
Hyung-Kyu Choi [Tue, 27 Jun 2017 11:24:34 +0000 (20:24 +0900)]
[RyuJIT/ARM32] Update LSRA with new helper
- Introduce updatePreviousInterval()
- Update LSRA with helper
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
45c302fcf3c9e847af41a53f2e97ed87d0c366ef
Sergey Andreenko [Tue, 27 Jun 2017 06:00:59 +0000 (23:00 -0700)]
support spmi collection for r2r calls. (dotnet/coreclr#12343)
* CreateAgnostic_CORINFO_SIG_INFO
Also you pSig_Index always when it is index in the buffer map,
as we do for sigInst_classInst_Index for example.
* spmi Restore_CORINFO_RESOLVED_TOKENout
delete another duplicate.
* SpmiDumpHelper
* spmi cleaning: GetFunctionEntryPoint and GetAddressOfPInvokeTarget
* support GetReadyToRunHelper and GetReadyToRunDelegateCtorHelper in spmi.
* Fix typo that annoys desktop build.
* spmi GetReadyToRunDelegateCtorHelper
* spmi: use agnostic type for GetReadyToRunDelegateCtorHelper value.
* spmi dump Agnostic_CORINFO_LOOKUP
add stubLookup to dmpGetCallInfo
* clean dmpGetMethodSig and dmpGetTailCallCopyArgsThunk
Commit migrated from https://github.com/dotnet/coreclr/commit/
b05580db650323a5933957742b0b622ae1abaf53
Hyung-Kyu Choi [Tue, 27 Jun 2017 05:48:33 +0000 (14:48 +0900)]
[RyuJIT/ARM32] Use helper for LSRA
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
e38a867f0c122c87f63e0064524ff61364e6d73a
Pat Gavlin [Tue, 27 Jun 2017 05:34:53 +0000 (22:34 -0700)]
Merge pull request dotnet/coreclr#12460 from pgavlin/SinglePassRationalize
Rephrase rationalize as a single IR walk.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2fd5d167de39a73020ce616d8605097f38f29dfd
Pat Gavlin [Tue, 27 Jun 2017 03:32:53 +0000 (20:32 -0700)]
Format code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
85d222d4868f9081a1104e37f82f066be9266b8a
Carol Eidt [Tue, 27 Jun 2017 00:25:55 +0000 (17:25 -0700)]
Merge pull request dotnet/coreclr#12423 from CarolEidt/ContainDoNotEnreg
Mark lvDoNotEnregister lclVars as contained
Commit migrated from https://github.com/dotnet/coreclr/commit/
f94ef83a2cafd2ef2db6594a365677924b25f039
Pat Gavlin [Mon, 26 Jun 2017 23:16:27 +0000 (16:16 -0700)]
Merge pull request dotnet/coreclr#12457 from pgavlin/RewriteIntrinsicsRefactor
Refactor the rationalizer's instrinsic rewriter.
Commit migrated from https://github.com/dotnet/coreclr/commit/
54e8503de4a20dd666bac6448f6296e459891a38
Pat Gavlin [Mon, 26 Jun 2017 21:56:09 +0000 (14:56 -0700)]
Rephrase rationalize as a single IR walk.
This walk performs both pre- and post-order visits. The pre-order visit
is responsible for rewriting intrinsics as user calls where necessary;
the post-order visit is resonsible for converting HIR nodes into LIR
nodes.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7a050280050cac265d6ab8eb1708fab934c492e2
Pat Gavlin [Mon, 26 Jun 2017 21:40:15 +0000 (14:40 -0700)]
Use LIR utilities in the intrinsic rewriter.
This simplifies the code a bit and prepares it for some changes to
perform single-pass rationalization.
Commit migrated from https://github.com/dotnet/coreclr/commit/
115a357068bde4ba5a1432d9f5811c3446a830e7
Pat Gavlin [Mon, 26 Jun 2017 22:31:06 +0000 (15:31 -0700)]
Merge pull request dotnet/coreclr#12440 from pgavlin/MaintainIsUnusedValue
Maintain `LIR::IsUnusedValue` in the backend.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6fdfb022b10a2713ed468af67eb604956a80d381
Pat Gavlin [Mon, 26 Jun 2017 22:30:15 +0000 (15:30 -0700)]
Update a header comment.
Commit migrated from https://github.com/dotnet/coreclr/commit/
030b7a12ec0d172fbd22a94c07fe55659d4dfc74
Pat Gavlin [Mon, 26 Jun 2017 21:43:27 +0000 (14:43 -0700)]
Format code and address PR feedback.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4ceaacb4f02ee2bd2b7fb57d1271f14b2615a14
Ruben Ayrapetyan [Mon, 26 Jun 2017 21:18:19 +0000 (00:18 +0300)]
Replace array type handle with method table in arguments of array allocation helpers (dotnet/coreclr#12369)
* Remove direct usage of type handle in JIT_NewArr1, with except of retrieving template method table.
* Assert that array type descriptor is loaded when array object's method table is set.
* Pass template method tables instead of array type descriptors to array allocation helpers.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8cc7e35dd0a625a3b883703387291739a148e8c8
Pat Gavlin [Mon, 26 Jun 2017 19:58:42 +0000 (12:58 -0700)]
Refactor the rationalizer's instrinsic rewriter.
Change its two constituent static methods into instance methods.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8694f596b13536bf82b5ab0b5e0582529da13bc2
Pat Gavlin [Mon, 26 Jun 2017 15:52:31 +0000 (08:52 -0700)]
Merge pull request dotnet/coreclr#12441 from pgavlin/TryGetUseInline
Avoid the use edge iterator in `TryGetUse`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
959dacc9f0b09eb9f8c418eabb1b9180ceb6f5ac
Jan Kotas [Fri, 23 Jun 2017 01:43:00 +0000 (18:43 -0700)]
Merge pull request dotnet/corertdotnet/coreclr#3969 from dotnet/nmirror
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
2c7a7011d940f906dceabb80fe82a81f80cdc656
Pat Gavlin [Sat, 24 Jun 2017 21:09:29 +0000 (14:09 -0700)]
Format code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba8c88f51a1439f15ee4e72b7cf43417d5d0b99b
Pat Gavlin [Wed, 21 Jun 2017 17:24:27 +0000 (10:24 -0700)]
Return early in `TryGetUse` for unused nodes.
Now that `IsUnusedValue` is maintained during the first half of the
backend, `TryGetUse` can terminate early if it is set.
Note that this may return false negatives if the `IsUnusedValue` flag is
incorrectly set, but remains correct if said flag is incorrectly
cleared.
Commit migrated from https://github.com/dotnet/coreclr/commit/
422be4021c63bc2cee06773e4678058eddcf4a54
Pat Gavlin [Sat, 24 Jun 2017 00:41:06 +0000 (17:41 -0700)]
Remove an IR walk during lowering.
Now that the `IsUnusedValue` flag is maintained by decomposition and
lowering, it does not need to be recalculated before LSRA.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0dcf3843ccbeb1e1937d84cfbe155a7e55fd38c2
Pat Gavlin [Wed, 21 Jun 2017 01:22:45 +0000 (18:22 -0700)]
Maintain `LIR::IsUnusedValue` in the backend.
This flag indicates whether or not the SDSU temp produced by a node is
ever read. This information is needed by the register allocator, but is
also useful in other parts of the compiler (for example, `TryGetUse` can
return immediately if this flag is set). Setting this flag properly in
rationalize and maintaining it through decomposition and lowering allows
us to remove an IR walk immediately prior to LSRA.
Commit migrated from https://github.com/dotnet/coreclr/commit/
04668c8a76da2b1ee07b48e00ae0376ddfbad960
Pat Gavlin [Sat, 24 Jun 2017 21:06:48 +0000 (14:06 -0700)]
Merge pull request dotnet/coreclr#12439 from pgavlin/SkipDecomp
Update compLongUsed in rationalize.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ab7f3407fa9a03110157ee659b5145a8f6e392ca
sergey ignatov [Sat, 24 Jun 2017 15:57:59 +0000 (18:57 +0300)]
[CoreRT armel] fix for PINVOKE calls in CoreRT (dotnet/coreclr#12373)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7293eead91009822fe2ce18c635f7655165169aa
Pat Gavlin [Fri, 23 Jun 2017 22:31:47 +0000 (15:31 -0700)]
Avoid the use edge iterator in `TryGetUse`.
`TryGetUse` does not require the ordering semantics provided by the use
edge iterator. Replace use edge iteration with manual inspection of each
node type.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2f96406751925fe3d8d7074b2d687a1abb785ed7
Pat Gavlin [Fri, 23 Jun 2017 16:26:42 +0000 (09:26 -0700)]
Update compLongUsed in rationalize.
This allows us to skip decompisition if long-typed values are not used by a method.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2d361dfb2d4da252c800015ba005471377622a7a
Carol Eidt [Fri, 23 Jun 2017 21:54:27 +0000 (14:54 -0700)]
Mark lvDoNotEnregister lclVars as contained
Even if a lclVar is tracked, it may not be a register candidate. When determining whether a lclVar should be contained or RegOptional, take that into account.
In the interest of making this as accurate as possible, mark lclVars early as lvDoNotEnregister when they meet criteria that will later disqualify them from a register.
Commit migrated from https://github.com/dotnet/coreclr/commit/
76da82932a378487df304d776d5f539ca0f1de5d
Hugh Bellamy [Fri, 23 Jun 2017 22:23:50 +0000 (05:23 +0700)]
Update Windows parameter name for Normalize/IsNormalized with invalid form (dotnet/coreclr#12430)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ffe925a22778e33563eaf23c04a33933ca341e97
Carol Eidt [Thu, 22 Jun 2017 18:43:57 +0000 (11:43 -0700)]
# This is a combination of 2 commits.
# The first commit's message is:
Mark lvDoNotEnregister lclVars as contained
Even if a lclVar is tracked, it may not be a register candidate. When determining whether a lclVar should be contained or RegOptional, take that into account.
In the interest of making this as accurate as possible, mark lclVars early as lvDoNotEnregister when they meet criteria that will later disqualify them from a register.
# This is the commit message dotnet/coreclr#2:
Formatting
Commit migrated from https://github.com/dotnet/coreclr/commit/
34f400e5469900456f81226430b24e760a2d17f9
Mike McLaughlin [Fri, 23 Jun 2017 22:02:36 +0000 (15:02 -0700)]
Add ELF program and section headers to core dump. (dotnet/coreclr#12425)
Add ELF program and section headers to core dump.
Issue dotnet/coreclr#12341
This allows the build id for the modules be extracted properly.
Add .eh_frame, .eh_frame_hdr and some other important sections to core dump.
Add managed module names to core dump so the symbol acquisition
tool can get symbol store keys for them.
Add the non memory/file backed memory regions to core dump so debuggers
like lldb can check if an address is "code" or not. Unwinding doesn't
work when there isn't a module/.so file present.
Commit migrated from https://github.com/dotnet/coreclr/commit/
619334db7e5595888e6409570750ccffe4c4c126
Sean Gillespie [Fri, 23 Jun 2017 21:48:41 +0000 (14:48 -0700)]
[Local GC] Remove a number of inclusions of handle table private headers from the VM (dotnet/coreclr#12389)
* Remove inclusions of private handle table headers from the VM
* Add TraceRefCountedHandles to the GC handle table interface
* Fix the Unix build
* Move ValidatePinnedObject to marshalnative.h
Commit migrated from https://github.com/dotnet/coreclr/commit/
3a24095610ecaba62495740bf8319ad467af4997
Bruce Forstall [Fri, 23 Jun 2017 21:26:56 +0000 (14:26 -0700)]
Fix JitMinOptsTrackGCrefs for legacy x86 back-end (dotnet/coreclr#12416)
Addresses dotnet/coreclr#12415
Commit migrated from https://github.com/dotnet/coreclr/commit/
16cee64552b4fd6d08dd84b273cc223094d5b5f6
William Godbe [Fri, 23 Jun 2017 19:20:56 +0000 (12:20 -0700)]
Merge pull request dotnet/coreclr#12424 from wtgodbe/ArmRunsPipeline
Enable ARM test runs in Helix
Commit migrated from https://github.com/dotnet/coreclr/commit/
c7b87e70b3089a2c4894441660f01a8cd7a38864
Xiangyang (Mark) Guo [Fri, 23 Jun 2017 00:39:41 +0000 (17:39 -0700)]
Fix systemMask on Linux (dotnet/coreclr#12387)
* fix systemMask
* code refactor
Commit migrated from https://github.com/dotnet/coreclr/commit/
f3abd81b2fd713424fa71ce6e066da7eefb093ce
Sergey Andreenko [Thu, 22 Jun 2017 23:41:21 +0000 (16:41 -0700)]
Spmi third cleaning (dotnet/coreclr#12418)
* CreateAgnostic_CORINFO_SIG_INFO
Also you pSig_Index always when it is index in the buffer map,
as we do for sigInst_classInst_Index for example.
* spmi Restore_CORINFO_RESOLVED_TOKENout
delete another duplicate.
* SpmiDumpHelper
Commit migrated from https://github.com/dotnet/coreclr/commit/
c5cdc2342e741fe96c7b3ae1be7fc595f5a3306d
Bruce Forstall [Thu, 22 Jun 2017 23:06:24 +0000 (16:06 -0700)]
Merge pull request dotnet/coreclr#12409 from dotnet-bot/from-tfs
Merge changes from TFS
Commit migrated from https://github.com/dotnet/coreclr/commit/
f0a21377c3be7e643a02cafa94b457b0b9c3805c
Bruce Forstall [Thu, 22 Jun 2017 21:24:23 +0000 (14:24 -0700)]
Merge pull request dotnet/coreclr#12417 from sjsinju/fix_3bytes_struct
[RyuJIT/ARM32] Change the 3bytes struct to int on morph phase.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c8148261c39cd9a490bea83e0aab17d19c0e933e
wtgodbe [Thu, 22 Jun 2017 18:59:49 +0000 (11:59 -0700)]
Enable ARM test runs in Helix
Commit migrated from https://github.com/dotnet/coreclr/commit/
2c26cc7f6940e900a342efcf8fd9c77195a69bde
William Godbe [Thu, 22 Jun 2017 18:55:26 +0000 (11:55 -0700)]
Merge pull request dotnet/coreclr#12413 from wtgodbe/ArmRuns
First step for enabling ARM test runs
Commit migrated from https://github.com/dotnet/coreclr/commit/
07288545c246545d0af3627e6ae71b433758b0f7
Carol Eidt [Thu, 22 Jun 2017 18:35:34 +0000 (11:35 -0700)]
Merge pull request dotnet/coreclr#12422 from CarolEidt/lvaSetClassDiffable
Make lvaSetClass dump diffable
Commit migrated from https://github.com/dotnet/coreclr/commit/
a12306693cdce686ef6373e09fdf345b235d9a27
Carol Eidt [Thu, 22 Jun 2017 17:35:36 +0000 (10:35 -0700)]
Make lvaSetClass dump diffable
Commit migrated from https://github.com/dotnet/coreclr/commit/
d9cdd1b0421fbc2f53c7f69184b294af01590043
Ravi Eda [Thu, 22 Jun 2017 17:19:59 +0000 (12:19 -0500)]
Update attribute-value in security build definition. (dotnet/coreclr#12419)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4876c41d5ca8700410a6b052ef3450a379ca4f1
sjsujinkim [Thu, 22 Jun 2017 01:52:59 +0000 (10:52 +0900)]
[RyuJIT/ARM32] Change the 3bytes struct to int on morph phase.
It is necessary that the 3bytes struct which is a local var to int on morph phase.
Related Issue : dotnet/coreclr#12290 (Assertion failed 'emitTypeSizes[TypeGet(type)] > 0')
Commit migrated from https://github.com/dotnet/coreclr/commit/
d2d8f7fad4a0f4873003384815d5ab329ee1ac43
Yuri Vanin [Thu, 22 Jun 2017 04:57:25 +0000 (21:57 -0700)]
Add String.Contains overload with StringComparison (dotnet/coreclr#12400)
Staging change of System.Private.CoreLib for CoreFX dotnet/coreclr#20846
Commit migrated from https://github.com/dotnet/coreclr/commit/
e1ceca5f5099761f9bc3be17fbc5cbd3e2b72ec4
Sergey Andreenko [Wed, 21 Jun 2017 23:20:37 +0000 (16:20 -0700)]
Spmi second cleaning (dotnet/coreclr#12402)
* don't init zero-init struct with nulls.
* Clean spmi code for GetTokenTypeAsHandle and GetCastingHelper
* Clean spmi GetVarArgsHandle and CanGetVarArgsHandle
* Clean GetCookieForPInvokeCalliSig and CanGetCookieForPInvokeCalliSig
* clean spmi GetNewHelper
* clean spmi GetArgType
* clean spmi GetArgClassValue
Commit migrated from https://github.com/dotnet/coreclr/commit/
efc4758140f2f0b856d97fc847415a22c8dfefc9
wtgodbe [Wed, 21 Jun 2017 22:57:10 +0000 (15:57 -0700)]
First step for enabling ARM test runs
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d712086ff3bb726444ea6044262ff2b9183560e
Michelle McDaniel [Wed, 21 Jun 2017 21:34:27 +0000 (14:34 -0700)]
Merge pull request dotnet/coreclr#12404 from adiaaida/changeLinuxTPAssemblies
Align Linux TP benchmarks with Windows TP benchmarks
Commit migrated from https://github.com/dotnet/coreclr/commit/
ba2376eed717e0c7384c577357649a82722f586b
Bruce Forstall [Wed, 21 Jun 2017 19:26:56 +0000 (12:26 -0700)]
Fix arm64 build break
[tfs-changeset: 1662444]
Commit migrated from https://github.com/dotnet/coreclr/commit/
98bdd562b6ad4dd8820dbcc1b4a831b040772d19
Jeremy Kuhne [Wed, 21 Jun 2017 18:51:36 +0000 (11:51 -0700)]
Need to pass handle to SeekCore (dotnet/coreclr#12399)
We're not setting the member field until the end of construction.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e6f7f471f8050b9e881d909321f95e9bfc257ee0
Koundinya Veluri [Wed, 21 Jun 2017 18:07:01 +0000 (11:07 -0700)]
Fix event, semaphore, mutex create/open to request the maximum allowe… (dotnet/coreclr#12381)
Fix event, semaphore, mutex create/open to request the maximum allowed access
Functional fix for dotnet/coreclr#11306
- Ported dotnet/corert@dotnet/coreclr@
78fae17f5434839a8720603973ff53f27e27f916 to CoreCLR, see that commit for details on the hang during mutex creation that is also fixed by this change.
- Replaced all uses of the *_ALL_ACCESS flags relevant to events, semaphores, and mutexes
Commit migrated from https://github.com/dotnet/coreclr/commit/
ccd8dd1308c90b7495f182f5a7e121d25aa5e27b
Eugene Rozenfeld [Wed, 21 Jun 2017 17:52:47 +0000 (10:52 -0700)]
Merge pull request dotnet/coreclr#12395 from erozenfeld/fgMorphRecognizeBoxNullable
Fix for a bug in fgMorphRecognizeBoxNullable.
Commit migrated from https://github.com/dotnet/coreclr/commit/
66678b6560ef666a80756be54c78f2a5f294baf6
Ravi Eda [Wed, 21 Jun 2017 17:18:46 +0000 (12:18 -0500)]
Provision CodeBase and NotificationAlias variables -CoreCLR (dotnet/coreclr#12403)
* Security build JSONs.
* Provision CodeBase and NotificationAlias variables.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b3e25754f43ce3dbdfda558eb14d1f881f0e3a19
Michelle McDaniel [Wed, 21 Jun 2017 16:55:43 +0000 (09:55 -0700)]
Align Linux TP benchmarks with Windows TP benchmarks
On Windows, we download a set of assemblies that we have uploaded to
MyGet. On Linux, we were building corefx each run to get the benchmarks.
This change updates Linux to pull down the same benchmarks Windows uses,
using curl to grab the nuget package from MyGet.
Note: after this commit, we will have data for fewer assemblies on
Linux, but we will now have the same set for both Windows and Linux.
Some data in Benchview may be affected.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e38cf70d87a42aa8d0a9b6bdbf3ef7b657955584
Wes Haggard [Wed, 21 Jun 2017 16:19:46 +0000 (09:19 -0700)]
Merge pull request dotnet/coreclr#12379 from dotnet-maestro-bot/master-UpdateDependencies
Update CoreClr, CoreFx to preview1-25421-01, preview1-25421-02, respectively (master)
Commit migrated from https://github.com/dotnet/coreclr/commit/
939af8b02b971e3204f7500e369140a42ad14026
Carol Eidt [Wed, 21 Jun 2017 14:46:23 +0000 (07:46 -0700)]
Merge pull request dotnet/coreclr#12164 from hqueue/arm/ryujit/lsra_12078_live_in
[RyuJIT/ARM32] Unassign double register properly at BB entry
Commit migrated from https://github.com/dotnet/coreclr/commit/
8f4a1a5aebc902cfbca5bb469122cbb63862628e
Carol Eidt [Wed, 21 Jun 2017 14:43:37 +0000 (07:43 -0700)]
Merge pull request dotnet/coreclr#12358 from jyoungyun/ryujit/assersion_failed_info_numslots_is_1
[RyuJIT/ARM32] Assign 2 numslots to gtLsraInfo.srcCount in TYP_DOUBLE
Commit migrated from https://github.com/dotnet/coreclr/commit/
c247b7cb92b31fa8de61b2fa3d05767d1a970cec
dotnet-maestro-bot [Wed, 21 Jun 2017 13:38:07 +0000 (13:38 +0000)]
Update CoreClr, CoreFx to preview1-25421-01, preview1-25421-02, respectively
Commit migrated from https://github.com/dotnet/coreclr/commit/
23ed7cdf12d37ac82694234b8120d63caa7dcd1c
Richard L. Jackson [Wed, 21 Jun 2017 09:33:20 +0000 (11:33 +0200)]
Please include this line to enable build (dotnet/coreclr#12382)
find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-4.0/include")
Commit migrated from https://github.com/dotnet/coreclr/commit/
0c457911c19fcfb921f69c5e06450f5d89f068b9
Sergey Andreenko [Wed, 21 Jun 2017 07:27:08 +0000 (00:27 -0700)]
Spmi source code cleaning (dotnet/coreclr#12378)
* fix pointer names in CORINFO_RESOLVED_TOKENin
* Remove exceptionCode from Agnostic_CORINFO_RESOLVED_TOKENout
The target if to do Agnostic_CORINFO_RESOLVED_TOKEN =
Agnostic_CORINFO_RESOLVED_TOKENin + Agnostic_CORINFO_RESOLVED_TOKENout
* Agnostic_CORINFO_RESOLVED_TOKEN = Agnostic_CORINFO_RESOLVED_TOKENin + Agnostic_CORINFO_RESOLVED_TOKENout
* spmi cleaning for ResolvedToken.
It is only the first part of changes. I am trying to delete as many code
as I can, because for now it is bad pain to make changes in this files.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9121670c7a3f927c4a7a4b9711fdc904eeef281c
Eugene Rozenfeld [Tue, 20 Jun 2017 23:46:02 +0000 (16:46 -0700)]
Fix for a bug in fgMorphRecognizeBoxNullable.
fgMorphRecognizeBoxNullable doesn't work correctly when called during re-morphing. In particular it can't handle late args in the call to CORINFO_HELP_BOX_NULLABLE. The test case results in several asserts (the first one in lsra) followed by an infinite loop in the jit.
The reason the optimization is not performed during global morph is that only patterns with GT_EQ and GT_NE are handled. Some versions of csc generate
...
ldnull
cgt.un
ret
for
this C# line
null != this.value
so we get GT_GT instead.
The fix has two parts:
1. Don't attempt to perform the optimization when called during re-morph and the struct parameter is a late arg.
2. Call fgMorphRecognizeBoxNullable for GT_GT nodes with GTF_UNSIGNED set. This allows the optimization to fire during global morph.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e78d2fd7a533c5244e442fdaec032ca697fc8a97
Hyung-Kyu Choi [Wed, 21 Jun 2017 03:06:19 +0000 (12:06 +0900)]
Enable and use updateAssginedInterval() for all targets
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
6dd3d4c991544d02ac88817d745125b84e69598c
Daniel Podder [Wed, 21 Jun 2017 02:39:49 +0000 (19:39 -0700)]
Update trusted RHEL build Dockertag to support LTO (dotnet/coreclr#12396)
The new RHEL image was generated using the same Dockerfile as the
previous, but has LLVM recompiled with gold support enabled, which is
required to do a build with -flto (a prerequisite for PGO).
Commit migrated from https://github.com/dotnet/coreclr/commit/
bed557d59ab60ede4204d6186ca7daf57eb7869c
Hyung-Kyu Choi [Wed, 21 Jun 2017 02:21:45 +0000 (11:21 +0900)]
Introduce LinearScan::isAssignedToInterval()
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
12b5f6cfc4e4fed885b090ae9177e0c0286550de
Jiyoung Yun [Wed, 21 Jun 2017 02:09:14 +0000 (11:09 +0900)]
Fix typo and formatting issues
Commit migrated from https://github.com/dotnet/coreclr/commit/
85d30d70581b2b6cd6e1e283d1aeb514e0fd26bb
Jiyoung Yun [Tue, 20 Jun 2017 09:43:44 +0000 (18:43 +0900)]
[RyuJIT/ARM32] Avoid assersion for double arguments
Double arguments in ARM32 uses 2 slots and it isn't a multi-reg struct.
In this case, it should avoid an assersion that checks if the slot is 1.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8bdde1c968e56a948f76b5c36750e6a738662950
Jiyoung Yun [Mon, 19 Jun 2017 07:32:17 +0000 (16:32 +0900)]
[RyuJIT/ARM32] Assign 1 srcCount in TYP_DOUBLE
Even though TYP_DOUBLE uses 2 numSlots, we consume 1 srcCount in TYP_DOUBLE
Commit migrated from https://github.com/dotnet/coreclr/commit/
969ce883cf5262115ee8774517a1716a317866f4
Jiyoung Yun [Fri, 16 Jun 2017 02:52:35 +0000 (11:52 +0900)]
Assign 2 numslots to gtLsraInfo.srcCount in TYP_DOUBLE
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4447721476bf2a559ce9aca8d49718d31831513
Hyung-Kyu Choi [Tue, 20 Jun 2017 11:03:32 +0000 (20:03 +0900)]
[RyuJIT/ARM32] Use helper to update RegRecord
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
b06bb8d7fd5468f606b867839e7f80f40d6df2e4
Hyung-Kyu Choi [Thu, 8 Jun 2017 10:21:35 +0000 (19:21 +0900)]
[RyuJIT/ARM32] Clear assigned interval of double register
Clear assigned interval of double register properly
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
fc3492a8a831e768ff6a6de9ae41b977ac6d4fbc
Hyung-Kyu Choi [Thu, 8 Jun 2017 09:33:12 +0000 (18:33 +0900)]
[RyuJIT/ARM32] Unassign double register properly at BB entry
When updating var locations at basic block entry, we should
unassign double register properly for TYP_DOUBLE interval.
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
02f11738345521f0f736333b278dd0d14d6cf3b7
Atsushi Kanamori [Tue, 20 Jun 2017 23:44:56 +0000 (16:44 -0700)]
Stub Environment from registry apis inside app-containers. (CoreCLR) (dotnet/coreclr#12390)
We're not going to get exemptions for these inside appcontainers
so we'll change them to behave as they do on Unix (present
an empty reg key that eats writes requests.)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c1456fe280d5ea5e3e2f99024d905ce85439493c
Tomas Weinfurt [Tue, 20 Jun 2017 23:05:20 +0000 (16:05 -0700)]
Update building documentation for osx/macOS (dotnet/coreclr#12366)
* Update osx-instructions.md
add 10.12 Sierra as minimal needed version and add some more notes for pkg-config add reference to clean.sh
Commit migrated from https://github.com/dotnet/coreclr/commit/
d43491dda8f83586f4f4d35679c67509d7920ad3
Sean Gillespie [Tue, 20 Jun 2017 22:24:05 +0000 (15:24 -0700)]
[Local GC] Move handle creation/deletion profiler callbacks out of the GC (dotnet/coreclr#12314)
* [Local GC] Move handle creation and handle destruction profiler
callbacks out of the GC
* Remove dead code
* Move some handle-related code out of gcheaputilities.cpp and into gchandleutilities.cpp
* Address code review feedback, remove some more dead code and add some style fixes
* Refactor handle creation and destruction helpers to go through a common function
Commit migrated from https://github.com/dotnet/coreclr/commit/
e7725a6ff986879f8ff2fd9e09ab636545ba7bca
Hyung-Kyu Choi [Tue, 20 Jun 2017 21:09:22 +0000 (06:09 +0900)]
[RyuJIT/ARM32] Implement storing multi-reg/HFA return value at caller (dotnet/coreclr#12294)
* [RyuJIT/ARM32] Initial implementation of multi-reg return
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* [RyuJIT/ARM32] Update multi-reg return for ARM32
- Update comment
- Remove wrong implementation
- Handle HFA struct correctly by consitering type
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* Update comments for GetABIReturnReg() and GetABIReturnRegs()
- Remove and update obsolete comment
- Fix format
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
cf63336cbc2597801d62e399be6bdba8938d1034
Eric Mellino [Tue, 20 Jun 2017 17:02:02 +0000 (13:02 -0400)]
Merge pull request dotnet/coreclr#11629 from pentp/Math-perf
Optimized Math.Sign
Commit migrated from https://github.com/dotnet/coreclr/commit/
69fcf9059b01b252027a4a0b5414b9a78bc13e7c
Hyung-Kyu Choi [Tue, 20 Jun 2017 16:21:13 +0000 (01:21 +0900)]
Update CI to follow up corefx changes (dotnet/coreclr#12384)
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
9189de275ead3107de872df10dfe571417f5576c
Sergey Andreenko [Tue, 20 Jun 2017 05:40:25 +0000 (22:40 -0700)]
.clang format from jit (dotnet/coreclr#12377)
Commit migrated from https://github.com/dotnet/coreclr/commit/
fed72a18f637fa8b124de312865dfeb157845fdd
Carol Eidt [Mon, 19 Jun 2017 23:10:53 +0000 (16:10 -0700)]
Merge pull request dotnet/coreclr#12313 from kyulee1/st
Remove static for function pointer
Commit migrated from https://github.com/dotnet/coreclr/commit/
da0f1a7dd5f662e5ed03238c863f62a9d3bfa77b
Jeremy Kuhne [Mon, 19 Jun 2017 22:31:01 +0000 (15:31 -0700)]
Don't close passed in FileStream handles in constructor (dotnet/coreclr#12253)
* Don't close passed in FileStream handles in constructor
As the finalizer will run when throwing we need to be
careful to make sure we don't put the passed-in handle
in the member field until we're sure we've succeeeded.
Additionally we need to make sure any wrapping SafeHandle
we create on a passed in IntPtr isn't collected.
* Move platform specific assertion and add comment.
* Comment- fix mistake in CanSeekCore
Commit migrated from https://github.com/dotnet/coreclr/commit/
8a8bda14a618b14264cb85c012e097b3e01992e9
Viktor Hofer [Mon, 19 Jun 2017 20:59:38 +0000 (22:59 +0200)]
Fixing CompareInfo AssemblyMode.Full serialization between Core <--> Desktop (dotnet/coreclr#12365)
* Fixing CompareInfo AssemblyMode.Full serialization
* Adding reason why culture field is introduced
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2cd406d76546d075cdcb79c3255c113f7f1dbfa
Pat Gavlin [Mon, 19 Jun 2017 20:10:49 +0000 (13:10 -0700)]
Merge pull request dotnet/coreclr#12055 from mikedn/lower-long-relops
[WIP] Simplify long relop lowering
Commit migrated from https://github.com/dotnet/coreclr/commit/
de46ffbca9ee78cf28c30f9f5599171be045ecd5
Swaroop Sridhar [Wed, 24 May 2017 00:19:15 +0000 (17:19 -0700)]
ILLink Performance Tests: Enable MusicStore
Enable the Musicstore tests, since the failure in JitBench is
now fixed.
Commit migrated from https://github.com/dotnet/coreclr/commit/
215a4ff0880ecd64f76826942c95b231162668d0
Hyung-Kyu Choi [Mon, 19 Jun 2017 17:47:37 +0000 (02:47 +0900)]
[RyuJIT/ARM32] Update LinearScan::resolveLocalRef() for ARM32 (dotnet/coreclr#12194)
Update LinearScan::resolveLocalRef()
- Always update two float register consisting a double register
- Use helper function for ARM32 double register
- Use stronger assertion condition
Introduce updateAssignedInterval() to update assigned interval
of ARM32 register considering register type.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f6ce70eb9b6cb08b4ca0fb91692d284a1d37e37b
Michelle McDaniel [Mon, 19 Jun 2017 16:16:01 +0000 (09:16 -0700)]
Merge pull request dotnet/coreclr#12364 from adiaaida/removeSudoThroughput
Remove sudo from throughput run
Commit migrated from https://github.com/dotnet/coreclr/commit/
312354c3203318e6cc18071903f8daf122b25d88
dotnet-maestro-bot [Mon, 19 Jun 2017 15:51:33 +0000 (08:51 -0700)]
Update CoreClr, CoreFx to preview1-25419-02, preview1-25419-02, respectively (dotnet/coreclr#12342)
Commit migrated from https://github.com/dotnet/coreclr/commit/
383c35f0c2cb28cb215cbeddd1510afcb0a4716a
Michelle McDaniel [Mon, 19 Jun 2017 15:24:22 +0000 (08:24 -0700)]
Remove sudo from throughput run
Sudo is not necessary for running throughput testing, so remove sudo so
we don't run into requests for passwords if the ubuntu machines are not
set up correctly.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f0f453d7ab1326ef9b7139fdb9fe7795a9df061f
James Ko [Sun, 18 Jun 2017 13:53:45 +0000 (09:53 -0400)]
Cleanup most code in StringBuilder (dotnet/coreclr#10156)
* Cleanup most code in StringBuilder
* Respond to PR feedback
* Document StringBuilder's fields
* VerifyClassInvariant -> AssertInvariants
* Fix always-true assert
* Respond to PR feedback from @stephentoub
Commit migrated from https://github.com/dotnet/coreclr/commit/
a8aa9b6c8ef0ce6e1f0cb482a1fbe619926e7c05
Pat Gavlin [Sun, 18 Jun 2017 02:43:46 +0000 (19:43 -0700)]
Merge pull request dotnet/coreclr#12335 from mikedn/assert-prop-alloc
Remove unnecessary bitvec allocation in assertion prop
Commit migrated from https://github.com/dotnet/coreclr/commit/
cd72c54483f9ccdcde08cb42a683d2b4df181378
Stephen Toub [Sun, 18 Jun 2017 01:40:38 +0000 (21:40 -0400)]
Further improve perf of Char.IsWhiteSpace (dotnet/coreclr#12353)
IsWhiteSpaceLatin1 is not being inlined. By changing a range check done with two comparison operations to instead be done with a subtraction and a single comparison, the code is shortened to not only be less expensive but also then get inlined into IsWhiteSpace and then further into String.IsNullOrWhiteSpace. The net result is a measurable throughput improvement for IsNullOrWhiteSpace.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7c197b63914af560d467e8a95c04177495f160d9
Jan Kotas [Sat, 17 Jun 2017 21:07:16 +0000 (14:07 -0700)]
Merge pull request dotnet/corertdotnet/coreclr#3911 from jkotas/nmirror-merge
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
d6d35047a2d0ef27ccfe5c55bbacdb99bda84e44
Jan Vorlicek [Sat, 17 Jun 2017 14:36:46 +0000 (16:36 +0200)]
Add regression test for issue dotnet/coreclr#12224 (dotnet/coreclr#12331)
This change adds regression test for EH getting stuck in an infinite
loop when NullReferenceException happens inside a handler of another
NullReferenceException.
Commit migrated from https://github.com/dotnet/coreclr/commit/
16d41f11e55d1e137cb799d7b1884e02df600c66
Hugh Bellamy [Sat, 17 Jun 2017 14:32:10 +0000 (21:32 +0700)]
Remove some dead argument checks for unsigned primitives for less than zero (dotnet/coreclr#12349)
* Remove dead comparisons of unsigned primitive less than zero
* Delete bad assertition that is consistently hit using the Debug coreclr using the tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
34f33a8ccb1ce0f522ea14edde8ceb976997855f
Jan Vorlicek [Sat, 17 Jun 2017 12:13:39 +0000 (14:13 +0200)]
Fix chained hardware exception handling on Unix (dotnet/coreclr#12344)
There is an issue when hardware exception occurs while handling another hardware exception. In such case,
the exception unwinding ends up in an infinite loop. It is caused by the kernel reusing the same location
for signal handler context.
The fix is to use a windows style context local variable in the common_signal_handler that contains
the right context - it is the original signal context converted to windows style context.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a02634eb41284dbd432ef84aa38f526f955e5f64
Hugh Bellamy [Sat, 17 Jun 2017 10:49:26 +0000 (17:49 +0700)]
Throw ArgumentNullException on Unix calling Marshal.IsComObject(null) (dotnet/coreclr#12348)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a6ed71c6472c8ea0f680507ae34f56aeaf6bb3d2
Swaroop Sridhar [Sat, 17 Jun 2017 01:50:31 +0000 (18:50 -0700)]
Fix perf.groovy
Fix perf.groovy so that ILLink perf tests can be triggered.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a98c8f20475dbdbfc5e9bdafcfdabf0e8826d5d5
Gaurav Khanna [Sat, 17 Jun 2017 00:26:11 +0000 (17:26 -0700)]
LoadFromResolve event handler should return null incase of any load error (dotnet/coreclr#12329)
Commit migrated from https://github.com/dotnet/coreclr/commit/
27e625f0108915fb514e20c870072fbef2d6291c
Tarek Mahmoud Sayed [Fri, 16 Jun 2017 22:53:03 +0000 (15:53 -0700)]
Fix CompareInfo.Version on Windows (dotnet/coreclr#12330)
We call Windows to get the sort version. We call Windows passing the structure NlsVersionInfoEx but Windows expect we have to initialize the size of this structure which we are missing.
Commit migrated from https://github.com/dotnet/coreclr/commit/
660a3e67071e0273eaffe44cf08b72ed675c3ddc
Ravi Eda [Fri, 16 Jun 2017 22:31:17 +0000 (17:31 -0500)]
Security build JSONs. (dotnet/coreclr#12279)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d055dcf991a0a24d6c9542cf0f1e5d69e7403205