Steve MacLean [Sat, 11 Feb 2017 01:08:05 +0000 (20:08 -0500)]
[Arm64/Unix] Fix gdbjit support (dotnet/coreclr#9512)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ebe301ad19f203c0bd95d16767c7828397160b7e
Steve MacLean [Sat, 11 Feb 2017 01:07:48 +0000 (20:07 -0500)]
[Arm64] Add more GCROOTS logging (dotnet/coreclr#9514)
Commit migrated from https://github.com/dotnet/coreclr/commit/
578567c88692d6b7b10912cd9f825fdd33ac793e
Jan Kotas [Sat, 11 Feb 2017 00:58:48 +0000 (16:58 -0800)]
Merge pull request dotnet/coreclr#9491 from jkotas/NoInlining
Use DynamicSecurityMethod attribute to mark methods with StackCrawlMark
Commit migrated from https://github.com/dotnet/coreclr/commit/
e5f2df239b546ac9ed2417506c90af222eaf1013
Carol Eidt [Sat, 11 Feb 2017 00:50:47 +0000 (16:50 -0800)]
Merge pull request dotnet/coreclr#9496 from CarolEidt/FixCoreFx15713
Fix System.Numerics.Vectors CoreFx test failures
Commit migrated from https://github.com/dotnet/coreclr/commit/
0604f7efc549b46e24240aa5b9aaf6d41b19f21b
Jarret Shook [Sat, 11 Feb 2017 00:40:59 +0000 (16:40 -0800)]
Merge pull request dotnet/coreclr#9499 from jashook/arm64_dyn_block_assert
ARM64 Modify genCodeForInitBlk assert
Commit migrated from https://github.com/dotnet/coreclr/commit/
735cd1ef01946eb46293f598a030eeff33fadedd
Bruce Forstall [Sat, 11 Feb 2017 00:03:42 +0000 (16:03 -0800)]
Merge pull request dotnet/coreclr#9085 from mskvortsov/ryujit-arm32-eh
[RyuJIT/ARM32] EH, switch implementation and various updates
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c2459a1b4c31ca467d9a50fe76e37a4412bc872
jashook [Fri, 10 Feb 2017 22:28:51 +0000 (14:28 -0800)]
ARM64 Modify genCodeForInitBlk assert
Assert in codegenarm64 was incorrect for the GT_STORE_DYN_BLK oper.
If it is that oper then there will not be a temp reg used and instead
the size is computed and stored into REG_2. Add an assert to assert
this is done.
Commit migrated from https://github.com/dotnet/coreclr/commit/
310632c37a7143f8b88811b5e4f2e82ffe1aab3e
Carol Eidt [Fri, 10 Feb 2017 22:33:12 +0000 (14:33 -0800)]
Create lsra-throughput.md
Commit migrated from https://github.com/dotnet/coreclr/commit/
8be736608577fb1cd0b88c0b72048955bcc38b00
Jan Kotas [Fri, 10 Feb 2017 09:10:23 +0000 (01:10 -0800)]
Use DynamicSecurityMethod attribute to mark methods with StackCrawlMark
CoreCLR does not have CAS, and so we can conveniently use it to mark methods with StackCrawlMark to
decouple it from NoInlining. The original purpose of DynamicSecurityMethod was to disable inlining
of the caller and to insert CAS security checks, so we are basically just keeping the first part.
Fixes dotnet/coreclr#8102
Commit migrated from https://github.com/dotnet/coreclr/commit/
49d2d8f711286bf4ab3ffcd7b9f89a2ec80725bd
Jan Kotas [Fri, 10 Feb 2017 18:59:33 +0000 (10:59 -0800)]
Revert "JIT: fix confusing inline failure reason"
This reverts commit dotnet/coreclr@
0826f9dee6a8fdf8266523945708a684376b0280.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ab98635befe574626e9ebb65e33fec3a060b4db6
Pat Gavlin [Fri, 10 Feb 2017 19:29:49 +0000 (11:29 -0800)]
Merge pull request dotnet/coreclr#9493 from pgavlin/ReportBytesAllocated
Report bytes allocated in the JIT time log.
Commit migrated from https://github.com/dotnet/coreclr/commit/
26b90b2a1331af2a0e918862505b52d573742061
Carol Eidt [Fri, 10 Feb 2017 18:34:09 +0000 (10:34 -0800)]
Fix System.Numerics.Vectors CoreFx test failures
CoreFx Issue 15713 is due to a case of an Indir(Addr(Field(Vector3 local))) which for some reason has a MorphAddrContext of MACK_Ind. Although I haven't fully identified why that is the case, we should be conservative in this case and mark the address as do-not-enregister.
In addition, when attempting to debug this with a Checked JIT, I encountered an AV due to `GetJitTls` returning null in the `JITDUMP` calls in `getMaxIntrinsicSIMDVectorLength`. Again, I'm not sure why this would be the case but I have added guarding conditions.
Commit migrated from https://github.com/dotnet/coreclr/commit/
91be288f0d63c801f3aa6cbf9abd9ed852b0666f
Andy Ayers [Fri, 10 Feb 2017 18:30:00 +0000 (10:30 -0800)]
JIT: enable implicit tail calls from inlined code (dotnet/coreclr#9405)
Inlines of calls from implicit tail call sites should allow recognition
of inlinee implicit tail call sites.
The jit recognizes implicit tail call sites during importation,
but the inlinee compiler instance did not have compTailCallOpt set
and so never recognized these instances. Fix this and update the logic
to detect the transitively implicit tail calls.
Now that these sites are recognized, morph needs a fix to tunnel through
repeated casts for tail calls, since each level of inlining might add a
cast. All these casts should be identical.
Note under R2R tail calls are not yet recognized (see ZapInfo::canTailCall).
Enable only under FEATURE_TAILCALL_OPT_SHARED_RETURN since the
inline tail call sites are not likely to be in BBJ_RETURN blocks.
Closes dotnet/coreclr#9349.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1a8cb674664cf2eefdc124a0b2c91687814c7901
Pat Gavlin [Fri, 10 Feb 2017 18:06:59 +0000 (10:06 -0800)]
Use `%Iu` instead of `%I64u`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
de1f80e754668004aaa319b95dea55d382d0b143
Pat Gavlin [Fri, 10 Feb 2017 17:40:45 +0000 (09:40 -0800)]
Report bytes allocated in the JIT time log.
This adds a new column, "Total Bytes Allocated", to the JIT time log.
This column reports the total number of bytes requested from the host by
the JIT's arena allocator.
This change also enables `FEATURE_JIT_TIMER` by default (which only
affects JIT32).
Commit migrated from https://github.com/dotnet/coreclr/commit/
e7bad4948b0f2544e30995decf4163ec41185639
Hyeongseok Oh [Fri, 10 Feb 2017 10:36:29 +0000 (19:36 +0900)]
[Linux/ARM] Fix cross-architecture component build error: disable unused code (dotnet/coreclr#8866)
* [ARM32/Linux] Fix cross-architecture component build error: unused function comparing CONTEXT with T_CONTEXT.
- change build script: remove duplicate test build in cross-component build
Commit migrated from https://github.com/dotnet/coreclr/commit/
16ecaf1bddfae2285c1f035f56fe86a7452e208e
Jonghyun Park [Fri, 10 Feb 2017 09:59:23 +0000 (18:59 +0900)]
Hide VirtualUnwindXXX for DACESS_COMPILE (dotnet/coreclr#9407)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e6965ec4891e3f2b14003822d3befbaa09c42dcb
Jonghyun Park [Fri, 10 Feb 2017 09:42:56 +0000 (18:42 +0900)]
Unify GetControlPC/GetRegdisplaySP/SetRegdisplaySP (dotnet/coreclr#9444)
* Unify GetControlPC
* Unify GetRegdisplaySP/SetRegdisplaySP
Commit migrated from https://github.com/dotnet/coreclr/commit/
e62b0f82a9c5bb770ac27ad2616074a32dbf0325
Dan Moseley [Fri, 10 Feb 2017 08:13:09 +0000 (00:13 -0800)]
Remove CER metadata (dotnet/coreclr#9487)
Commit migrated from https://github.com/dotnet/coreclr/commit/
6d3dea27ecf6e6c35e6be76dc3132f14c3ef0d35
Ben Adams [Fri, 10 Feb 2017 08:12:50 +0000 (08:12 +0000)]
GcHandle Perf Tweaks (dotnet/coreclr#9473)
* GcHandle Perf Tweaks
Commit migrated from https://github.com/dotnet/coreclr/commit/
b85d71fb173d12c16fde49b00d1347d7772d604f
Dan Moseley [Fri, 10 Feb 2017 02:45:47 +0000 (18:45 -0800)]
Revert earlier CAS changes to Eventing/** and put under !if !CORECLR (dotnet/coreclr#9478)
* Revert earlier CAS changes to Eventing/** and put under !if !CORECLR
Commit migrated from https://github.com/dotnet/coreclr/commit/
ebac716ebbd34046916744f8d0d50829fbeb3104
Sivarv [Fri, 10 Feb 2017 02:31:17 +0000 (18:31 -0800)]
Merge pull request dotnet/coreclr#9455 from sivarv/structPromotion
Increase field count limit to 3 for promoting a struct with no field accesses.
Commit migrated from https://github.com/dotnet/coreclr/commit/
82d42a812f9409b9265754f315e661b977a4e521
Michelle McDaniel [Fri, 10 Feb 2017 01:51:05 +0000 (17:51 -0800)]
Merge pull request dotnet/coreclr#9456 from adiaaida/fixDesktopBreak
Replace binary literal with hex
Commit migrated from https://github.com/dotnet/coreclr/commit/
f62c43896a2e8d882325cbde494747217d10f96e
William Godbe [Fri, 10 Feb 2017 01:40:16 +0000 (17:40 -0800)]
Merge pull request dotnet/coreclr#9476 from jkotas/revert-9313
Revert "Delete mscorlib from packages (dotnet/coreclr#9313)"
Commit migrated from https://github.com/dotnet/coreclr/commit/
c536dddb44d3f5346cd42f64d9b44139f0899a22
Andy Ayers [Fri, 10 Feb 2017 00:55:10 +0000 (16:55 -0800)]
Merge pull request dotnet/coreclr#9470 from AndyAyersMS/FixNoinlineMessage
JIT: fix confusing inline failure reason
Commit migrated from https://github.com/dotnet/coreclr/commit/
19297c64f9cc31e11c722ac8d3a08391c1e2f2dc
Ahson Ahmed Khan [Fri, 10 Feb 2017 00:34:27 +0000 (16:34 -0800)]
Optimize Span.Fill (dotnet/coreclr#9441)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1e76ef05c028be15bb79eb98f2a379b3746f3445
sivarv [Thu, 9 Feb 2017 19:27:29 +0000 (11:27 -0800)]
Increase the field count limit to 3 for promoting a struct with no filed access.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c511e7ee84d13fb9b9238c4432f7f3af4926d45c
Jan Kotas [Fri, 10 Feb 2017 00:17:57 +0000 (16:17 -0800)]
Revert "Delete mscorlib from packages (dotnet/coreclr#9313)"
This reverts commit dotnet/coreclr@
4fe623c9235e4df42be810d09ca7f282956e3cec.
# Conflicts:
# src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj
Commit migrated from https://github.com/dotnet/coreclr/commit/
89ba46aa6e113486428ac7528f662e3a0a5a55eb
Joseph Tremoulet [Fri, 10 Feb 2017 00:11:03 +0000 (19:11 -0500)]
Merge pull request dotnet/coreclr#9451 from JosephTremoulet/UpdateValnum
Update conservative value numbers during CSE
Commit migrated from https://github.com/dotnet/coreclr/commit/
b0bb85dab475f28cd782a8075ce8bc2e6871965d
Drew Scoggins [Thu, 9 Feb 2017 23:32:10 +0000 (15:32 -0800)]
Merge pull request dotnet/coreclr#9293 from guhuro/master
Add k-nucleotide to BenchmarkGames
Commit migrated from https://github.com/dotnet/coreclr/commit/
e2b0cc3a82a57af2e774f1a4b3ac3bbd03aa98d2
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
Commit migrated from https://github.com/dotnet/coreclr/commit/
812230630b694f14ebf0d54eb1c357f4dfb9bb5a
Jonghyun Park [Thu, 9 Feb 2017 22:33:46 +0000 (07:33 +0900)]
[x86/Linux] Port SWCB_GetExecutionState (dotnet/coreclr#9436)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2ecadf5d1ced287a2b1995c1020d8703c1b9c06a
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 dotnet/coreclr#8102).
Update the failure message for this case to hopefully better explain
why the inline doesn't happen.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0826f9dee6a8fdf8266523945708a684376b0280
Michelle McDaniel [Thu, 9 Feb 2017 21:09:33 +0000 (13:09 -0800)]
Replace binary literal with hex
The desktop build breaks with the binary literal used in the fat pointer
mask. Replace it with a hex equivalent.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1854a78c56a215aca8e5573c921c64a50b7113f0
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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4641b56bc030516b199b499e8bfa77877e31b850
Jarret Shook [Thu, 9 Feb 2017 17:54:09 +0000 (09:54 -0800)]
Merge pull request dotnet/coreclr#9413 from jashook/fix_internal_build_warning
Fix warning from an unsigned/signed comparison
Commit migrated from https://github.com/dotnet/coreclr/commit/
28d04376fe54aea392d75d478bd468f14d134e67
Ben Adams [Thu, 9 Feb 2017 15:11:09 +0000 (15:11 +0000)]
Inlinable ArraySegment ctor (dotnet/coreclr#9433)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7d81c60da7846d73df31d657a5c8c27aaed15d83
Frederik Carlier [Thu, 9 Feb 2017 12:55:20 +0000 (13:55 +0100)]
Rename __reserved to __clr_reserved to avoid a conflict on Android (dotnet/coreclr#9402)
* Rename __reserved to __clr_reserved to avoid a conflict on Android
Commit migrated from https://github.com/dotnet/coreclr/commit/
b2e2c4434a1796d9d245ae3be727a675f4d63e36
SaeHie Park [Thu, 9 Feb 2017 09:36:10 +0000 (18:36 +0900)]
[x86/Linux] Fix UMThunkStub stack alignment (dotnet/coreclr#9365)
Fixes out going call in UMThunkStub to be 16 byte stack aligned
Commit migrated from https://github.com/dotnet/coreclr/commit/
eaee80011c9523ebe82cbadf1a693217e439fbfd
Mikhail Skvortcov [Wed, 8 Feb 2017 10:26:22 +0000 (13:26 +0300)]
Address the feedback.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a38f3351a8c01931f3f9dd18a3e7ec8ff788d1e3
Mikhail Skvortcov [Mon, 30 Jan 2017 10:58:12 +0000 (13:58 +0300)]
RyuJIT/ARM32: more of verbosity for NYI tracking
Commit migrated from https://github.com/dotnet/coreclr/commit/
078fdad31f8ab729042385965e22a2cd91cdabe0
Mikhail Skvortcov [Mon, 30 Jan 2017 10:55:53 +0000 (13:55 +0300)]
RyuJIT/ARM32: misc tiny updates
Commit migrated from https://github.com/dotnet/coreclr/commit/
fc105b9273e4790d3bddec19a51003ae3f025929
Mikhail Skvortcov [Mon, 30 Jan 2017 10:04:46 +0000 (13:04 +0300)]
RyuJIT/ARM32: update lea lowering
Commit migrated from https://github.com/dotnet/coreclr/commit/
b10a7429eb95d10020b9a16837d8ae8099aa4870
Mikhail Skvortcov [Thu, 26 Jan 2017 16:51:31 +0000 (19:51 +0300)]
RyuJIT/ARM32: enable fallback to legacy JIT
Commit migrated from https://github.com/dotnet/coreclr/commit/
c1b13ed5e9ca3be1a40562c54bc549e050beeb0b
Mikhail Skvortcov [Thu, 26 Jan 2017 16:50:28 +0000 (19:50 +0300)]
RyuJIT/ARM32: enable DecomposeLongs phase
Commit migrated from https://github.com/dotnet/coreclr/commit/
85f00fa9f2bf2ee4a083686cb1a59447b8dd0f74
Mikhail Skvortcov [Thu, 26 Jan 2017 16:49:05 +0000 (19:49 +0300)]
RyuJIT/ARM32: fix consume order and clone emitInsTernary
Commit migrated from https://github.com/dotnet/coreclr/commit/
076116be7b5e7890760778020604c698377a83e2
Mikhail Skvortcov [Mon, 30 Jan 2017 08:47:46 +0000 (11:47 +0300)]
RyuJIT/ARM32: refactor emitInsMov, update st.lclFld/Var codegen
Commit migrated from https://github.com/dotnet/coreclr/commit/
b341c300d5c8e2e827b9ce99e783e43586340727
Mikhail Skvortcov [Mon, 30 Jan 2017 08:08:06 +0000 (11:08 +0300)]
RyuJIT/ARM32: fix node info for range check
Commit migrated from https://github.com/dotnet/coreclr/commit/
46e73cf8141ae6ee7b6ab7aad02aacbba06901ce
Mikhail Skvortcov [Mon, 30 Jan 2017 08:03:46 +0000 (11:03 +0300)]
RyuJIT/ARM32: enable call lowering
Commit migrated from https://github.com/dotnet/coreclr/commit/
705deb129db2c10318cd1ff8d792b056f3f05a85
Mikhail Skvortcov [Mon, 30 Jan 2017 08:00:34 +0000 (11:00 +0300)]
RyuJIT/ARM32: enable switch and jump table codegen
Commit migrated from https://github.com/dotnet/coreclr/commit/
9dd31e4eecd6b7c334d61f3eda75e5fe3e20a572
Mikhail Skvortcov [Mon, 30 Jan 2017 07:56:32 +0000 (10:56 +0300)]
RyuJIT/ARM32: enable EH code generation
Commit migrated from https://github.com/dotnet/coreclr/commit/
007c70134f21235419a711a123c1480390d82c89
Gaurav Khanna [Thu, 9 Feb 2017 07:35:40 +0000 (23:35 -0800)]
Merge pull request dotnet/coreclr#9416 from wtgodbe/Suse13
Remove OpenSuse13 from CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
a7c03fbd28d61fac40d3f51845926af54b41c7be
Jonghyun Park [Thu, 9 Feb 2017 06:39:13 +0000 (15:39 +0900)]
Clean up GetAddrOfSecurityObject (dotnet/coreclr#9423)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1163d34fe0d8c6ad7fc68b4c77a3da2eab8017d2
Jonghyun Park [Thu, 9 Feb 2017 06:38:12 +0000 (15:38 +0900)]
Clean up EECodeManager::GetInstance (dotnet/coreclr#9424)
* Clean up EECodeManager::GetInstance
* Use !CROSSGEN_COMPILE instead of CROSSGEN_COMPILE
Commit migrated from https://github.com/dotnet/coreclr/commit/
1002e0fc483430933b7f7e561b4a3bd7702249d8
Jonghyun Park [Thu, 9 Feb 2017 06:37:46 +0000 (15:37 +0900)]
Clean up EECodeManager::GetGSCookieAddr (dotnet/coreclr#9425)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a336822c4610391e41d720010ab9f7d9969028ad
Jonghyun Park [Thu, 9 Feb 2017 06:37:27 +0000 (15:37 +0900)]
Clean up EECodeManager::GetReturnKind (dotnet/coreclr#9426)
Commit migrated from https://github.com/dotnet/coreclr/commit/
82c95b0aab3e220748ef8e566cd8ea3c6a9964ec
Jonghyun Park [Thu, 9 Feb 2017 06:37:10 +0000 (15:37 +0900)]
Clean up EECodeManager::GetFunctionSize (dotnet/coreclr#9427)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ec29cba5e2e691310bb7a9026237e809a08228bf
Jonghyun Park [Thu, 9 Feb 2017 06:36:55 +0000 (15:36 +0900)]
Clean up EECodeManager::GetParamContextType (dotnet/coreclr#9428)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9c37052c23fa45e2fb228b73e1a44b08de242635
Jonghyun Park [Thu, 9 Feb 2017 06:36:30 +0000 (15:36 +0900)]
Clean up EECodeManager::GetExactGenericsToken (dotnet/coreclr#9429)
Commit migrated from https://github.com/dotnet/coreclr/commit/
6c15439bf0a2b929b1e7a6adbb85e1b646c6c4ec
Jonghyun Park [Thu, 9 Feb 2017 06:35:09 +0000 (15:35 +0900)]
Clean up EECodeManager::GetParamTypeArg (dotnet/coreclr#9430)
Commit migrated from https://github.com/dotnet/coreclr/commit/
65248e40425a675326e841a1547870ce90ac9d35
Jonghyun Park [Thu, 9 Feb 2017 06:34:48 +0000 (15:34 +0900)]
[x86/Linux] Revise TAStackCrawlCallBackWorker (dotnet/coreclr#9432)
Commit migrated from https://github.com/dotnet/coreclr/commit/
1ff47a74eb4c70925cea84b3aee401dff0f96885
Bruce Forstall [Thu, 9 Feb 2017 04:17:23 +0000 (20:17 -0800)]
Merge pull request dotnet/coreclr#9431 from BruceForstall/Fix9374
Generate better code for x86 SIMD get[i] intrinsic
Commit migrated from https://github.com/dotnet/coreclr/commit/
a306cf79ba45a974b22cd6c2d75f82ed96360566
Sergey Andreenko [Thu, 9 Feb 2017 02:33:23 +0000 (18:33 -0800)]
Merge pull request dotnet/coreclr#9191 from sandreenko/CORERT-fat-call-transformation
CoreRT fat call transformation
Commit migrated from https://github.com/dotnet/coreclr/commit/
33bc9fd2800d626eb56a78c8432436dbd276b14f
Jonghyun Park [Thu, 9 Feb 2017 01:27:57 +0000 (10:27 +0900)]
[x86/Linux] Fix Calling Convertion Mismatch inside ilasm/ildasm (dotnet/coreclr#9410)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a8798da59a0a99f50d675d7034aa78887c9489bd
Jan Kotas [Thu, 9 Feb 2017 01:26:37 +0000 (17:26 -0800)]
Delete unnecessary domain sanity check (dotnet/coreclr#9420)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c876fe669aff20b9d73a314fada965e9c6eeb5c1
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 dotnet/coreclr#9374
Commit migrated from https://github.com/dotnet/coreclr/commit/
0cc56a0fbc641c4aff9d98d293fa57ed33bb6487
Bruce Forstall [Thu, 9 Feb 2017 00:59:05 +0000 (16:59 -0800)]
Merge pull request dotnet/coreclr#9392 from BruceForstall/FixGtGetOp2
Add gtGetPossibleOp2()
Commit migrated from https://github.com/dotnet/coreclr/commit/
de10dc5d89b9046939de90bd21daff95c650f107
Hyeongseok Oh [Wed, 8 Feb 2017 23:49:23 +0000 (08:49 +0900)]
[ARM32/Linux] Fix definition and CMake for cross-architecture build (dotnet/coreclr#9262)
- Fix ABI flag based on target
- Exclude corefx for cross-architecture component
Commit migrated from https://github.com/dotnet/coreclr/commit/
4f17d5cdd502aee33aecc1669dfd3dcdcb59ca17
Ahson Ahmed Khan [Wed, 8 Feb 2017 23:48:43 +0000 (15:48 -0800)]
Span Slice method AggressiveInlining (dotnet/coreclr#9404)
Commit migrated from https://github.com/dotnet/coreclr/commit/
067c94e3963c73017a167894713825c576bf4b5e
Sergey Andreenko [Sat, 28 Jan 2017 23:28:05 +0000 (15:28 -0800)]
CoreRT calli transformation
Transform managed calli when compiling for CoreRT.
Commit migrated from https://github.com/dotnet/coreclr/commit/
654fed28001085adc162de1ea3207e9a22230235
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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8ed2c04cb49593a6b582c0f1a96c3a67da36dfab
Bruce Forstall [Wed, 8 Feb 2017 23:10:53 +0000 (15:10 -0800)]
Merge pull request dotnet/coreclr#9382 from BruceForstall/CallFinallyCleanup
Remove unnecessary parameter to genCallFinally()
Commit migrated from https://github.com/dotnet/coreclr/commit/
14091f3d74e95cda3e74b48dac66c2d3157f3a31
Bruce Forstall [Wed, 8 Feb 2017 23:10:22 +0000 (15:10 -0800)]
Merge pull request dotnet/coreclr#9386 from BruceForstall/FixSwitchTable
Fix compare/branch switch mode expansion
Commit migrated from https://github.com/dotnet/coreclr/commit/
f67388bdd816e22573d0796639c594fbcb36dc63
Jan Kotas [Wed, 8 Feb 2017 22:39:46 +0000 (14:39 -0800)]
Filter RefEmit modules in SendEventsForNgenMethods (dotnet/coreclr#9418)
* Filter RefEmit modules in SendEventsForNgenMethods
Fixes dotnet/coreclr#6427
Commit migrated from https://github.com/dotnet/coreclr/commit/
d330eaf7ef097b0d6822b7ab788cb5f95e8b5afb
William Godbe [Wed, 8 Feb 2017 21:35:49 +0000 (13:35 -0800)]
Merge pull request dotnet/coreclr#9417 from wtgodbe/publishNativeBins
Publish test native bins from correct directory
Commit migrated from https://github.com/dotnet/coreclr/commit/
3ed997483dc222ef696b5a3f38513707cb77b9cc
wtgodbe [Wed, 8 Feb 2017 20:30:03 +0000 (12:30 -0800)]
Publish test native bins from correct directory
Commit migrated from https://github.com/dotnet/coreclr/commit/
f5ee8f57612a6992e85e6518b817e5d6b26b905d
wtgodbe [Wed, 8 Feb 2017 18:50:37 +0000 (10:50 -0800)]
Remove OpenSuse13 from CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
d34250bb2915ae3cb9e7f395b557b8b7a6ea3ab3
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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6d99c9ac9d8f9689abe8e03d1c15fa79e3b168e1
Joseph Tremoulet [Wed, 8 Feb 2017 16:09:05 +0000 (11:09 -0500)]
Merge pull request dotnet/coreclr#9169 from JosephTremoulet/UntrackedMem
Value-number byref loads
Commit migrated from https://github.com/dotnet/coreclr/commit/
1e731c49912bd9d7247073c577896e1a0a071a8d
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 dotnet/coreclr#7903.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a796400efe6bd2bc223b9d9367ec3b8a45647860
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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1c6a419710ed292f2fa48e459239ee95e3ed2ca2
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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
463502f9e70e39cd460091298b338a065b8631f2
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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5501ecb0855f295c0c60c3743c440badd5d67d61
Joseph Tremoulet [Wed, 8 Feb 2017 14:31:52 +0000 (09:31 -0500)]
Merge pull request dotnet/coreclr#9329 from JosephTremoulet/LateArgVN
Get call arg value numbers from late args
Commit migrated from https://github.com/dotnet/coreclr/commit/
eaa168845c45bb465953a61e038f8afd88c27206
Jonghyun Park [Wed, 8 Feb 2017 13:38:15 +0000 (22:38 +0900)]
Clean up EnumGcRefs (dotnet/coreclr#9412)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a280ec66aaef4e09f7e3cbe74fc554bbae7b701f
Russ Keldorph [Wed, 8 Feb 2017 12:49:42 +0000 (04:49 -0800)]
Merge pull request dotnet/coreclr#9408 from jashook/disable_checked_arm64
Disable checked arm64 jobs until jobs are stable
Commit migrated from https://github.com/dotnet/coreclr/commit/
9b0137f9ce00049955366fa5fb6066f0ab8ffc65
Jonghyun Park [Wed, 8 Feb 2017 09:29:23 +0000 (18:29 +0900)]
[x86/Linux] Use SP as StackMarker (dotnet/coreclr#9389)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0dc81ab6810e43253411ae76a780c8291650da0f
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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
842c64eb8ea0181368ad8e0830191fb71a92c69c
Jan Kotas [Wed, 8 Feb 2017 03:30:40 +0000 (19:30 -0800)]
Add ComVisible(true) back to several special types (dotnet/coreclr#9403)
It is required by WinRT/COM interop. Fixes dotnet/coreclr#9401.
Commit migrated from https://github.com/dotnet/coreclr/commit/
272cc4e755e6ef4570d70b815a03c15c7a9ccc1b
Dan Moseley [Tue, 7 Feb 2017 22:10:09 +0000 (14:10 -0800)]
Remove more CAS (dotnet/coreclr#9390)
* Remove PermissionSet
* Remove HostProtectionAttribute
* Remove PermissionState
* Remove S.Security.Permissions
* Remove IPrincipal
* Fix native side
* Remove model.xml again
Commit migrated from https://github.com/dotnet/coreclr/commit/
c35e8dbc37e5380f46553510d0368aad04a677d2
Koundinya Veluri [Tue, 7 Feb 2017 20:58:51 +0000 (12:58 -0800)]
Fix field type for ByReference<T> and TypedReference (dotnet/coreclr#9284)
Fix field type for `ByReference<T>` and `TypedReference`
Fixes dotnet/coreclr#7894
Commit migrated from https://github.com/dotnet/coreclr/commit/
3c34cce7187e44c024331ad6267c6507034e48bd
Frederik Carlier [Tue, 7 Feb 2017 18:19:31 +0000 (19:19 +0100)]
Add scripts & docs which support creating an Android toolchain on Linux (dotnet/coreclr#9175)
* Add scripts & docs which support creating an Android toolchain on Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
05ec3cea1f58eec67f85de09e8869e9239e6c94d
Russ Keldorph [Tue, 7 Feb 2017 18:14:24 +0000 (10:14 -0800)]
Merge pull request dotnet/coreclr#9385 from jashook/lower_block_store_arm64
Call LowerBlockStore TreeNodeInfoInitBlockStore
Commit migrated from https://github.com/dotnet/coreclr/commit/
49e51a52fac3ee4e0f893b862b759473d3f5f2f6
Jan Vorlicek [Tue, 7 Feb 2017 15:13:37 +0000 (16:13 +0100)]
Design portable tail calls with helpers (dotnet/coreclr#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.
Commit migrated from https://github.com/dotnet/coreclr/commit/
647e7f1f39040fbd7e77d1d7cc56c22deb7ec2a9
Stephen Toub [Tue, 7 Feb 2017 14:16:27 +0000 (09:16 -0500)]
Merge pull request dotnet/coreclr#9383 from dotnet-bot/master-UpdateDependencies
Update CoreClr, CoreFx to beta-25007-01, beta-25007-01, respectively (master)
Commit migrated from https://github.com/dotnet/coreclr/commit/
597a00ece8ac99b603df9876bd9e9b01e536a9e3
Jonghyun Park [Tue, 7 Feb 2017 14:08:15 +0000 (23:08 +0900)]
[x86/Linux] Clean up EHContext-related code (dotnet/coreclr#9395)
Commit migrated from https://github.com/dotnet/coreclr/commit/
35e91e578712bdcc881c56e515dba07e6be3f15d
Dan Moseley [Tue, 7 Feb 2017 14:00:55 +0000 (06:00 -0800)]
Remove bclrewriter (dotnet/coreclr#9351)
* Remove bclrewriter
* Dump crossgen error to Jenkins log
Commit migrated from https://github.com/dotnet/coreclr/commit/
505d2266d4d10229105408c6f803acb5a017b0fa
Jonghyun Park [Tue, 7 Feb 2017 13:47:14 +0000 (22:47 +0900)]
Clean up methods for USE_GC_INFO_DECODER (dotnet/coreclr#9394)
Commit migrated from https://github.com/dotnet/coreclr/commit/
2945233dec39a07652455ffb075b0a4a5f303fa6
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 (dotnet/coreclr#9376)
Commit migrated from https://github.com/dotnet/coreclr/commit/
cf42bd28027e62ffff3d7f8b68a50fde1f0cdccf
Jonghyun Park [Tue, 7 Feb 2017 04:09:59 +0000 (13:09 +0900)]
Fix a typo in TailCallFrame::UpdateRegDisplay log (dotnet/coreclr#9381)
Commit migrated from https://github.com/dotnet/coreclr/commit/
59738c718a32e600be07391540a540046f99c741