Eugene Rozenfeld [Tue, 11 Jul 2017 08:03:26 +0000 (01:03 -0700)]
Fix for a bug in tail recursion elimination.
Tail recursion elimination transforms a tail call into a loop.
If compInitMem is set, we may need to zero-initialize some locals. Normally it's done in the prolog
but the loop we are creating can't include the prolog. The fix is to insert zero-initialization
for all non-parameter non-temp locals in the loop. Liveness phase will remove unnecessary initializations.
We never hit this case with normal C# code since C# definite assignment rules ensure that there are
no uninitialized locals in the generated msil. In the repro the method with tail recursion is a dynamic method
and it has an uninitialized local.
Carol Eidt [Tue, 11 Jul 2017 00:04:31 +0000 (17:04 -0700)]
Merge pull request #12722 from CarolEidt/DumpFixes
A couple more fixes to JitDump
Carol Eidt [Mon, 10 Jul 2017 23:44:38 +0000 (16:44 -0700)]
Merge pull request #12674 from CarolEidt/LowerStoreLoc
Move StoreLoc type widening to Lowering
Vance Morrison [Mon, 10 Jul 2017 23:25:05 +0000 (16:25 -0700)]
Change heading size
Bruce Forstall [Mon, 10 Jul 2017 23:24:59 +0000 (16:24 -0700)]
Merge pull request #12628 from hseok-oh/ryujit/fix_12602
[RyuJIT/ARM32] Clear assertion for refany struct and struct type temp
Vance Morrison [Mon, 10 Jul 2017 23:23:49 +0000 (16:23 -0700)]
Put in a warning that the instructions no longer work properly
Vance Morrison [Mon, 10 Jul 2017 23:02:44 +0000 (16:02 -0700)]
Remove another reference to System.Private.Corelib.ni.dll
Vance Morrison [Mon, 10 Jul 2017 23:00:46 +0000 (16:00 -0700)]
Remove reference to System.Private.Corelib.ni.dll
The build now only has the NGENed image (called but called System.Private.Corelib.dll. Remove references to the *.ni.dll version
William Godbe [Mon, 10 Jul 2017 22:25:14 +0000 (15:25 -0700)]
Merge pull request #12580 from wtgodbe/disableSync
Disable sync.cmd -n for Windows binaries
Carol Eidt [Mon, 10 Jul 2017 21:31:34 +0000 (14:31 -0700)]
A couple more fixes to JitDump
Brian Sullivan [Mon, 10 Jul 2017 20:52:31 +0000 (13:52 -0700)]
Merge pull request #12716 from dotnet-bot/from-tfs
Merge changes from TFS
Pat Gavlin [Mon, 10 Jul 2017 20:43:13 +0000 (15:43 -0500)]
Speed up fgLocalVarLiveness in minopts. (#12665)
In particular:
- Do not re-sort lclVars
- Do not run LVA
- Do not set `mustInit`
- Do not set last uses
- Do not perform DSE
William Godbe [Mon, 10 Jul 2017 20:10:25 +0000 (13:10 -0700)]
Merge pull request #12717 from wtgodbe/disableJITTestArm
disable hijacking test for Arm32
Aditya Mandaleeka [Mon, 10 Jul 2017 19:58:27 +0000 (12:58 -0700)]
Merge pull request #12712 from helloguo/errorHandle
Fix error handle of PAL API SetThreadGroupAffinity
wtgodbe [Mon, 10 Jul 2017 18:43:39 +0000 (11:43 -0700)]
disable hijacking test for Arm32
Chris Rummel [Mon, 10 Jul 2017 18:42:57 +0000 (13:42 -0500)]
Add symbol signing to published packages. (#12291)
* Add symbol signing to published packages.
- Enable MicroBuild signing steps.
- Update build to call new BuildTools symbol signing targets.
wtgodbe [Fri, 30 Jun 2017 19:29:12 +0000 (12:29 -0700)]
Disable sync.cmd -n for Windows binaries
Daniel Podder [Mon, 10 Jul 2017 18:37:25 +0000 (11:37 -0700)]
Fix optdata bootstrap test script & Linux skiprestoreoptdata behavior (#12541)
Fixes #12171.
* bootstrap.py was printing an improperly-cased path to put PGO/IBC
training data, which breaks on case-sensitive file systems, i.e., on
Linux.
* On Linux, `skiprestoreoptdata` was improperly skipping PGO even if
optdata was already present due to some of the conditional checks in
build.sh. This cleans that up to better match the intent of the
switch, and to fix Linux behavior to better match Windows.
Bruce Forstall [Mon, 10 Jul 2017 18:22:08 +0000 (11:22 -0700)]
Merge pull request #12710 from hseok-oh/ryujit/fix_12703
[RyuJIT/ARM32] Fix register allocation for split GT_FIELD_LIST struct
Brian Sullivan [Mon, 10 Jul 2017 18:20:55 +0000 (11:20 -0700)]
Update the telemetry logging to use MEASURES instead of TELEMENTRY
[tfs-changeset: 1665164]
Hyeongseok Oh [Mon, 10 Jul 2017 10:29:16 +0000 (19:29 +0900)]
[RyuJIT/ARM32] Fix register allocation for split GT_FIELD_LIST struct
To fix register allocation for split GT_FIELD_LIST struct,
set source register for each node of GT_FIELD_LIST
helloguo [Mon, 10 Jul 2017 09:50:28 +0000 (02:50 -0700)]
fix error handle
Carol Eidt [Mon, 10 Jul 2017 05:55:28 +0000 (22:55 -0700)]
Merge pull request #12572 from wateret/armel/dblarg_stack
[RyuJIT/armel] Passing stack double arguments
Hyung-Kyu Choi [Mon, 10 Jul 2017 05:08:44 +0000 (14:08 +0900)]
[RyuJIT/ARM32] Avoid promoting structures which can be handled by HFA (#12604)
* [RyuJIT/ARM32] Avoid promoting structures which can be handled by HFA
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
* [RyuJIT/ARM32] Add comments for ARM32
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Petr Onderka [Sun, 9 Jul 2017 18:22:58 +0000 (20:22 +0200)]
Note that tests don't have to be built to view JIT dumps (#12699)
Jan Kotas [Sun, 9 Jul 2017 18:22:23 +0000 (20:22 +0200)]
Unify LazyInitializers with CoreRT (#12697)
CoreCLR implementation cached s_activatorFactorySelector delegate, but CoreRT did not cache it - it got commented out during earlier AOT binary size optimization efforts. I have unified it by avoiding s_activatorFactorySelector delegate altogether to keep the best of both.
Viktor Hofer [Sun, 9 Jul 2017 15:34:51 +0000 (17:34 +0200)]
TypeForward cleanup for Culture=neutral (#12698)
Jan Kotas [Sun, 9 Jul 2017 06:46:00 +0000 (08:46 +0200)]
Move files to shared CoreLib partition (#12694)
Michal Strehovský [Sun, 9 Jul 2017 04:31:30 +0000 (00:31 -0400)]
Use R2R helper for runtime lookups only when USEHELPER was specified (#12669)
The CoreRT compiler would like to be able to do indirections-based
lookup even when ReadyToRun codegen is specified.
Pat Gavlin [Sun, 9 Jul 2017 00:04:22 +0000 (19:04 -0500)]
Avoid a large local in a recursive visitor. (#12693)
This local of type `CORINFO_CALL_INFO` bloats the frame size of its
caller when the function is inlined and ends up aggravating stack size
issues in deep recursion. This change refactors the offending method a
bit in order to avoid the local entirely.
Hopefully this fixes #12691.
dotnet-maestro-bot [Sat, 8 Jul 2017 21:05:19 +0000 (14:05 -0700)]
Update CoreClr, CoreFx to preview2-25508-04, preview2-25508-04, respectively (#12633)
James Ko [Sat, 8 Jul 2017 20:38:23 +0000 (16:38 -0400)]
Remove redundant call to TimeSpan.TotalMilliseconds (#12692)
Daniel Podder [Sat, 8 Jul 2017 06:53:38 +0000 (23:53 -0700)]
Ensure that ZeroMemoryInGCHeap writes in pointer-sized increments (#12689)
by adding the volatile keyword (which disables memset optimization).
Fixes #12207
Jan Kotas [Sat, 8 Jul 2017 03:30:52 +0000 (05:30 +0200)]
Merge pull request dotnet/corert#4110 from jkotas/nmirror-merge
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Michal Strehovský [Fri, 7 Jul 2017 18:03:37 +0000 (14:03 -0400)]
Merge pull request dotnet/corert#4100 from dotnet/nmirror
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jeremy Kuhne [Sat, 8 Jul 2017 01:24:13 +0000 (18:24 -0700)]
Fix Unix debug assert to not use instance handle (#12687)
Bruce Forstall [Sat, 8 Jul 2017 00:31:59 +0000 (17:31 -0700)]
Fix GitHub_3449 test (#12683)
* Fix GitHub_3449 test
This test was looking for one answer for ARM and ARM64 but another
for other architectures. This didn't work for ARM32 on Windows
(compared to ARM32 on Linux).
Instead, simply allow either answer. This doesn't seem like a
terrible loss of precision, since we already allowed different
answers based on the platform.
* Update comment
Tarek Mahmoud Sayed [Fri, 7 Jul 2017 18:06:58 +0000 (11:06 -0700)]
Minor fix added to mirrored changes
Tarek Mahmoud Sayed [Thu, 6 Jul 2017 19:22:02 +0000 (12:22 -0700)]
Merge pull request dotnet/corert#4086 from tarekgh/CleanupSerializationInEncoding
Clean up serialization from Encoding
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Carol Eidt [Thu, 6 Jul 2017 21:38:24 +0000 (14:38 -0700)]
Move StoreLoc type widening to Lowering
Aditya Mandaleeka [Fri, 7 Jul 2017 23:13:42 +0000 (16:13 -0700)]
Merge pull request #12682 from adityamandaleeka/arm64_dump_hang
Temporarily block core dump printing on arm64
Bruce Forstall [Fri, 7 Jul 2017 22:07:38 +0000 (15:07 -0700)]
Merge pull request #12675 from mikedn/range-disp
Dump tree IDs instead of pointers in RangeCheck
Bruce Forstall [Fri, 7 Jul 2017 22:05:51 +0000 (15:05 -0700)]
Merge pull request #12673 from ruben-ayrapetyan/fix-issue-12643
Fix copying of FieldMarshaler structures
Bruce Forstall [Fri, 7 Jul 2017 22:03:43 +0000 (15:03 -0700)]
Merge pull request #12681 from BruceForstall/RemoveNonexistentVarargsTests
Remove varargs test references
Vance Morrison [Fri, 7 Jul 2017 22:02:12 +0000 (15:02 -0700)]
Restore missing native *.ni.pdb file from the Microsoft.NETCore.Runtime.CoreCLR (#12677)
* Restore missing native *.ni.pdb file from the Microsoft.NETCore.Runtime.CoreCLR package
DLLs that have native code, need both the *.pdb (for IL information) and the *.ni.pdb (for
native information).
When System.Private.Corlib was renamed from System.Private.Corlib.ni.pdb to System.Private.Corlib,
the logic that decides what goes into the Microsoft.NETCore.Runtime.CoreCLR package lost
the *.ni.pdb for System.Private.Corlib.
This change basically causes this logic to search both for *.ni.pdb as well as the *.pdb file and
thus fixes this issue.
* Remove unnecessary condition (review feedback)
Aditya Mandaleeka [Fri, 7 Jul 2017 19:54:35 +0000 (12:54 -0700)]
Temporarily block core dump printing on arm64 to unblock CI.
Yi Zhang (CLR) [Fri, 7 Jul 2017 20:34:38 +0000 (13:34 -0700)]
Revert change that always publish runtime layout (#12679)
Michelle McDaniel [Fri, 7 Jul 2017 19:56:03 +0000 (12:56 -0700)]
Merge pull request #12500 from adiaaida/throughputExclusionList
Update throughput exclusion list
Bruce Forstall [Fri, 7 Jul 2017 18:24:49 +0000 (11:24 -0700)]
Remove varargs test references
varargs tests were removed with
0a427c6d6d87e69ce0f87dafd2f965ee989e6d29
Mike Danes [Fri, 7 Jul 2017 15:45:01 +0000 (18:45 +0300)]
Dump tree IDs instead of pointers in RangeCheck
Jonghyun Park [Fri, 7 Jul 2017 18:06:39 +0000 (03:06 +0900)]
Fix skipcrossgen option (#12650)
* Fix skipcrossgen option
* Use return instead of exit
Pat Gavlin [Fri, 7 Jul 2017 15:16:31 +0000 (10:16 -0500)]
Merge pull request #12429 from mikedn/dead-qmark
Remove QMARK related dead code
Carol Eidt [Fri, 7 Jul 2017 15:12:59 +0000 (08:12 -0700)]
Merge pull request #12623 from hqueue/arm/ryujit/issue_12615
[RyuJIT/ARM32] Unassign double register properly
Carol Eidt [Fri, 7 Jul 2017 15:08:23 +0000 (08:08 -0700)]
Merge pull request #12597 from hseok-oh/ryujit/struct_split/lsra
[RyuJIT/ARM32] Codegen: split struct argument less than 16 bytes
Ruben Ayrapetyan [Fri, 7 Jul 2017 12:54:14 +0000 (15:54 +0300)]
Fix copying of FieldMarshaler structures in EEClassLayoutInfo::CollectLayoutFieldMetadataThrowing.
Related issue: #12643
Hyeongseok Oh [Fri, 7 Jul 2017 02:45:33 +0000 (11:45 +0900)]
[RyuJIT/ARM32] Codegen: split struct argument less than 16 bytes
Enable passing split struct (less than 16 bytes)
- LSRA phase
- Codegen phase
Bruce Forstall [Fri, 7 Jul 2017 06:03:00 +0000 (23:03 -0700)]
Merge pull request #12653 from wateret/arm/lvadump
[RyuJIT/arm] Fix double type local variable dump
Hyung-Kyu Choi [Fri, 7 Jul 2017 05:20:10 +0000 (14:20 +0900)]
[RyuJIT/ARM32] Apply review feedback
Rename vairable and rewrite code to use less #ifdef
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Hanjoung Lee [Fri, 7 Jul 2017 05:12:20 +0000 (14:12 +0900)]
[RyuJIT/armel] Rewrite changes for readibility
Xiangyang (Mark) Guo [Fri, 7 Jul 2017 02:39:32 +0000 (19:39 -0700)]
Pin GC threads to corresponding processors on Linux (#12486)
* fix SetThreadGroupAffinity, add SetThreadAffinityMask and pin GC threads to processors on Linux
* fix loop count and error handler
Roman Artemev [Fri, 7 Jul 2017 01:24:28 +0000 (18:24 -0700)]
Merge pull request #12667 from rartemev/issue_12465_1
Added explicit cast float -> double for arguments
Roman Artemev [Thu, 6 Jul 2017 23:36:59 +0000 (16:36 -0700)]
Merge pull request #12634 from rartemev/issue_12466_1
Fix misprint in complex condition
Roman Artemev [Thu, 6 Jul 2017 22:28:43 +0000 (15:28 -0700)]
Added explicit cast float -> double for arguments
Jan Kotas [Thu, 6 Jul 2017 18:35:42 +0000 (20:35 +0200)]
Use SUB instead of XOR to clear fat pointer bit (#12658)
This makes the code generated for fat calli smaller because of the clearing of the fat pointer bit gets fused into address mode.
Bruce Forstall [Thu, 6 Jul 2017 18:28:07 +0000 (11:28 -0700)]
Merge pull request #12666 from mskvortsov/UnalignedLdSt
[RyuJIT/Arm32] Support unaligned floating point loads/stores
Bruce Forstall [Thu, 6 Jul 2017 18:15:01 +0000 (11:15 -0700)]
Merge pull request #12655 from YongseopKim/ryujit/arm32/add_nyi_promoted_struct
[RyuJIT/ARM32] Add NYI_ARM for handling promoted struct
Michelle McDaniel [Tue, 27 Jun 2017 21:55:32 +0000 (14:55 -0700)]
Update throughput exclusion list
There are many assemblies in our throughput benchmark package that are
reference or forwarding assemblies. There is no jit work in these
assemblies, so we want to exclude them.
This change also adds an iterations parameter so users can specify a
specific number of iterations for testing.
Bruce Forstall [Thu, 6 Jul 2017 16:29:25 +0000 (09:29 -0700)]
Merge pull request #12053 from mikedn/xcopy-bindir
Do not copy bin subdirectories to test core_root
Bruce Forstall [Thu, 6 Jul 2017 16:26:24 +0000 (09:26 -0700)]
Merge pull request #12652 from hseok-oh/ryujit/fix_split_lower
[RyuJIT/ARM32] Fix register type setting for split struct arg
Mikhail Skvortcov [Thu, 6 Jul 2017 14:09:52 +0000 (17:09 +0300)]
Support unaligned floating point loads/stores
Yongseop Kim [Wed, 5 Jul 2017 11:16:55 +0000 (20:16 +0900)]
[RyuJIT/ARM32] Add NYI_ARM for handling promoted struct
- In RyuJIT/ARM32, promoted struct on stack can't be handled like
splitted struct arg's one.
- Until implementing handling it, make it entering the NYI_ARM.
Jan Kotas [Thu, 6 Jul 2017 07:01:53 +0000 (09:01 +0200)]
Fix DumpLog to be compatible with CoreRT (#12636)
Yi Zhang (CLR) [Thu, 6 Jul 2017 06:15:57 +0000 (23:15 -0700)]
build runtime layout when skipping tests (#12587)
Jonghyun Park [Thu, 6 Jul 2017 06:05:34 +0000 (15:05 +0900)]
[x86/Linux] Enable thread-abort reraise loop prevention (#12646)
Hanjoung Lee [Thu, 6 Jul 2017 05:30:23 +0000 (14:30 +0900)]
[RyuJIT/arm] Fix double type local variable dump
Hyeongseok Oh [Thu, 6 Jul 2017 05:07:21 +0000 (14:07 +0900)]
[RyuJIT/ARM32] Fix register type setting for split struct arg
Fix register type setting for split struct argument using GT_FIELD_LIST node
Yongseop Kim [Thu, 6 Jul 2017 04:06:39 +0000 (13:06 +0900)]
[RyuJIT/ARM32] Fix assertion failed 'gcPtrCount == 0' (#12621)
* [RyuJIT/ARM32] Fix assertion failed 'gcPtrCount == 0'
Change wrong gcPtrCount's value from gtNumSlots to gtNumberReferenceSlots of GenTreePutArgStk
* Fix a formatting error
Tarek Mahmoud Sayed [Thu, 6 Jul 2017 02:56:27 +0000 (19:56 -0700)]
Merge pull request #12647 from dotnet/mirror-merge-9210244
Mirror changes from dotnet/corert
Tarek Mahmoud Sayed [Thu, 6 Jul 2017 00:37:58 +0000 (17:37 -0700)]
Fix the merge from the corert changes
Tarek Mahmoud Sayed [Thu, 6 Jul 2017 00:03:41 +0000 (17:03 -0700)]
Merge pull request dotnet/corert#4080 from dotnet/nmirror
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Aditya Mandaleeka [Thu, 6 Jul 2017 00:02:15 +0000 (17:02 -0700)]
Merge pull request #12606 from adityamandaleeka/mask_activation_on_altstack
Mask INJECT_ACTIVATION_SIGNAL while on alternate signal stack
Aditya Mandaleeka [Mon, 3 Jul 2017 17:41:02 +0000 (10:41 -0700)]
Mask INJECT_ACTIVATION_SIGNAL while on alternate signal stack.
Hanjoung Lee [Wed, 5 Jul 2017 23:58:30 +0000 (08:58 +0900)]
Update gtDispRegVal() for multi register nodes (#12573)
* Update gtDispRegVal() for multi register nodes
* [RyuJIT/armel] Fix
chcosta [Wed, 5 Jul 2017 23:29:04 +0000 (16:29 -0700)]
Cleanup officialbuild warnings (#12578)
* Cleanup officialbuild warnings
* Re-enable "sync test native binaries" step
Bruce Forstall [Wed, 5 Jul 2017 21:03:06 +0000 (14:03 -0700)]
Merge pull request #12619 from parjong/fix/merge_jit_and_engine
Fix missing references in FEATURE_MERGE_JIT_AND_ENGINE
Bruce Forstall [Wed, 5 Jul 2017 20:51:55 +0000 (13:51 -0700)]
Merge pull request #12637 from parjong/fix/skipcrossgen
Add skipcrossgen option
Bruce Forstall [Wed, 5 Jul 2017 20:24:48 +0000 (13:24 -0700)]
Merge pull request #12575 from wateret/armel/floatret
[RyuJIT/armel] Move returned float to float reg
Jonghyun Park [Wed, 5 Jul 2017 07:23:09 +0000 (16:23 +0900)]
Add skipcrossgen option
Jonghyun Park [Wed, 5 Jul 2017 01:45:24 +0000 (10:45 +0900)]
Support interprter build when INTERP_TRACING is not set (#12625)
Jonghyun Park [Wed, 5 Jul 2017 01:40:57 +0000 (10:40 +0900)]
Remove unused global variable (#12620)
Jonghyun Park [Wed, 5 Jul 2017 01:39:53 +0000 (10:39 +0900)]
Hide methods in IdDispenser (instead of using DacNotImpl) (#12624)
Hyeongseok Oh [Tue, 4 Jul 2017 11:11:48 +0000 (20:11 +0900)]
[RyuJIT/ARM32] Clear assertion for refany struct and struct type temp
- Change refany struct as like x64 and arm64
- Make struct type temp argument as GT_OBJ
Roman Artemev [Wed, 5 Jul 2017 00:14:24 +0000 (17:14 -0700)]
Fix misprint in complex condition
Jan Kotas [Tue, 4 Jul 2017 14:45:31 +0000 (07:45 -0700)]
Update to latest System.Memory
dotnet-maestro-bot [Tue, 4 Jul 2017 12:55:31 +0000 (12:55 +0000)]
Update CoreClr, CoreFx to preview2-25504-01, preview2-25504-01, respectively
Jan Kotas [Tue, 4 Jul 2017 14:19:32 +0000 (07:19 -0700)]
Delete unnecessary code (#12607)
Hanjoung Lee [Tue, 4 Jul 2017 08:50:57 +0000 (17:50 +0900)]
[RyuJIT/armel] Move returned float to float reg
Returned float values are in r0(float) or r0:r1(double).
These values must be moved to proper float register after call.
Fix #12574
Hyung-Kyu Choi [Tue, 4 Jul 2017 07:07:19 +0000 (16:07 +0900)]
[RyuJIT/ARM32] Unassign double register properly
In LinearScan::tryAllocateFreeReg(), unassign a double register properly
when a found float register is a part of a double register.
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
Jonghyun Park [Thu, 1 Jun 2017 05:50:13 +0000 (14:50 +0900)]
Fix missing refernces in FEATURE_MERGE_JIT_AND_ENGINT
Pat Gavlin [Tue, 4 Jul 2017 00:37:13 +0000 (17:37 -0700)]
Merge pull request #12608 from pgavlin/FixDSE
Fix a bug in LIR dead store removal.