summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2017-09-13Fix potentially unused variable in lb armjashook1-1/+1
2017-09-13Fix AV in corerun on invalid filenameJan Kotas1-1/+1
Before this fix, corerun would AV on certain invalid paths e.g.: corerun test.exe\
2017-09-13Mark Span.Length as non-versionableJan Kotas3-9/+42
This allows inlining Span.Length accross versioning boundaries in R2R images. We are leaking the Span implementation details already because the Span indexer is treated as intrinsic. Marking a few more trivial methods as non-versionable should not do any future harm.
2017-09-13Merge pull request #13806 from hqueue/arm/ryujit/issue_13739_jitstress_NYI_addrCarol Eidt2-35/+11
[RyuJIT/ARM32] Add ADDR and fixup return type correctly
2017-09-13Fix Hebrew date parsing (#13929)Tarek Mahmoud Sayed1-0/+17
This fix when parsing Hevrew dat e string formatted as dd/MM/yy. we didn't encounter the same on Windows before because default short date pattern on Windows is dd MMM yyyy which we can parse it successfully.
2017-09-13Lower TEST(x, LSH(1, y)) to BT(x, y)Mike Danes1-0/+49
2017-09-13Add GT_BTMike Danes4-1/+34
2017-09-13Add INS_btMike Danes2-0/+31
2017-09-13Merge pull request #13903 from JosephTremoulet/PlaceReturnsJoseph Tremoulet1-4/+76
Improve const return block placement
2017-09-13Merge pull request #13835 from sdmaclea/PR-ARM64-GT_MULHIJoseph Tremoulet2-40/+31
[Arm64] Add GT_MULHI
2017-09-13Merge pull request #13799 from sdmaclea/PR-ARM64-Transform-AND-CMPJoseph Tremoulet7-6/+35
[Arm64] Transform AND-CMP to TST
2017-09-13Introduce FEATURE_GDBJIT_SYMTAB (#13567)Konstantin Baladurin2-12/+112
* Introduce FEATURE_GDBJIT_SYMTAB This commit adds new feature FEATURE_GDBJIT_SYMTAB. When it's set ELF file with symtab section will be generated for all JITed methods. It helps lldb and gdb correctly unwind frames of JITed methods as they can use assembly language inspection to determine location of saved registers on stack. * gdbjit symtab feature: use different symbols for each function in JITed code
2017-09-12Re-implemented the ecvt function. (#12894)Jim Ma14-346/+1088
* Re-implemented the ecvt function. Instead of leveraging snprintf, re-implement the ecvt function according to the paper: https://www.cs.indiana.edu/~dyb/pubs/FP-Printing-PLDI96.pdf Note: 1. This commit won't fix any existing bug. 2. This is a raw implementation of the paper. The performance on Linux only gain 10%. We could tune the performance further. Fix #10651 * Resolve a cross platform header file issue. Fix #10651 * Fixed a minor bug. Improved the performance. Fix #10651 * Modified code according to code review feedback. This commit fixed most of the issue found in code review. However, some of the feedback may not be involved due to either little performance improvement or need a POC. Fix #10651 * Try to fix constexpr compile error on Windows. Fix #10651 * Fixed a potential overflow bug in BigNum::Compare. Fix #10651 * Improved multiply 10 operation. Use shift and add operation to replace actual multiply operation. Fix #10651 * Remove old _ecvt function. Fix #10651 * Documented the reason why we do not need m+ and m-. Fix #10651 * Changed exp > 0 to exp != 0 to remove any confusion. exp should fall in 1 ~ 2046 for normalized value. Denormalized value has exp = 0. Fix #10651 * Disable the _ecvt tests. Fix #10651 * Removed _ecvt tests. Fix #10651 * Re-implemented LogBase2. Fix #10651 * Use DWORD and DWORD64 for _BitScanReverse and _BitScanReverse64 Fix #10651 * Fixed x86 compile issue for _BitScanReverse64 x86 does not support _BitScanReverse64 so we have to add additional shift operations to handle it. Fix #10651 * Implemented BitScanReverse64 and BitScanReverse in pal.h Fix #10651 * Remove the confusion comment which is unrelated to BitScanReverse. Fix #10651 * Introduced wmemset to enhance the perf for 0.0 Fix #10651 * Improved the performance of converting 0.0. Fix #10651 * Renamed ecvt to DoubleToNumberWorker. Fix #10651 * Updated code according to the code review feedback. Fix #10651
2017-09-12[RyuJIT/ARM32] Implement CreateDictionaryLookupHelper only via helper (#13733)Sujin Kim3-8/+32
* [RyuJIT/ARM32] Implement CreateDictionaryLookupHelper only via run-time helper Implement CreateDictionaryLookupHelper only via run-time helper * Add assertion for checking CORINFO_USEHELPER
2017-09-12Fix ARM32 secure delegate bug (#13922)Jan Vorlicek1-1/+16
This change fixes a bug that causes crashes when secure delegate is invoked on ARM32 with legacy codegen. Register R4 was loaded with indirection slot address and immediatelly marked as trashed, so the JIT compiler reused it before the call that was supposed to have that value in R4. The fix was to move the reg trashing after the call. There was also an incorrect marking of that address as EA_PTRSIZE while it should be EA_BYREF, so I've fixed that too.
2017-09-12Make dangerous Span APIs less discoverable. (#13927)Ahson Ahmed Khan2-0/+5
2017-09-12Remove redundant zero-initialization of struct temps with GC fields. (#13868)Eugene Rozenfeld5-37/+71
Remove redundant zero-initialization of struct temps with GC fields. Structs with GC pointer fields are fully zero-initialized in the prolog if compInitMem is true. Therefore, we don't need to insert zero-initialization for the result of newobj or for inlinee locals when they are structs with GC pointer fields and the basic bock is not in a loop.
2017-09-12[Arm64] Enable Lowering GT_ARR_BOUNDS_CHECKSteve MacLean2-2/+11
2017-09-12JIT: optimize case where box feeds GetType (#13710)Andy Ayers4-22/+97
If the only use of a box is in a call to Type:GetType, remove the box and obtain the type directly. Get the handle needed for obtaining the type from the newobj call in the original box, via a new box removal option. Also add some logging to the type optimizations done in morph. Closes #13187.
2017-09-12Merge pull request #13819 from sdmaclea/PR-ARM64-MOD-AND-TRANSFORMJarret Shook1-8/+31
[Arm64] Allow a%b to a&(b-1) transform
2017-09-12[Arm64] Enable LowerShiftSteve MacLean2-48/+48
2017-09-12Fix core dump generation on Centos. (#13887)Mike McLaughlin1-3/+3
Fix core dump generation on Centos. Issue #13764
2017-09-12Merge pull request #13715 from CarolEidt/LsraInfoInLsraCarol Eidt7-107/+69
Do TreeNodeInfoInit in buildIntervals
2017-09-12Merge pull request #13242 from ViktorHofer/BinarySerializationCleanupViktor Hofer8-61/+15
Binary serialization unused methods and attributes cleanup and misc code cleanup
2017-09-12Fix formattingSteve MacLean1-5/+5
2017-09-12noway_assert to assert per reviewSteve MacLean1-4/+4
2017-09-12Fix formattingSteve MacLean1-1/+1
2017-09-12Simplify divisorValue calculationSteve MacLean1-11/+5
2017-09-12Add comments per reviewSteve MacLean1-8/+18
2017-09-12ResourceSetViktor Hofer1-7/+1
2017-09-12TextInfoViktor Hofer2-27/+8
2017-09-12ReflectionViktor Hofer2-15/+1
2017-09-12IOViktor Hofer3-12/+5
2017-09-12[ARM64/Windows] Corrected stack overflow in JIT_Stelem_refPankaj Gode2-4/+2
2017-09-12[GDBJIT] Specify C# language in DWARF debug information (#13720)Konstantin Baladurin1-0/+9
* [GDBJIT] Specify C# language in DWARF debug information To correctly support C# language in lldb DWARF debug information should contain correct information about language. Now we use 0x9e57 constant for specify C# language. * [GDBJIT] Introduce FEATURE_GDBJIT_LANGID_CS If this feature is set gdbjit will use 0x9e57 as c# lang id, otherwise it will use DW_LANG_C89.
2017-09-11Merge pull request #13907 from stephentoub/valuetask_astask_cachingStephen Toub2-2/+2
Use AsyncTaskCache in ValueTask.AsTask()
2017-09-11Merge changes from TFS (#13884)dotnet bot1-1/+1
Add new GetMethodNameFromMetadata interface member to ILGEN. Also fix warning in the build. [tfs-changeset: 1673078] [Hand edited to fix break in SPMI]
2017-09-11Improve const return block placementJoseph Tremoulet1-4/+76
Tweak a few things so that generated constant return blocks get laid out more optimally: - Don't set BBF_DONT_REMOVE on them; it's ok to move them around, and if all references to them get dropped, it's fine to eliminate them. - Insert them immediately after their lexically-last predecessor when generating them; this increases the likelihood of using fallthrough rather than gotos to target them in the face of fgReorderBlocks' reticence to reorder code that we don't have IBC data for and that hasn't been marked rare. - Make fgReorderBlocks slightly more aggressive for a pattern that now shows up somewhat routinely for returning compound conditionals from predicate functions.
2017-09-11Use AsyncTaskCache in ValueTask.AsTask()Stephen Toub2-2/+2
We can avoid task allocations for common values by using the same task cache that async methods do. This is important to avoid allocations in certain cases when switching from Task-returning to ValueTask-returning methods. If at some point we change Task.FromResult to use the same cache, this can be reverted.
2017-09-11JIT: optimize Enum.HasFlag (#13748)Andy Ayers5-45/+340
Check for calls to `Enum.HasFlag` using the new named intrinsic support introduced in #13815. Implement a simple recognizer for these named intrinsics (currently just recognizing `Enum.HasFlag`). When the call is recognized, optimize if both operands are boxes with compatible types and both boxes can be removed. The optimization changes the call to a simple and/compare tree on the underlying enum values. To accomplish this, generalize the behavior of `gtTryRemoveBoxUpstreamEffects` to add a "trial removal" mode and to optionally suppress narrowing of the copy source. Invoke the optimization during importation (which will catch most cases) and again during morph (to get the post-inline cases). Added test cases. Suprisingly there were almost no uses of HasFlag in the current CoreCLR test suite. Closes #5626.
2017-09-11[GDBJIT] Fix calculation of debuginfo's size. (#13899)Konstantin Baladurin2-33/+62
Information about each type is dumped once but during debuginfo's size calculation it was taken into account several time. Due to it size of debuginfo section could be in several times bigger than needed that in some cases leaded to OOM.
2017-09-11Make order of elements consistent (#13892)Kevin Gosse1-2/+2
When the cache is only partially populated, MemberInfoCache.Insert will insert the new members into the cache. But then, it will return the original list. In subsequent calls, it will return the cached list. However, the order of elements can be different, which can cause issues with methods that rely on the order of elements returned by Type.GetFields (for instance, Attribute.GetHashCode)
2017-09-09Merge pull request #13849 from stephentoub/string_createStephen Toub2-0/+29
Add String.Create span-based method
2017-09-09Merge pull request #13888 from jkotas/corelib-mirrorJan Kotas18-110/+108
Mirror changes from dotnet/corert
2017-09-09Merge pull request #13886 from ahsonkhan/SpanReadOnlyStructStephen Toub2-0/+2
Marking {ReadOnly}Span with IsReadOnly attribute
2017-09-09Finish moving files to shared CoreLib partitionJan Kotas3-84/+0
2017-09-09Move PInvoke interop related attributes to shared CoreLib partitionJan Kotas13-28/+120
[tfs-changeset: 1673253]
2017-09-09Finish moving files to shared partitionJan Kotas2-12/+2
2017-09-09Fix IntrinsicAttribute build breakJan Kotas1-2/+2
2017-09-09Cleanup Guid formatting (#13885)Jan Kotas1-73/+60