summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2016-09-27Optimize SIMD codegen for (in)equality check against zero that produces bool ↵sivarv1-3/+18
result.
2016-09-22Merge pull request #7294 from pgavlin/longLclFldPat Gavlin1-6/+0
Implement `st.lclFld` decomposition and fix #6778.
2016-09-22Improve formatting job outputMichelle McDaniel1-2/+12
To make it more clear where there are formatting errors, have format.py print what commands the user needs to run to fix the formatting errors in their PR.
2016-09-21Implement `st.lclFld` decomposition and fix #6778.Pat Gavlin1-6/+0
The problem that was blocking both of these issues was an issue in liveness when analyzing `st.lclFld` nodes that store to an unpromoted long-typed local variable or any long-typed field. The latter case--a `st.lclFld` node that targets a long-typed field--is easy to handle. Such stores are decomposed from: ``` /--* t0 int +--* t1 int t2 = * gt_long long /--* t2 * st.lclFld long V00 ``` To: ``` /--* t0 * st.lclFld int V00 [+0] /--* t1 * st.lclFld int V00 [+4] ``` The two `st.lclFld` nodes that this transformation generates are marked with `GTF_VAR_USEASG` to indicate that they are partial (rather than complete) defs. This is necessary in order to correctly calculate liveness. Before this change, stores to unpromoted long-typed local variables were also decomposed in the above fashion. These local vars can arise in a number of situations: - vars that are used to store multi-reg args or return values - vars that represent long-typed fields of promoted struct-typed vars - long-typed vars that are marked as unenregisterable before decomp Unfortunately, the decomposition given above differs in its liveness semantics when compared to the original IR: in the original IR, the `st.lclVar` is considered a plain def of its destination, while in the decomposed IR, each `st.lclFld` is considered both a partial def and a use of its destination. This difference--namely, that in the first case the destination is not used at the def and in the second case it is--causes problems for any analysis that needs to take into account whether or not a variable is used at a def (e.g. dead store removal, live-in sets, etc.). In order to retain the original semantics without complicating the IR, stores to unpromoted, long-typed local variables are not decomposed. These stores are instead handled during code generation.
2016-09-21Merge pull request #7291 from adiaaida/formatMichelle McDaniel1-6/+4
Reformat jit source base and turn on formatting jobs for PR
2016-09-21Fix formatting job for UbuntuMichelle McDaniel1-6/+4
The change to move to the newer version of the CLI for coreclr causes something to look for a config.json file in the current directory (rather than the directory where the build.sh script resides), forcing build.sh to be run from the base coreclr dir (you can't run it from any other location), so changing directories to the jitutils bin directory would cause the build to fail, failing the jit-format run. This change fixes the format.py script to build the full path to the jit-format executable and then run it from the coreclr directory, rather than changing to the utils bin dir and running jit-format from there.
2016-09-21Merge pull request #7191 from erozenfeld/SSAStackOverflowEugene Rozenfeld4-0/+62426
Fix for StackOverflow in SsaBuilder::TopologicalSort.
2016-09-21Fix for StackOverflow in SsaBuilder::TopologicalSort.Eugene Rozenfeld4-0/+62426
SsaBuilder::TopologicalSort allocated an array of bools on the stack. In one of internal cases the array had 126,758 elements, which caused a StackOverflow. This change switches SsaBuilder::TopologicalSort from stack-allocated array of bools to BitVec. TopologicalSortHelper used to be recursive. It was changed to use an iterative algorithm in a previous change. I'm inlining TopologicalSortHelper into TopologicalSort now. I verified no measurable negative throughput impact from this change and no asm diffs in SuperPMI.
2016-09-19Fix GC Stress testing on non windows platformsRama Krishnan Raghupathy2-7/+6
2016-09-19test FixedAddressValueType and RuntimeWrappedExceptionRama Krishnan Raghupathy8-0/+327
2016-09-16Exposing ExecuteCodeWithGuaranteedCleanup in mscorlibRama Krishnan Raghupathy2-0/+104
2016-09-16Exposing RunModuleConstructor in mscorlibRama Krishnan Raghupathy4-0/+233
2016-09-15Enable Building Libraries for ilprojRama Krishnan Raghupathy3-14/+15
2016-09-15Harden test against JIT optimizationsJoseph Tremoulet1-1/+6
Declare static field `finalizerCompletedOnce` volatile -- this test has a side-effect-free busy-loop which checks that static variable for a change it expects a finalizer to make to it; this static field must be volatile to ensure the jit doesn't hoist the load from the loop. Call GC.KeepAlive on the objects constructed in the various allocation loops in this test, to make sure that the entire allocation isn't optimized away.
2016-09-15Update CoreClr, CoreFx, External to beta-24515-02, beta-24514-06, ↵dotnet-bot8-140/+140
beta-24514-00, respectively
2016-09-14Merge pull request #7012 from kyulee1/fix6844Kyungwoo Lee1-1/+1
X86: Fix inline assertion
2016-09-13Update CoreClr, CoreFx, External to beta-24513-04, beta-24513-02, ↵dotnet bot8-140/+140
beta-24513-00, respectively (#7006)
2016-09-13X86: Fix inline assertionKyungwoo Lee1-1/+1
Inline assertion occurred since we didn't bail out the inline fail case early. During the test, I got another assertion about debug flag where #7173 is filed with x86 legacy back-end. With x86 ryujit back-end, there is an infinite loop from #7038. Fixes #6844
2016-09-13Merge pull request #7164 from BruceForstall/FixTestExclusionsBruce Forstall3-14/+14
Add issue comments to excluded tests
2016-09-13List all generated perf .xml files.Smile Wei2-12/+17
2016-09-13Add issue comments to excluded testsBruce Forstall3-14/+14
2016-09-12Merge pull request #6791 from dagood/upgrade-xunit-runnerDavis Goodin15-174/+91
Upgrade xunit runner to 2.2.0-beta2-build3300
2016-09-08Revert "Fix IMGREL32 static field addr value-num blindspot"Jan Kotas1-1/+1
2016-09-08Merge pull request #6889 from JosephTremoulet/StaticFieldJoseph Tremoulet1-1/+1
Fix IMGREL32 static field addr value-num blindspot
2016-09-07Merge pull request #7016 from smile21prc/coreclr-perfsmile21prc2-25/+80
Create coreclr perf jobs for Linux. Addressed all the comments, and verified coreclr perf run for Linux with latest coreclr/corefx bits passed: http://dotnet-ci2.cloudapp.net/job/smile21prc_coreclr/job/coreclr-perf/job/perf_Linux/28/consoleFull
2016-09-07Create coreclr perf jobs for Linux.Smile Wei2-25/+80
2016-09-07Fix the output path when building a single test.Pat Gavlin1-1/+1
Add a trailing slash to the base output path.
2016-09-07Exclude smallFrame.sh test for ARM (#7080)Hyung-Kyu Choi1-0/+1
JIT/Methodical/tailcall_v4/smallFrame/smallFrame.sh contains "tail.call, pop, ret" pattern. The pattern is not allowed in ECMA and is only supported on x64 for compatibility. (issue #7036) Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
2016-09-06Merge pull request #7022 from lemmaa/prevent-build-output-contaminationRama krishnan Raghupathy1-4/+4
[Script] Prevent build output contamination while building test overlay
2016-09-06Merge pull request #6922 from gkhanna79/WinArm32Gaurav Khanna16-0/+28
Enable Arm32 Test Build
2016-09-06Exclude two more tests for ARM (#7062)Hyung-Kyu Choi1-0/+2
According to issue #6217, following three tests fails , because FEATURE_FASTTAILCALL is not supported in ARM. JIT/Directed/tailcall/tailcall/tailcall.sh JIT/Methodical/tailcall_v4/hijacking/hijacking.sh JIT/Regression/JitBlue/devdiv_902271/DevDiv_902271/DevDiv_902271.sh Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
2016-09-06Prevent build output contamination while building test overlaySung-Jae Lee1-4/+4
While building test overlay, all files in `$mscorlibDir/bin` are copyed to `$mscorlibDir` where usually `$coreclrBinDir`. It contaminates build output. This commit prevent it by moving copy commend to function `create_core_overlay`.
2016-09-02Update xunit.console.netcore to 1.0.3-prerelease-00802-06.Davis Goodin5-5/+5
2016-09-01Upgrade xunit version to avoid specialized restoreDavis Goodin15-170/+87
Upgrade xunit from 2.1.0 to 2.2.0-beta2-build3300. Restore xunit.runner.msbuild during normal test build. Remove unused reference to xunit 2.1.0. Replace "2.1.0" with "$(XunitPackageVersion)" for direct path to files. Upgrade xunit used by GCPerfTestFramework and fix helix path. Upgrade Microsoft.DotNet.xunit.performance and Microsoft.DotNet.xunit.performance.metrics to 1.0.0-alpha-build0040. Upgrade XunitPerformanceDependency packages to 1.0.0-alpha-build0040. Include scripts project.json in validation, update them. Don't use helix.targets in generated xunit wrappers. Copy TestTFM defaulting logic from CoreFX dir.props. Tweak default wrapper TFM per platform, and use real RID instead of relying on fallthrough.
2016-09-01Merge pull request #6978 from adiaaida/fixFormatMichelle McDaniel1-23/+93
Fix format.py
2016-09-01Fix format.pyMichelle McDaniel1-23/+93
In format.py, we were downloading bootstrap.sh/cmd to the current working directory, but assuming that it was in coreclr/bootstrap, which is incorrect. This change downloads it directly to coreclr/bootstrap, so that we download and run to the same location. This change also modifies where we install the newer version of dotnetcli needed for jitutils to the coreclr/dotnetcli-jitutils directory. This change is necessary because build.cmd->run.cmd->init-tools.cmd removes the Tools directory, including our dotnetcli directory, so we don't want our version of the cli to be trashed. We also clean up our work at the end of the script by removing the created jitutils and dotnetcli directories, and the bootstrap script. Finally, this change adds some comments to tell the user what it's doing.
2016-09-01Merge pull request #7024 from pgavlin/RunTestFixPat Gavlin1-1/+1
Pass /p:Platform to msbuild in runtest.cmd.
2016-09-01Merge pull request #7014 from pgavlin/TestBuildSpeedupPat Gavlin2-5/+5
Stop groveling for project.json files when building every test.
2016-09-01Pass /p:Platform to msbuild in runtest.cmd.Pat Gavlin1-1/+1
Otherwise, the tests will use the ambient setting of the Platform variable, which might not match the architecture specified on the command line. This results in the wrong build of the tests running against the correct runtime, which e.g. causes failures in tests with native components.
2016-08-31Merge pull request #6807 from lemmaa/add-options-for-arm-target-testAditya Mandaleeka2-32/+92
[Linux/ARM/Script] Add some features help for arm target test
2016-08-31Stop groveling for project.json files when building every test.Pat Gavlin2-5/+5
This information is only needed by build.proj. Do not compute it in dir.props, which is included by every test project.
2016-08-31Fix IMGREL32 static field addr value-num blindspotJoseph Tremoulet1-1/+1
When `fgMorphField` lowers a static field reference for which `eeGetRelocTypeHint` returns `IMAGE_REL_BASED_REL32`, it creates an `IntCon`, flagged with `GFT_ICON_STATIC_HDL` and marked with the static field in its `gtFieldSeq` field, to represent the field's address (as opposed to the normal case where it generates a `ClsVar`). This change updates the `IsFieldAddr` helper used by value-numbering/loop-hoisting to recognize such constants as the appropriate field address, which then allows the disambiguation/tracking of accesses to these fields to kick in as it does for `ClsVar` nodes. Also update test GC/Scenarios/FinalizeTimeout to mark a bool volatile that otherwise can get hoisted (the test aims to observe finalization from a side-effect-free busy-loop by communicating through this bool). Fixes #6900.
2016-08-31Fix #6893. (#6932)Pat Gavlin1-2/+2
Aggregate arguments to calls (i.e. arguments that are made up of multiple, independent values such as those to be passed in multiple registers) are represented by GT_LIST nodes that are not distiguishable from normal GT_LIST nodes without the extra context of the call. GT_LIST nodes, however, are disallowed in LIR ranges. The intersection of these two design choices causes problems for code that operates on LIR but wants to observe aggregate arguments as a whole (rather than piecewise). In the case of #6893, this caused lowering to attempt to insert a PUTARG_STK node after the GT_LIST node that represented the aggregate argument that was being forced to the stack, which caused an assertion in the LIR utilities to fail (the GT_LIST node was passed as the insertion point to `LIR::Range::InsertAfter`, which requires that the insertion point be a part of the given range). Conceptually, the fix is simple: the nodes that represent aggregate arguments must be allowed to be part of LIR ranges. The implementation, however, is complicated somewhat by the need to distinguish the nodes used for aggregate arguments from normal GT_LIST nodes. These changes implement a short-term fix that distiguished these nodes by adding a node-specific flag, `GTF_LIST_AGGREGATE`, to indicate that a GT_LIST node is in fact an aggregate argument. In the long term, a more palatable implementation would be the introduction of a new node and operator type to represent aggregate arguments, but this is likely to require broader changes to the compiler.
2016-08-31Merge pull request #7001 from BruceForstall/CleanUpX86LegacyIssuesFileBruce Forstall2-200/+100
Clean up test issues files
2016-08-31Clean up test issues filesBruce Forstall2-200/+100
Re-enable some tests that pass. Rearrange x86_legacy_backend_issues.targets to more closely resemble issues.targets so it is easier to see the difference.
2016-08-30Merge pull request #6917 from svick/fixing-alltestprojectsRama krishnan Raghupathy1614-8484/+38837
Fixed AllTestProjects.sln
2016-08-31Add some features help for arm target testSung-Jae Lee2-32/+92
* Add `--build-overlay-only` option to help building test package for arm target. You can use this option on host after cross building, to make a test package that will run on target device. * Make `setup-runtime-dependencies.sh` called on `x64` architecture only. Because dependent packages are not supported on other architectures now. * Add `testsUnsupportedOnARM32.txt` file for list up test exclusions. * minor style fix.
2016-08-31Update CoreClr, CoreFx, External to beta-24431-01, beta-24431-01, ↵dotnet-bot8-144/+144
beta-24430-00, respectively
2016-08-30Reformat test issues files so they are more easily comparableBruce Forstall3-964/+922
This change reformats the issues files, and sorts the excluded tests by name, so it is possible to easily compare the baseline issues.targets file against the x86_jit32_issues.targets and x86_legacy_backend_issues.targets files.
2016-08-30Merge pull request #6973 from BruceForstall/MoveTailcallTestExclusionBruce Forstall1-3/+3
Move TailcallVerifyWithPrefix test to "baseline x86" exclusion section