summaryrefslogtreecommitdiff
path: root/tests/src
AgeCommit message (Collapse)AuthorFilesLines
2017-09-13Merge branch 'master' into update_from_masterDavid Wrighton5443-48290/+54611
2017-09-13Merge pull request #13903 from JosephTremoulet/PlaceReturnsJoseph Tremoulet1-0/+82
Improve const return block placement
2017-09-12Remove redundant zero-initialization of struct temps with GC fields. (#13868)Eugene Rozenfeld2-0/+137
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-12fix stack depth in DevDiv_278523 test source code(#13912)Sergey Andreenko2-6/+4
2017-09-11Improve const return block placementJoseph Tremoulet1-0/+82
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-11JIT: optimize Enum.HasFlag (#13748)Andy Ayers4-0/+288
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-08Properly update GTF_{ASG,EXCEPT} in call morphing.Pat Gavlin2-0/+150
The former is only necessary if it is set on any of the call's arguments; the latter is necessary if the call may throw or if it is set on any of the call's arguments. Fixes DevDiv 491211.
2017-09-07Merge pull request #13821 from pgavlin/DevDiv487701_487702Pat Gavlin4-0/+306
Fix VSO 487701 and 487702.
2017-09-07Merge pull request #13817 from pgavlin/DevDiv487703Pat Gavlin2-0/+136
Do not remove NOPs used by calls.
2017-09-06Segregate merged returns by constant value (#13792)Joseph Tremoulet2-0/+117
The JIT enforces a limit on the number of epilogs emitted in any given method. Change the logic so that when this merging kicks in, returns of constant values are given merged return blocks distinct from each other and from the general return block, as long as we can do so without going over the limit. This particularly helps avoid redundancy (while still keeping method size down) in methods with a large number of constant returns but only a few distinct constants, which is true of many predicate methods with bool return type. This is the compiler portion of #13466 and dotnet/corefx#23395.
2017-09-06Fix VSO 487701 and 487702.Pat Gavlin2-0/+2
Both of these issues stem from attempting to unassign a copied interval from the copied-to register and then reassigning the interval to the same. This corrupts some of the bookkeeping necessary to track whether or not the interval in the register needs to be spilled, and the RA ends up attempting to spill the interval being allocated even though it is not assigned a register.
2017-09-06Add tests for VSO 487701 and 487702.Pat Gavlin4-0/+304
2017-09-06Add a regression test.Pat Gavlin2-0/+136
2017-09-06Fix DevDiv_278523 test for r2r x86. (#13709)Sergey Andreenko4-29/+108
* separate sources into 2 files: for 32 and for 64.
2017-09-06Jit doesn't reload shift index if it was spilled to rcx. (#13757)Sergey Andreenko2-0/+162
Repro test. Fix and additional assert.
2017-09-05Fix access order for double pointer (#13759)Victor "Nate" Graf1-3/+3
* Fix access order for double pointer * Reinforce test to catch more errors
2017-09-05JIT: allow inlines of methods with calli (#13756)Andy Ayers2-0/+85
Provided call sig has default callling convention. Added test case. Continuation of #12714.
2017-09-05Merge pull request #13763 from shimingsg/v-shige/addtestdependencyxmlfilesShiming Ge6-3/+24135
add test dependency xml files
2017-09-02update correct file path if the working folder is not test case foldershimingsg2-3/+5
2017-09-01Change identifier for EventProviders from GUID to string name (#13370)Victor "Nate" Graf3-5/+5
* [WIP] Changed event provider to user String identifiers * [WIP] Remove GUID from generated code * [WIP] Many small fixes * [WIP] Fix error in constructing GUID * Pass EventSource to abstract away GUID/Name references * Fix various small errors * Delay construction of SString objects * Change GUIDs to names * Change hardcoded GUID strings to names * Revert testing changes * Remove extra line * Use the EventSource name * Use provider full names * Use full-names for Rundown * Bump version number for eventpipe file * Address review comments
2017-09-01need casting for size calculation (#13754)Maoni Stephens1-2/+2
2017-09-01[RyuJIT/ARM32] Add regression testsAlexander Soldatov2-0/+79
Tests for #13056
2017-08-31Merge pull request #13394 from shimingsg/v-shige/add-perftc-0816Shiming Ge4-0/+314
Add perf test (making cards) to coreclr
2017-08-31add test dependency filesShiming Ge4-0/+24130
2017-08-30Move performance tests back into Priority 0.Pat Gavlin55-110/+55
Just what it says on the tin. Should fix #13697.
2017-08-29Check for new blocks after `entry`Joseph Tremoulet1-0/+88
Loop construction has a check for the case that an in-loop block has a `bbNext` block that is a new block but not visited in the loop flow walk; make sure that check fires for `entry` as well as other loop blocks. Fixes #13507.
2017-08-28Fix build breaks - delete parse tests that are redundant with CoreFXJan Kotas90-19315/+0
2017-08-28Fix bad cast morphing (#13429)mikedn2-0/+78
fgMorphCast thinks that casting a i1 value to i2 via conv.ovf.i2.un is a widening conversion and removes the overflow check. But this is in fact a narrowing conversion because i1 is implicitly sign extended to i4 and then i4 is treated as u4. Going from i4 to u4 overflows for negative values so we can't treat the source type of the cast as i1, it has to be u4. Of course, the existing code works fine if the source type is unsigned. Going from u1 to i4 and then to u4 never overflows so it's safe to treat the source type as u1.
2017-08-27Refactor AsSpan to AsReadOnlySpan (#13608)Adrian Godong1-5/+5
* Refactor AsSpan to AsReadOnlySpan * Updated usages. * Renamed test methods. * Bring back AsSpan as obsolete method.
2017-08-26Merge pull request #13411 from pgavlin/RepriTestsPat Gavlin5218-28901/+20728
Reprioritize tests to improve inner-loop throughput.
2017-08-25Minor performance infrastructure changes. (#13557)José Rivero1-1/+1
- IlLink scenario will run on a VM (currently it is only measuring MSIL size) - Updated the patterns of files to search for on scenario runs - Updated the JitBench commit hash being used () - Disable min_opt from the PR correctness mode. - String was not being interpolated.
2017-08-25Do not devirtualize indirect calls (#13561)Michal Strehovský2-0/+86
I'm seeing the affected code take the `impDevirtualizeCall` code path with `CT_INDIRECT` calls. `gtCallMethHnd` is a `GenTreePtr` in that case (it's a union) and passing that as as `CORINFO_METHOD_HANDLE` leads to bad things.
2017-08-24Remove uses of the {RO}Span ctor that takes an array and offset (#13578)Ahson Ahmed Khan1-56/+0
2017-08-24Remove unnecessary buffer copy from EventPipe::WriteEvent pipeline (#13347)Victor "Nate" Graf3-3/+146
* [WIP] Eliminate extra buffer copy with new api path * Copy blobs to a flat buffer is Rundown is on * Refactor to use payload class and dedupe code * Add contracts * Fix many small errors * Make names unambiguous * Add EventPipe::WriteEventBlob to ecalllist.h * Address code review * Add test and fix a buffer copy bug * Copy data instead of data pointer * Add optional output file arg to tests * Change failure return code * Renamed variables for clarity
2017-08-23Parameterize RIDs for package restorewtgodbe6-5/+10
2017-08-23Add a regression test for #13160 (#13531)Jonghyun Park2-0/+92
2017-08-23Merge pull request #13528 from JosephTremoulet/IterateJoseph Tremoulet1-2/+2
Add InnerIterationCount to layout benchmarks
2017-08-22Add InnerIterationCount to layout benchmarksJoseph Tremoulet1-2/+2
These tests were too short-running to measure effectively. Add an inner iteration count that makes the running time around 1 second (measured locally).
2017-08-22Merge pull request #13487 from mikedn/switch-temp-typeJoseph Tremoulet2-0/+58
Fix incorrect switch temp lcl type
2017-08-21Merge remote-tracking branch 'upstream/master' into v-shige/add-perftc-0816Shiming Ge (Pactera Technologies)20-16/+2026
2017-08-21Merge pull request #12489 from jashook/unix_x64_and_arm64_fasttailcall_fixJarret Shook8-1/+1326
[Unix x64|Arm64] Correct canfastTailCall decisions
2017-08-19Fix incorrect switch temp lcl typeMike Danes2-0/+58
2017-08-18Merge pull request #13392 from noahfalk/tiered_jit_fix_testsNoah Falk2-6/+6
Make unit tests run clean with tiered compilation
2017-08-18Revert "Re-port test project changes from release/2.0.0 to master (#13464)"Jan Kotas4-6/+6
This reverts commit 7a386da8fc7067978a880445555942ccc6343be8.
2017-08-18Re-port test project changes from release/2.0.0 to master (#13464)smile21prc4-6/+6
Re-port test project changes from release/2.0.0 to master
2017-08-18[Unix x64|Arm64] Correct canfastTailCall decisionsjashook8-1/+1326
This will change how the fastTailCall decision is made for x64 unix and arm64. Before this change the decision was based on the amount of incoming and outgoing caller arguments like on Windows. This was incorrect on Unix x64 and Arm64 because one argument does not translate to one register or one stack slot use. Before this change structs on Arm64 and Amd64 Unix could pessimize when we could fastTailCall if they were engregisterable and took more than one register. This change also fixes several cases when determining to fastTailCall. It fixes #12479 and will cause a no fastTailCalls decisions for case #12468. In addition this change adds several regression cases for #12479 and #12468. It includes more logging ofr fastTailCall decisions, including a new COMPlus variable named COMPlus_JitReportFastTailCallDecisions, which can be toggled with COMPlus_JitReportFastTailCallDecisions=1.
2017-08-17replace Making with Marking for the test nameShiming Ge (Pactera Technologies)2-0/+0
2017-08-17Add perf testJoseph Tremoulet2-0/+159
2017-08-17Lay out loop bodies contiguouslyJoseph Tremoulet2-0/+453
Rearrange basic blocks during loop identification so that loop bodies are kept contiguous when possible. Blocks in the lexical range of the loop which do not participate in the flow cycle (which typically correspond to code associated with early exits using `break` or `return`) are moved out below the loop when possible without breaking EH region nesting. The target insertion point, when possible, is chosen to be the first spot below the loop that will not break up fall-through. Layout can significantly affect the performance of loops, particularly small search loops, by avoiding the taken branch on the hot path, improving the locality of the code fetched while iterating the loop, and potentially aiding loop stream detection. Resolves #9692.
2017-08-17Revert test part "Enable RedHat 6 in coreclr master (#13315)" to unblock CI.Smile Wei4-6/+6
This reverts commit b2b5fef27a4cb68571549f2e19660f39bd76467b.