William Godbe [Fri, 10 Feb 2017 01:40:16 +0000 (17:40 -0800)]
Merge pull request #9476 from jkotas/revert-9313
Revert "Delete mscorlib from packages (#9313)"
Andy Ayers [Fri, 10 Feb 2017 00:55:10 +0000 (16:55 -0800)]
Merge pull request #9470 from AndyAyersMS/FixNoinlineMessage
JIT: fix confusing inline failure reason
Ahson Ahmed Khan [Fri, 10 Feb 2017 00:34:27 +0000 (16:34 -0800)]
Optimize Span.Fill (#9441)
Jan Kotas [Fri, 10 Feb 2017 00:17:57 +0000 (16:17 -0800)]
Revert "Delete mscorlib from packages (#9313)"
This reverts commit
4fe623c9235e4df42be810d09ca7f282956e3cec.
# Conflicts:
# src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
Joseph Tremoulet [Fri, 10 Feb 2017 00:11:03 +0000 (19:11 -0500)]
Merge pull request #9451 from JosephTremoulet/UpdateValnum
Update conservative value numbers during CSE
Drew Scoggins [Thu, 9 Feb 2017 23:32:10 +0000 (15:32 -0800)]
Merge pull request #9293 from guhuro/master
Add k-nucleotide to BenchmarkGames
Gustavo Hurovich [Thu, 2 Feb 2017 23:27:48 +0000 (15:27 -0800)]
Add k-nucleotide to BenchmarkGames
Changed .gitattributes to set line endings to windows ones for the input
files of this test.
Added two different tests, one with and the other without parallelism.
Used FileStream instead of BufferedStream, since the latter does not
exist in netstandard 1.4
Jonghyun Park [Thu, 9 Feb 2017 22:33:46 +0000 (07:33 +0900)]
[x86/Linux] Port SWCB_GetExecutionState (#9436)
Andy Ayers [Thu, 9 Feb 2017 22:23:45 +0000 (14:23 -0800)]
JIT: fix confusing inline failure reason
When attempting to inline a method from the core library, the inline
will fail if the method being inlined has a noinline callee; the
presumption being that the callee expects to be able to find it's
immediate caller on the stack (this may or not may be the case, see #8102).
Update the failure message for this case to hopefully better explain
why the inline doesn't happen.
Joseph Tremoulet [Tue, 7 Feb 2017 19:43:29 +0000 (11:43 -0800)]
Update conservative value numbers during CSE
When a CSE candidate's defs all share the same conservative value number,
its uses can be updated to share that conservative value number as well
when CSE is performed, because we are removing any reloads that may have
been the cause of the divergence. Performing this update can improve
subsequent range check elimination when the CSE use is array length or
index in a bounds check.
Jarret Shook [Thu, 9 Feb 2017 17:54:09 +0000 (09:54 -0800)]
Merge pull request #9413 from jashook/fix_internal_build_warning
Fix warning from an unsigned/signed comparison
Ben Adams [Thu, 9 Feb 2017 15:11:09 +0000 (15:11 +0000)]
Inlinable ArraySegment ctor (#9433)
Frederik Carlier [Thu, 9 Feb 2017 12:55:20 +0000 (13:55 +0100)]
Rename __reserved to __clr_reserved to avoid a conflict on Android (#9402)
* Rename __reserved to __clr_reserved to avoid a conflict on Android
SaeHie Park [Thu, 9 Feb 2017 09:36:10 +0000 (18:36 +0900)]
[x86/Linux] Fix UMThunkStub stack alignment (#9365)
Fixes out going call in UMThunkStub to be 16 byte stack aligned
Gaurav Khanna [Thu, 9 Feb 2017 07:35:40 +0000 (23:35 -0800)]
Merge pull request #9416 from wtgodbe/Suse13
Remove OpenSuse13 from CI
Jonghyun Park [Thu, 9 Feb 2017 06:39:13 +0000 (15:39 +0900)]
Clean up GetAddrOfSecurityObject (#9423)
Jonghyun Park [Thu, 9 Feb 2017 06:38:12 +0000 (15:38 +0900)]
Clean up EECodeManager::GetInstance (#9424)
* Clean up EECodeManager::GetInstance
* Use !CROSSGEN_COMPILE instead of CROSSGEN_COMPILE
Jonghyun Park [Thu, 9 Feb 2017 06:37:46 +0000 (15:37 +0900)]
Clean up EECodeManager::GetGSCookieAddr (#9425)
Jonghyun Park [Thu, 9 Feb 2017 06:37:27 +0000 (15:37 +0900)]
Clean up EECodeManager::GetReturnKind (#9426)
Jonghyun Park [Thu, 9 Feb 2017 06:37:10 +0000 (15:37 +0900)]
Clean up EECodeManager::GetFunctionSize (#9427)
Jonghyun Park [Thu, 9 Feb 2017 06:36:55 +0000 (15:36 +0900)]
Clean up EECodeManager::GetParamContextType (#9428)
Jonghyun Park [Thu, 9 Feb 2017 06:36:30 +0000 (15:36 +0900)]
Clean up EECodeManager::GetExactGenericsToken (#9429)
Jonghyun Park [Thu, 9 Feb 2017 06:35:09 +0000 (15:35 +0900)]
Clean up EECodeManager::GetParamTypeArg (#9430)
Jonghyun Park [Thu, 9 Feb 2017 06:34:48 +0000 (15:34 +0900)]
[x86/Linux] Revise TAStackCrawlCallBackWorker (#9432)
Bruce Forstall [Thu, 9 Feb 2017 04:17:23 +0000 (20:17 -0800)]
Merge pull request #9431 from BruceForstall/Fix9374
Generate better code for x86 SIMD get[i] intrinsic
Sergey Andreenko [Thu, 9 Feb 2017 02:33:23 +0000 (18:33 -0800)]
Merge pull request #9191 from sandreenko/CORERT-fat-call-transformation
CoreRT fat call transformation
Jonghyun Park [Thu, 9 Feb 2017 01:27:57 +0000 (10:27 +0900)]
[x86/Linux] Fix Calling Convertion Mismatch inside ilasm/ildasm (#9410)
Jan Kotas [Thu, 9 Feb 2017 01:26:37 +0000 (17:26 -0800)]
Delete unnecessary domain sanity check (#9420)
Bruce Forstall [Thu, 9 Feb 2017 00:54:31 +0000 (16:54 -0800)]
Generate better code for x86 SIMD get[i] intrinsic
For get[i] intrinsic, with LONG base type and constant index, we can
compute the decomposed indices statically.
Fixes #9374
Bruce Forstall [Thu, 9 Feb 2017 00:59:05 +0000 (16:59 -0800)]
Merge pull request #9392 from BruceForstall/FixGtGetOp2
Add gtGetPossibleOp2()
Hyeongseok Oh [Wed, 8 Feb 2017 23:49:23 +0000 (08:49 +0900)]
[ARM32/Linux] Fix definition and CMake for cross-architecture build (#9262)
- Fix ABI flag based on target
- Exclude corefx for cross-architecture component
Ahson Ahmed Khan [Wed, 8 Feb 2017 23:48:43 +0000 (15:48 -0800)]
Span Slice method AggressiveInlining (#9404)
Sergey Andreenko [Sat, 28 Jan 2017 23:28:05 +0000 (15:28 -0800)]
CoreRT calli transformation
Transform managed calli when compiling for CoreRT.
Bruce Forstall [Tue, 7 Feb 2017 04:15:07 +0000 (20:15 -0800)]
Add gtGetOp2IfPresent()
It was noticed that many uses of gtGetOp2() fully expect op2 to
exist and be non-nullptr, and the use of gtGetOp2() was simply
for style/readability purposes. However, it has a cost, as it
checks whether the tree is binary first, and returns nullptr if
not. For most cases, this is unecessary and expensive.
Introduce a new gtGetOp2IfPresent() function that captures the
previous behavior: checking if the tree node is binary before
returning op2, or returning nullptr otherwise. gtGetOp2() is
changed to simply return gtOp2 directly, without any checking
in non-DEBUG builds. It can be used if you know the op2 exists.
Most uses of gtGetOp2() were left alone (and hence get the new
behavior). The ones that need the old behavior were renamed
gtGetOp2IfPresent().
Mostly newer code is affected, as older code would generally
access gtOp2 directly, whereas newer code started using gtGetOp2()
for style and symmetry, especially after gtGetOp1() was introduced.
Bruce Forstall [Wed, 8 Feb 2017 23:10:53 +0000 (15:10 -0800)]
Merge pull request #9382 from BruceForstall/CallFinallyCleanup
Remove unnecessary parameter to genCallFinally()
Bruce Forstall [Wed, 8 Feb 2017 23:10:22 +0000 (15:10 -0800)]
Merge pull request #9386 from BruceForstall/FixSwitchTable
Fix compare/branch switch mode expansion
Jan Kotas [Wed, 8 Feb 2017 22:39:46 +0000 (14:39 -0800)]
Filter RefEmit modules in SendEventsForNgenMethods (#9418)
* Filter RefEmit modules in SendEventsForNgenMethods
Fixes #6427
William Godbe [Wed, 8 Feb 2017 21:35:49 +0000 (13:35 -0800)]
Merge pull request #9417 from wtgodbe/publishNativeBins
Publish test native bins from correct directory
wtgodbe [Wed, 8 Feb 2017 20:30:03 +0000 (12:30 -0800)]
Publish test native bins from correct directory
wtgodbe [Wed, 8 Feb 2017 18:50:37 +0000 (10:50 -0800)]
Remove OpenSuse13 from CI
jashook [Wed, 8 Feb 2017 17:44:07 +0000 (09:44 -0800)]
Fix warning from an unsigned/signed comparison
This fixes a desktop build break.
Joseph Tremoulet [Wed, 8 Feb 2017 16:09:05 +0000 (11:09 -0500)]
Merge pull request #9169 from JosephTremoulet/UntrackedMem
Value-number byref loads
Joseph Tremoulet [Fri, 13 Jan 2017 19:55:06 +0000 (14:55 -0500)]
Value-number `ByrefExposed` memory and loads
Teach value numbering to keep track of the current value number for
`ByrefExposed` memory, updating it appropriately at relevant stores.
Introduce a new VN operator `ByrefExposedLoad`, used for loads of
address-exposed locals and loads by indirs that don't have more specific
value numbers, which is a function of the current `ByrefExposed` memory VN
and the pointer VN. This allows loop hoisting and CSE to recognize
redundant loads via byrefs when there are no intervening stores.
Fixes #7903.
Joseph Tremoulet [Wed, 11 Jan 2017 19:58:57 +0000 (14:58 -0500)]
Define `MemoryKind::ByrefExposed`
Add a new `MemoryKind` to represent "any memory that byrefs may
reference", called `ByrefExposed`. All definition points of `GcHeap`
become also definition points of `ByrefExposed`, and additionally, so do
definitions of address-exposed locals.
Because it is a common case (currently happening in 90% of methods in
System.Private.CoreLib) that a method has no definitions of
address-exposed locals, have liveness detect this condition and set the
new `byrefStatesMatchGcHeapStates` flag accordingly; when the states
match, the same `MemoryPhi`s, defnums, and `PerSsaData` are then shared
between the two memory kinds, to avoid excess allocations/processing.
This change defines `ByrefExposed` memory and its def/use points, and
builds SSA for it, but no optimizations make use of it, so this is a
no-diff change.
Joseph Tremoulet [Thu, 29 Dec 2016 22:02:18 +0000 (17:02 -0500)]
Introduce `MemoryKind` abstraction
Re-cast the notion of "heap" (in liveness, SSA, and value-numbering) as
one of potentially many `MemoryKind`s, called `GcHeap`. Update names,
comments, data structures, and signatures as appropriate to parameterize
relevant data/methods over `MemoryKind`. This change is a no-diff
refactoring, and currently `GcHeap` is the only `MemoryKind`. Generally,
codepaths which will generically need to process all `MemoryKinds`s
(initializing, dumping, dataflow propagation) now iterate over all
`MemoryKinds`, and codepaths which are sensitive to the semantics of the
specific `MemoryKind` (def/use identification in liveness and value
numbering) are changed to specifically operate on `MemoryKind::GcHeap`.
One notable exception is that `lvMemoryPerSsaData` and `CountForMemoryDef`
are *not* parameterized over `MemoryKind`; there's a single "space" of SSA
defnums for memory defs (though the same tree can incur different defs for
different memory kinds [in which case their defnums will differ]), to
facilitate subsequently sharing SSA nodes across memory kinds when
appropriate.
Joseph Tremoulet [Fri, 13 Jan 2017 17:29:37 +0000 (12:29 -0500)]
Refactor fgCurHeapVN and HeapSsaMap updates
Consolodate the code for updating the current heap VN and HeapSsaMap
entries into new helper method `recordHeapStore`, to make it easier to
evolve that code. Change `fgValueNumberArrIndexAssign` to return the new
heap VN to allow callers to pass it down into `recordHeapStore`
accordingly.
This is just a refactoring; no change to compiler behavior.
Joseph Tremoulet [Wed, 8 Feb 2017 14:31:52 +0000 (09:31 -0500)]
Merge pull request #9329 from JosephTremoulet/LateArgVN
Get call arg value numbers from late args
Jonghyun Park [Wed, 8 Feb 2017 13:38:15 +0000 (22:38 +0900)]
Clean up EnumGcRefs (#9412)
Russ Keldorph [Wed, 8 Feb 2017 12:49:42 +0000 (04:49 -0800)]
Merge pull request #9408 from jashook/disable_checked_arm64
Disable checked arm64 jobs until jobs are stable
Jonghyun Park [Wed, 8 Feb 2017 09:29:23 +0000 (18:29 +0900)]
[x86/Linux] Use SP as StackMarker (#9389)
jashook [Wed, 8 Feb 2017 05:36:17 +0000 (21:36 -0800)]
Disable checked arm64 jobs until jobs are stable
Jobs currently are expected to run red until a lstFile update goes in. Therefore,
disable the job as a PR trigger until it is clean.
Jan Kotas [Wed, 8 Feb 2017 03:30:40 +0000 (19:30 -0800)]
Add ComVisible(true) back to several special types (#9403)
It is required by WinRT/COM interop. Fixes #9401.
Dan Moseley [Tue, 7 Feb 2017 22:10:09 +0000 (14:10 -0800)]
Remove more CAS (#9390)
* Remove PermissionSet
* Remove HostProtectionAttribute
* Remove PermissionState
* Remove S.Security.Permissions
* Remove IPrincipal
* Fix native side
* Remove model.xml again
Koundinya Veluri [Tue, 7 Feb 2017 20:58:51 +0000 (12:58 -0800)]
Fix field type for ByReference<T> and TypedReference (#9284)
Fix field type for `ByReference<T>` and `TypedReference`
Fixes #7894
Frederik Carlier [Tue, 7 Feb 2017 18:19:31 +0000 (19:19 +0100)]
Add scripts & docs which support creating an Android toolchain on Linux (#9175)
* Add scripts & docs which support creating an Android toolchain on Linux
Russ Keldorph [Tue, 7 Feb 2017 18:14:24 +0000 (10:14 -0800)]
Merge pull request #9385 from jashook/lower_block_store_arm64
Call LowerBlockStore TreeNodeInfoInitBlockStore
Jan Vorlicek [Tue, 7 Feb 2017 15:13:37 +0000 (16:13 +0100)]
Design portable tail calls with helpers (#8596)
* Design portable tail calls with helpers
Currently we don't handle non-trivial cases of tail calls on Unix due to the non-portable and
complex way it is implemented. This pull request describes a design of a portable way of
handling these cases so that it can be used uniformly over all our jitted and AOT (ahead of time)
platforms.
Stephen Toub [Tue, 7 Feb 2017 14:16:27 +0000 (09:16 -0500)]
Merge pull request #9383 from dotnet-bot/master-UpdateDependencies
Update CoreClr, CoreFx to beta-25007-01, beta-25007-01, respectively (master)
Jonghyun Park [Tue, 7 Feb 2017 14:08:15 +0000 (23:08 +0900)]
[x86/Linux] Clean up EHContext-related code (#9395)
Dan Moseley [Tue, 7 Feb 2017 14:00:55 +0000 (06:00 -0800)]
Remove bclrewriter (#9351)
* Remove bclrewriter
* Dump crossgen error to Jenkins log
Jonghyun Park [Tue, 7 Feb 2017 13:47:14 +0000 (22:47 +0900)]
Clean up methods for USE_GC_INFO_DECODER (#9394)
Sean Gillespie [Tue, 7 Feb 2017 04:11:13 +0000 (20:11 -0800)]
Move GC/Coverage/delete_next_card_table to the Long GC playlist (#9376)
Jonghyun Park [Tue, 7 Feb 2017 04:09:59 +0000 (13:09 +0900)]
Fix a typo in TailCallFrame::UpdateRegDisplay log (#9381)
Bruce Forstall [Tue, 7 Feb 2017 04:07:12 +0000 (20:07 -0800)]
Merge pull request #8849 from seanshpark/fixstackalign
[x86/Linux] Stack align 16 bytes for JIT code
Hyeongseok Oh [Tue, 7 Feb 2017 04:06:36 +0000 (13:06 +0900)]
[ARM32/Linux] Fix calling convention - stdcall in crossgen (#9364)
* [ARM32/Linux] Fix calling convention - sdcall in crossgen
- Fix calling convention:
not use stdcall for ENCODEMODULE_CALLBACK & DEFINETOKEN_CALLBACK in linux/x86
x86-host/arm32-target crossgen & x86 crossgen
build error in clang 3.9: not allowed calling convention casting
dotnet-bot [Tue, 7 Feb 2017 03:05:54 +0000 (03:05 +0000)]
Update CoreClr, CoreFx to beta-25007-01, beta-25007-01, respectively
Bruce Forstall [Tue, 7 Feb 2017 02:19:42 +0000 (18:19 -0800)]
Fix compare/branch switch mode expansion
It appears we never hit this case due to a very low
minSwitchTabJumpCnt number that almost always forces
us to use jump tables. This was found in the RyuJIT/ARM32
bring-up, because ARM uses a higher number.
Also, add a stress mode to force using the compare/branch expansion
mode more frequently, during stress.
jashook [Tue, 7 Feb 2017 02:01:24 +0000 (18:01 -0800)]
Call LowerBlockStore TreeNodeInfoInitBlockStore
For arm64 call LowerBlockStore before TreeNodeInfoInitBlockStore
as done on other architectures.
Bruce Forstall [Tue, 7 Feb 2017 01:19:24 +0000 (17:19 -0800)]
Remove unnecessary parameter to genCallFinally()
Russ Keldorph [Tue, 7 Feb 2017 00:20:34 +0000 (16:20 -0800)]
Merge pull request #9377 from RussKeldorph/defaultprivate
Default-trigger ARM64 testing on certain users' PRs
SaeHie Park [Mon, 9 Jan 2017 01:39:54 +0000 (10:39 +0900)]
[x86/Linux] Stack align 16 bytes for JIT code
Change JIT code to align stack in 16 byte used in modern compiler
Russ Keldorph [Mon, 6 Feb 2017 22:19:21 +0000 (14:19 -0800)]
Default-trigger ARM64 testing on certain users PRs
Re-using the logic that allows certain users to request ARM64 testing to
default-trigger ARM64 testing on their PRs. Ideally, we'd be able to
separate the list of people who have permission to trigger testing from
those that get testing by default, but that is harder than it seems.
Stephen Toub [Mon, 6 Feb 2017 21:32:43 +0000 (16:32 -0500)]
Merge pull request #9372 from dotnet-bot/master-UpdateDependencies
Update CoreClr, CoreFx to beta-25006-03, beta-25006-01, respectively (master)
William Godbe [Mon, 6 Feb 2017 20:30:06 +0000 (12:30 -0800)]
Merge pull request #9325 from wtgodbe/bashScripts
Add #!/bin/bash to beginning of shell test scripts
Drew Scoggins [Mon, 6 Feb 2017 19:29:03 +0000 (11:29 -0800)]
Merge pull request #9319 from DrewScoggins/X86PerfRuns
Add x86 perf runs to CoreCLR
Bruce Forstall [Mon, 6 Feb 2017 19:26:34 +0000 (11:26 -0800)]
Merge pull request #8644 from BruceForstall/SimdLongDecomp
Enable SIMD for RyuJIT/x86
Jan Kotas [Mon, 6 Feb 2017 18:56:03 +0000 (10:56 -0800)]
Merge pull request #9371 from jkotas/attributes
Delete COM and security transparency attributes
William Godbe [Mon, 6 Feb 2017 18:40:04 +0000 (10:40 -0800)]
Change /bin/bash to usr/bin/env bash
Gaurav Khanna [Mon, 6 Feb 2017 18:29:41 +0000 (10:29 -0800)]
Merge pull request #8827 from hseok-oh/nuget_armel
Generate nuget package for armel (Tizen, Debian)
dotnet-bot [Mon, 6 Feb 2017 17:51:33 +0000 (17:51 +0000)]
Update CoreClr, CoreFx to beta-25006-03, beta-25006-01, respectively
Jonghyun Park [Mon, 6 Feb 2017 16:25:37 +0000 (01:25 +0900)]
Clean up FillRegDisplay (#9360)
Jan Kotas [Mon, 6 Feb 2017 15:28:18 +0000 (07:28 -0800)]
Delete remaining security transparency annotations
Jan Kotas [Mon, 6 Feb 2017 15:32:51 +0000 (07:32 -0800)]
Delete ClassInterface attributes
Jan Kotas [Mon, 6 Feb 2017 15:20:17 +0000 (07:20 -0800)]
Delete ComVisible attributes
Frederik Carlier [Mon, 6 Feb 2017 15:25:36 +0000 (16:25 +0100)]
Android - Fix duplicate definitions of INT_MIN and PAGE_SIZE in unit tests (#9172)
* Don't refdefine PAGE_SIZE on Android
* Don't re-declare INT_MIN on Android
* Fixup
Stephen Toub [Mon, 6 Feb 2017 14:58:34 +0000 (09:58 -0500)]
Merge pull request #9368 from stephentoub/cq_fixes
Two fixes to ConcurrentQueue
Jan Kotas [Mon, 6 Feb 2017 14:53:42 +0000 (06:53 -0800)]
CAS Security cleanup (#9355)
Stephen Toub [Mon, 6 Feb 2017 12:35:11 +0000 (07:35 -0500)]
Merge pull request #9367 from dotnet-bot/master-UpdateDependencies
Update CoreClr to beta-25006-02 (master)
Stephen Toub [Mon, 6 Feb 2017 12:34:06 +0000 (07:34 -0500)]
Two fixes to ConcurrentQueue
- Changed comparisons to use subtraction to avoid overflow issues on sequence numbers.
- Added an exception message where a TODO was left in the code
dotnet-bot [Mon, 6 Feb 2017 10:09:15 +0000 (10:09 +0000)]
Update CoreClr to beta-25006-02
Bruce Forstall [Thu, 15 Dec 2016 02:03:20 +0000 (18:03 -0800)]
Enable SIMD for RyuJIT/x86
This change implements support for Vector<long>, handling
SIMDIntrinsicInit, which takes a LONG, and decomposition of
SIMDIntrinsicGetItem, which produces a LONG.
It also enables SIMD, including AVX, by default for RyuJIT/x86.
Stephen Toub [Mon, 6 Feb 2017 04:42:49 +0000 (23:42 -0500)]
Delete dead code from ExecutionContext (#9359)
Gaurav Khanna [Mon, 6 Feb 2017 04:14:43 +0000 (20:14 -0800)]
Merge pull request #9358 from dotnet-bot/master-UpdateDependencies
Update CoreClr to beta-25006-01 (master)
Hyeongseok Oh [Mon, 6 Feb 2017 03:22:12 +0000 (12:22 +0900)]
Merge branch 'master' into nuget_armel
Jonghyun Park [Mon, 6 Feb 2017 02:15:23 +0000 (11:15 +0900)]
[x86/Linux] Add Assertion on pvControlPc (#9356)
dotnet-bot [Mon, 6 Feb 2017 02:00:17 +0000 (02:00 +0000)]
Update CoreClr to beta-25006-01
dotnet bot [Sun, 5 Feb 2017 20:05:59 +0000 (12:05 -0800)]
Update CoreClr, CoreFx to beta-25005-03, beta-25004-01, respectively (#9350)
Frederik Carlier [Sun, 5 Feb 2017 19:54:37 +0000 (20:54 +0100)]
Frederik Carlier [Sun, 5 Feb 2017 19:50:28 +0000 (20:50 +0100)]
Port #5821 to Linux (#9347)
Frederik Carlier [Sun, 5 Feb 2017 19:49:49 +0000 (20:49 +0100)]
Port #5339 to Linux (#9348)