Bruce Forstall [Fri, 3 Aug 2018 16:32:41 +0000 (09:32 -0700)]
Merge pull request #18223 from mikedn/inc-codegen
Get rid of codegenlinear.h and x86_instrs.h
Morgan Brown [Fri, 3 Aug 2018 02:04:45 +0000 (19:04 -0700)]
Fix interop test targets
Fix interop test targets
Remove TargetFramework from Interop.settings.targets since it already gets handled by the build environment and 2.0 doesn't work.
Anirudh Agnihotry [Fri, 3 Aug 2018 00:34:32 +0000 (17:34 -0700)]
Moved NativeCallable Attribute to shared (#19258)
Mike McLaughlin [Fri, 3 Aug 2018 00:04:45 +0000 (17:04 -0700)]
Update debugging doc with symbol downloader instructions. (#19262)
Aaron Robinson [Thu, 2 Aug 2018 23:27:46 +0000 (16:27 -0700)]
Remove unused/nop/questionable code (#19239)
* Remove unused holder code
* Remove NOP `IsV2RuntimeLoaded()` usage.
* Remove unused/nop/questionable code in util
* Remove unused V2Profiler message from resource
Tanner Gooding [Thu, 2 Aug 2018 16:16:11 +0000 (09:16 -0700)]
Make `Vector64<T>`, `Vector128<T>`, and `Vector256<T>` readonly
Bruce Forstall [Thu, 2 Aug 2018 20:30:23 +0000 (13:30 -0700)]
Merge pull request #19115 from dotnet/dev/unix_test_workflow
Enable Windows ARM64 builds using release product tools
Russ Keldorph [Thu, 2 Aug 2018 17:02:11 +0000 (10:02 -0700)]
Fix VSTS build's tests on Alpine
Earlier changes to rename alpine stuff to musl seems to have missed this change
Fixes #19179
Tanner Gooding [Thu, 2 Aug 2018 15:30:50 +0000 (08:30 -0700)]
Resolving the remaining HWIntrinsics issues blocking PMI for S.P.CoreLib
Mike Danes [Thu, 31 May 2018 20:30:17 +0000 (23:30 +0300)]
Get rid of x86_instrs.h
Mike Danes [Thu, 31 May 2018 20:19:47 +0000 (23:19 +0300)]
Get rid of codegenlinear.h
Bruce Forstall [Thu, 2 Aug 2018 16:09:53 +0000 (09:09 -0700)]
Merge pull request #19249 from BruceForstall/DisableFailingTests
Disable failing ARM tests
Bruce Forstall [Thu, 2 Aug 2018 16:08:46 +0000 (09:08 -0700)]
Disable failing ARM tests
Carol Eidt [Thu, 2 Aug 2018 16:03:00 +0000 (09:03 -0700)]
Merge pull request #19234 from CarolEidt/Fix19124
Handle COMMA nodes when morphing struct args
dotnet-maestro-bot [Thu, 2 Aug 2018 16:02:18 +0000 (09:02 -0700)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, PgoData to preview1-03101-02, preview1-26802-01, preview1-26802-01, preview1-26801-04, master-
20180801-0056, respectively (master) (#19162)
* Update BuildTools, CoreClr, CoreFx, CoreSetup, PgoData to preview1-03101-02, preview1-26802-01, preview1-26802-01, preview1-26801-04, master-
20180801-0056, respectively
* Disable tests failing on active issue
Alex Novgorodov [Thu, 2 Aug 2018 15:49:23 +0000 (18:49 +0300)]
Fix broken link (#19244)
Michelle McDaniel [Thu, 2 Aug 2018 14:28:01 +0000 (07:28 -0700)]
Add arm32 tp (#19098)
* Add Arm32 support to throughput scripts
Bruce Forstall [Wed, 25 Jul 2018 18:33:54 +0000 (11:33 -0700)]
Enable Windows ARM32 and ARM64 Debug builds as default PR triggered
These will be PR triggered for all users, not just those on the
arm64Users list. Since these are Build only, and do no testing,
with the change to use public VS2017 build tools, they can be run
by anyone.
Users on the arm64Users list will still get Checked Build and Test
jobs, which require using the private test machines.
Bruce Forstall [Sat, 7 Jul 2018 00:19:32 +0000 (17:19 -0700)]
Enable ARM64 builds using release product tools
Remove support for specifying the toolset directory for arm64,
which was used to point to an internal toolset.
Building for arm64 now works just like the other platforms, e.g.
invoke `build arm64`.
The requirements:
. Visual Studio 2017 Update 4 or later, with ARM64 toolset installed
. Windows SDK 10.0.17134.0 or later
. CMake 3.10 or later
Bruce Forstall [Thu, 2 Aug 2018 05:32:24 +0000 (22:32 -0700)]
Merge pull request #19241 from BruceForstall/Revert19230
Revert "Build managed tests with dotnet (#19230)"
Bruce Forstall [Thu, 2 Aug 2018 05:27:56 +0000 (22:27 -0700)]
Revert "Build managed tests with dotnet (#19230)"
This reverts commit
763142a210d858289d30365dd1d4f2772e48f30d.
Carol Eidt [Thu, 2 Aug 2018 04:59:18 +0000 (21:59 -0700)]
Use 16 bytes to spill SIMD12 (#19237)
On 64-bit systems, SIMD12 locals are naturally rounded to 16 bytes, but the spill temp logic was not doing the same.
Fix #19197
Carol Eidt [Thu, 2 Aug 2018 00:41:31 +0000 (17:41 -0700)]
formatting
Bruce Forstall [Thu, 2 Aug 2018 00:38:09 +0000 (17:38 -0700)]
Merge pull request #19181 from BruceForstall/UpdateComment
Update arm64 comment for IsCallTargetInRange function
David Mason [Wed, 1 Aug 2018 23:53:33 +0000 (16:53 -0700)]
Allow rejit on attach (#19054)
* change profiler rejit to be enabled by default, and also change the debugger to only give up on setting a breakpoint if a method has been rejitted, rather than just whenever rejit is on
* copy corprof changes to the pal version, and change rejit so it is allowable on attach
* Change GetILFunctionBody/SetILFunctionBody to be allowed after attach
* Also make RequestRevert allowable on attach
* change lock order and switch from GC_NOTRIGGER to GC_TRIGGERS in Rejit codepath through the codeversionmanager
* make GetReJITIDs callable after attach
* change profiler rejit to be enabled by default, and also change the debugger to only give up on setting a breakpoint if a method has been rejitted, rather than just whenever rejit is on
* copy corprof changes to the pal version, and change rejit so it is allowable on attach
* Change GetILFunctionBody/SetILFunctionBody to be allowed after attach
* Also make RequestRevert allowable on attach
* change lock order and switch from GC_NOTRIGGER to GC_TRIGGERS in Rejit codepath through the codeversionmanager
* make GetReJITIDs callable after attach
* rename value to enable/disable rejit on attach, and cache values of profiler rejit and config value
* Change places where the jit checks for rejit being enabled to actually check for what it wants, which is whether jump stamps are enabled
* get rid of old value that was readded by merge somehow
* disallow detach after setting rejit event mask, and prevent it from being set if rejit on attach is turned off
* fix incorrect assert
* Take the codemanager lock in SetIP
Carol Eidt [Wed, 1 Aug 2018 23:44:41 +0000 (16:44 -0700)]
Handle COMMA nodes when morphing struct args
Fix #19124
Brian Robbins [Wed, 1 Aug 2018 19:48:42 +0000 (12:48 -0700)]
Provide a desktop-only implementation of RuntimeThread.CurrentOSThreadId for Microsoft.Diagnostics.Tracing.EventSource.Redist.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Chris Sienkiewicz [Wed, 1 Aug 2018 23:13:39 +0000 (16:13 -0700)]
Build managed tests with dotnet (#19230)
* Change managed projects to build with dotnet msbuild, rather than desktop msbuild
* Build sdk tests as AnyCPU
* Correct args passed through to dotnet for tests
* Remove extra backslash from baseIntermediateOutputPath that was causing individual test exe builds to fail
* Fix double import warning for sdk projects
* Add default params from config.json to build-test dotnet invocations
Eugene Rozenfeld [Wed, 1 Aug 2018 22:48:41 +0000 (15:48 -0700)]
Fix value number update in fgMorphCast. (#19226)
removing GT_CAST nodes. It caused a problem for cases
where GT_CAST operand is a constant (e.g., GT_CNS_INT). In these
cases the value number shouldn't change since there is an
assumption that constant nodes have known constant value numbers.
The bug was found by ILGEN, I created a corresponding C# repro.
Without the fix this assert fires: https://github.com/dotnet/coreclr/blob/
1f28125ad1f9975fbe68dd6839908aa6e63fc43b#gitext://gotocommit/
1f28125ad1f9975fbe68dd6839908aa6e63fc43b/src/jit/assertionprop.cpp#L2687
The fix is to update value numbers only when we changed the operand of GT_CAST and
value number wasn't updated otherwise (e.g., in optNarrowTree).
I verified no x64 diffs in
jit-diff diff --pmi --tests --frameworks
(with pri0 and pri1 tests).
Brian Robbins [Wed, 1 Aug 2018 18:38:39 +0000 (11:38 -0700)]
Expose OSThreadId and TimeStamp on EventWrittenEventArgs (#19002)
* Add EventWrittenEventArgs public properties OSThreadId and TimeStamp and plumb through OSThreadId.
* Plumb ActivityId and RelatedActivityId to EventListener.
Jacek Blaszczynski [Wed, 1 Aug 2018 18:10:05 +0000 (20:10 +0200)]
build-test - fix ilasm warnings caused by missing/incorrect extern assembly declarations (#19188)
* build-test - fix ildasm warnings caused by missing or incorrect extern assembly declarations
white space was fixed in all files which were edited (tabs -> spaces, no white space at the end of line)
* Remove unnecessary assembly declaration metadata
Omair Majid [Wed, 1 Aug 2018 16:02:53 +0000 (12:02 -0400)]
Use the identified python when building System.Private.CoreLib (#19043)
build.sh and build.cmd contain logic to identify a working version of
python to use. System.Private.CoreLib ignores that and directly invokes
'python', which may not work, or even execute a different program.
Egor Chesakov [Wed, 1 Aug 2018 15:54:36 +0000 (08:54 -0700)]
Cross-bitness in GcInfoEncoder::Build() (#19206)
* Remove dead code in BitArray
* Replace size_t with uint32_t in BitArray
Noah Falk [Wed, 1 Aug 2018 08:04:53 +0000 (01:04 -0700)]
Add a spec for tiered compilation (#19207)
Add a spec for tiered compilation
Jan Kotas [Tue, 31 Jul 2018 22:37:26 +0000 (15:37 -0700)]
Fix build break
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jan Kotas [Tue, 31 Jul 2018 21:47:23 +0000 (14:47 -0700)]
Delete dead code (#19208)
- IsAppXDesignMode is always false
- Win32Res class is never used
Jan Kotas [Tue, 31 Jul 2018 21:46:29 +0000 (14:46 -0700)]
Delete FEATURE_IPCMAN (#19212)
Andy Ayers [Tue, 31 Jul 2018 21:31:28 +0000 (14:31 -0700)]
JIT: fast path for minopts/debug codegen in lvaMarkRefs (#19103)
For minopts and debug codegen, consider all locals to be implicitly
referenced.
This is set up during `lvaMarkLocalVars` and maintained after that
by having `incRefCnts` set the implicit reference bit and not doing
anything in `decRefCnts` for minopts / debug.
Likewise suppress local var sorting, as we don't have accurate counts
to go by.
Tanner Gooding [Sat, 28 Jul 2018 17:37:59 +0000 (10:37 -0700)]
Updating SetCpuInfo to be more accurate
Amy [Tue, 31 Jul 2018 19:21:07 +0000 (12:21 -0700)]
R2RDump - Fix and update R2RDumpTests (#19039)
* Fix GenericFunctions and MultipleRuntimeFunctions tests, x86 nwindInfo tests
* Fix tests
* Avoid using rva as index
* Update expected xml
* Add count as an attribute
* Clean up and move rebaseline script to r2rdump test directory
* Remove R2RDumpTest warnings
* Use original test framework instead of netcoreapp2.0
Chris Sienkiewicz [Tue, 31 Jul 2018 18:23:43 +0000 (11:23 -0700)]
Add netcoreapp dependencies (#19177)
* Add MicrosoftNETCoreAppPackageVersion to dependencies.props
- Add MicrosoftNETCoreAppPackageVersion property
- Add required coresetup dependency build infos
* Change test projects to use new MicrosoftNETCoreAppPackageVersion property
Tanner Gooding [Sat, 28 Jul 2018 15:39:08 +0000 (08:39 -0700)]
Expose the x86 HWIntrinsics via a set of class hierarchies matching the underlying ISA hierarchies
Tanner Gooding [Mon, 30 Jul 2018 20:26:09 +0000 (13:26 -0700)]
Moving the ilproj sdk to be built/published under the TargetsWindows condition
Jacek Blaszczynski [Sun, 29 Jul 2018 01:11:48 +0000 (03:11 +0200)]
Fix HW intrinsics test projects naming and optimization levels according to repo conventions
Koundinya Veluri [Mon, 30 Jul 2018 19:23:32 +0000 (12:23 -0700)]
Temporarily flag a SIMD test as optimization-sensitive (#19163)
The test runs in several PR-triggered jobs. It fails with minopts and once tiering is enabled it would fail in every PR. See https://github.com/dotnet/coreclr/issues/19124.
Jan Kotas [Mon, 30 Jul 2018 14:16:11 +0000 (07:16 -0700)]
Change type of EnumLocaleData to struct (#19193)
Saves allocation and makes the code smaller. It had to be class before we had ref locals.
Jacek Blaszczynski [Mon, 30 Jul 2018 00:56:32 +0000 (02:56 +0200)]
Fix invalid IntPtr == null comparisons, set strict mode for Roslyn (#19191)
Issue reported in https://github.com/dotnet/corefx/issues/31456
Solution is to compare always against IntPtr.Zero and use Roslyn
stric mode for reporting warnings for IntPtr == null comparisons
Dávid Kaya [Sat, 28 Jul 2018 04:14:32 +0000 (06:14 +0200)]
Added version increment for TrimExcess and EnsureCapacity (#19096)
* Added version increment for TrimExcess and EnsureCapacity
* Added old unit test to exclusion list
* Excluded missing unit tests
Jacek Blaszczynski [Sat, 28 Jul 2018 03:50:55 +0000 (05:50 +0200)]
build-test - fix TestWrapper CS warnings (#19180)
Sergey Andreenko [Sat, 28 Jul 2018 01:44:32 +0000 (18:44 -0700)]
spmi: exclude methods using a file with saved md5 hashes. (#18769)
* read md5, linear search for each method.
* rewrite with HANDLE
* fix linux
* do not waste time dumping md5 if no methods exluded
Bruce Forstall [Sat, 28 Jul 2018 00:21:03 +0000 (17:21 -0700)]
Merge pull request #19165 from BruceForstall/FixCodeGenBringUpTestsBuilds
Specify specific build flavors for CodeGenBringUpTests tests
Ahson Khan [Sat, 28 Jul 2018 00:18:29 +0000 (17:18 -0700)]
Add comment explaining the return value of ToUpper/ToLower (#19176)
Bruce Forstall [Fri, 27 Jul 2018 23:59:14 +0000 (16:59 -0700)]
Update arm64 comment for IsCallTargetInRange function
Carol Eidt [Fri, 27 Jul 2018 23:19:48 +0000 (16:19 -0700)]
Lowering: Atomic ops can produce a value (#19173)
* Lowering: Atomic ops can produce a value
#18887 changed OperIsStore to include the atomic functions, but `Lowering::LowerArg()` and `Lowering::CheckCallArg()` assume that stores do not produce a value, so it doesn't correctly set the argument register (or build a `PUTARG_REG`) for the case where the result of an atomic op is passed to a call.
Fix this and add additional asserts.
Fix #19171
Tanner Gooding [Thu, 26 Jul 2018 16:00:34 +0000 (09:00 -0700)]
Updating emitInsCanOnlyWriteSSE2OrAVXReg to cover some of the newer instructions.
Carol Eidt [Fri, 27 Jul 2018 20:26:30 +0000 (13:26 -0700)]
Merge pull request #19145 from CarolEidt/Fix19081
Include long shifts in OperIsShiftOrRotate
Bruce Forstall [Fri, 27 Jul 2018 17:13:21 +0000 (10:13 -0700)]
Specify specific build flavors for CodeGenBringUpTests tests
Don't let them "float" based on the current build type.
Update the arm/arm64 tests.lst files to use the new `_ro` versions.
It is expected these files will disappear soon, so don't add all
the new versions to them.
Fixes #9722
Andy Ayers [Fri, 27 Jul 2018 18:09:02 +0000 (11:09 -0700)]
JIT: add extra check to struct of struct of x promotion (#19156)
Avoid promoting structs that contain struct fields that themselves
wrap single simple fields, if those single simple fields are smaller
than their enclosing struct.
Otherwise we run the risk of losing track of the "extra" bytes in the
innner struct.
Addresses #19149.
Koundinya Veluri [Fri, 27 Jul 2018 16:54:40 +0000 (09:54 -0700)]
Add CI PR-triggered Ubuntu x64 innerloop no-tiering job (#19123)
Bruce Forstall [Fri, 27 Jul 2018 16:25:54 +0000 (09:25 -0700)]
Merge pull request #19154 from BruceForstall/FixArm64Localloc
Fix overallocation of arm64 small constant localloc
dotnet-maestro-bot [Fri, 27 Jul 2018 13:29:25 +0000 (06:29 -0700)]
Update CoreClr, CoreFx, PgoData to preview1-26727-01, preview1-26727-01, master-
20180727-0226, respectively (#19102)
Jacek Blaszczynski [Fri, 27 Jul 2018 05:35:51 +0000 (07:35 +0200)]
Reference in box HW intrinsics (#19137)
* Update BuildTools, CoreClr, CoreFx, PgoData to preview1-03025-01, preview1-26726-01, preview1-26725-04, master-
20180726-0111, respectively
* Reference System.Runtime.Intrinsics in box package
* Disable X509Certificates tests for CoreFX update
Bruce Forstall [Fri, 27 Jul 2018 04:42:30 +0000 (21:42 -0700)]
Merge pull request #19144 from BruceForstall/Fix13796
Re-enable arm64 tests that no longer fail
Tanner Gooding [Thu, 26 Jul 2018 20:46:48 +0000 (13:46 -0700)]
Fixing the x86 hwintrinsics to not assert for invalid generic types.
Bruce Forstall [Thu, 26 Jul 2018 23:18:44 +0000 (16:18 -0700)]
Fix overallocation of arm64 small constant localloc
We were dividing the number of bytes to allocate by 8 (right shift by 3)
to determine the number of loops, then allocating and zeroing 16 bytes
per loop.
Simplify this by removing the number of `STACK_ALIGN_SHIFT` cases we have.
Add a small test case that exhibits this behavior.
Fixes #4571
Aditya Mandaleeka [Thu, 26 Jul 2018 23:04:13 +0000 (16:04 -0700)]
Merge pull request #19153 from adityamandaleeka/fix_buildtest_help
Fix batch syntax error in help text
Aditya Mandaleeka [Thu, 26 Jul 2018 22:56:01 +0000 (15:56 -0700)]
Fix syntax error in help text.
Sergey Andreenko [Thu, 26 Jul 2018 22:46:53 +0000 (15:46 -0700)]
reenable corefx System.Runtime.Tests on arm32 (#19128)
#17585 the issue was fixed long time ago, but this exclusion was forgotten.
Tanner Gooding [Fri, 20 Jul 2018 20:33:10 +0000 (13:33 -0700)]
Adding the Microsoft.NET.Sdk.IL pkgproj
Carol Eidt [Thu, 26 Jul 2018 20:44:47 +0000 (13:44 -0700)]
Include long shifts in OperIsShiftOrRotate
The register allocator uses `OperIsShiftOrRotate` as the assertion for the method that gets the kills for the class of instructions that use RCX as the shift amount register. Expand it to include `RSH_LO` and `LSH_HI`.
Fix #19081
Bruce Forstall [Thu, 26 Jul 2018 20:37:20 +0000 (13:37 -0700)]
Re-enable arm64 tests that no longer fail
Fixes #13796, #12549
Note that test GitHub_11408 is still disabled, now against issue #11408.
Chris Sienkiewicz [Thu, 26 Jul 2018 16:57:19 +0000 (09:57 -0700)]
Switch to using MicrosoftNETCorePlatformsPackageVersion as the RuntimeFrameworkVersion parameter in the test wrappers and SDK props file (#19130)
Andon Andonov [Thu, 26 Jul 2018 02:10:17 +0000 (19:10 -0700)]
Update CoreFX documentation (#19092)
* Update CoreFX documentation
* Add test binary refresh and parallelization sections
* Add test exclusion information
Chris Sienkiewicz [Wed, 25 Jul 2018 18:13:27 +0000 (11:13 -0700)]
Sdk test projects (#19044)
Change the associated targets and props files in the test directory to allow the test csproj's to be built as SDK style projects alongside traditional style projects.
Remove CodeTaskFactory:
- Allows the projects to be built using the core version of msbuild/dotnet build
- Converted to using msbuild property expansion instead
Add directory.build.{props,targets}:
- Currently we just import the dirs.props and targets, but means SDK style projects don't need to explicitly include these files
- We probably want to move all projects over to using these in the future, but this keeps the changes smaller for now
Specific code for SDK projects:
- There are a several changes required to build an SDK project. This change guards them behind conditionals so that only the new style projects see them. When we get to the point that there are only new projects, we can remove the guards (probably at the same time as ditching the dir.props)
Reordered build targets:
- Because SDK projects implicitly import the build targets, we can no longer re-define the build targets unconditionally knowing they will likely be overwritten.
- Instead we move the overwritten targets to separate files, and include these conditionally based on properties. In this way there is always a build defined for SDK projects, which can then be overwritten to do nothing as needed.
Tanner Gooding [Fri, 20 Jul 2018 18:07:30 +0000 (11:07 -0700)]
Removing duplicate CoreCLRTestLibrary project references
Tanner Gooding [Fri, 20 Jul 2018 17:52:21 +0000 (10:52 -0700)]
Regenerating the x86 HWIntrinsic templated tests
Tanner Gooding [Fri, 20 Jul 2018 17:50:14 +0000 (10:50 -0700)]
Removing `Random random = new Random()` from the HWIntrinsic templates
Tanner Gooding [Fri, 20 Jul 2018 17:47:47 +0000 (10:47 -0700)]
Realigning the HWIntrinsic template metadata tables
Tanner Gooding [Fri, 20 Jul 2018 17:32:47 +0000 (10:32 -0700)]
Replacing usages of random with TestLibrary.Generator in the HWIntrinsic template metadata
Tanner Gooding [Fri, 20 Jul 2018 17:19:33 +0000 (10:19 -0700)]
Adding TestLibrary.Generator methods for unsigned types
Mike McLaughlin [Tue, 24 Jul 2018 19:19:59 +0000 (12:19 -0700)]
Fix mscordbi metadata reader alignment bug on Linux. (#19070)
Works fine on Windows minidumps, but on Linux (via OpenVirtualProcess
for production breakpoints and future core dumps) the compiler's struct
alignment rules are different. On Windows, classes/structs are aligned
based on the largest field. On Linux, they are 4 byte aligned regardless
of the field sizes.
https://github.com/dotnet/coreclr/issues/17692
Ilia [Tue, 24 Jul 2018 16:49:16 +0000 (19:49 +0300)]
Release leaked ICorProfilerCallback9 in ~EEToProfInterfaceImpl (#19106)
Bug: 19093
Bruce Forstall [Tue, 24 Jul 2018 15:29:07 +0000 (08:29 -0700)]
Merge pull request #19099 from BruceForstall/Arm64DebugBuild
Change Windows arm32/arm64 Debug normal/innerloop jobs to NOT run tests
Russ Keldorph [Tue, 24 Jul 2018 15:25:59 +0000 (08:25 -0700)]
Revert "Revert "Fix some failures when using build-test.sh"" (#18919)
This reverts commit
184c3504e763ea7147505a8d49cb54b43cc82d78.
Sven Boemer [Tue, 24 Jul 2018 15:22:31 +0000 (08:22 -0700)]
Work around cmd command length limit in xunit Exec task (#19095)
On Windows, the Exec task passes the command to cmd, so long commands
run into the command length limit (see
https://github.com/Microsoft/msbuild/issues/2530). This workaround
shortens the xunit command line by replacing the path to the test
binary directory with an environment variable.
Aaron Robinson [Tue, 24 Jul 2018 01:40:17 +0000 (18:40 -0700)]
Add root MSBuild targets for Interop managed test assets (#19069)
Add root CMake file for Interop native test assets
Bruce Forstall [Mon, 23 Jul 2018 23:20:26 +0000 (16:20 -0700)]
Change Windows arm32/arm64 Debug normal/innerloop jobs to NOT run tests
We don't want these Debug jobs to run tests, because Debug testing is
slow, and we have few machine resources. It's a bit of a bug that we
are currently running tests, because the job is named with "Build", not
"Build and Test".
So make it do what the name says: Debug normal/innerloop arm32/arm64 jobs
will not run tests.
This is asymmetric, unfortunately. I might prefer that the Debug jobs get
generated as "Build and Test", but just not be triggered. (But be available
for triggering.) Or perhaps just not get generated. That might require a
separate set of just "Build" jobs that could be useful in some scenarios,
such as for what the current Debug "Build" only jobs are currently used for.
Egor Chesakov [Mon, 23 Jul 2018 21:15:07 +0000 (14:15 -0700)]
Add missing FlushInstructionCache to Thread::CommitGCStressInstructionUpdate (#18784)
Egor Chesakov [Mon, 23 Jul 2018 21:13:20 +0000 (14:13 -0700)]
Disable tests failing on ARM32 in https://github.com/dotnet/coreclr/pull/18784 (#19087)
Amy [Mon, 23 Jul 2018 20:35:57 +0000 (13:35 -0700)]
R2RDump - UnwindInfo for x86 (#18994)
* UnwindInfo for x86
* Update tests
mikedn [Mon, 23 Jul 2018 19:21:34 +0000 (22:21 +0300)]
Change gtExtractSideEffList to use GenTreeVisitor (#18257)
* Change gtExtractSideEffList to use GenTreeVisitor
The tree traversal logic in gtExtractSideEffList is basically an incomplete duplicate of GenTreeVisitor's traversal logic. It lacks handling for GT_ARR_ELEM and GT_ARR_OFFSET so if this are encountered any side effects their children may have are silently dropped.
In addition, side effect ordering was not always preserved. The comma list is built by prepending nodes to it so side effects have to be visited in reverse execution order. The old code did this only for simple opers, for special nodes such as GT_ARR_BOUNDS_CHECK normal execution order was used.
This actually complicates a bit the GenTreeVisitor implementation as side effects need to be first stored in an array. The number of side effects is usually small (<= 4) so this shouldn't be a problem.
* Use GTF_SIDE_EFFECT in optPrepareTreeForReplacement
Assertion propagation doesn't have any way to ensure that it is safe to remove class constructor calls so GTF_PERSISTENT_SIDE_EFFECTS_IN_CSE should not be used here.
Likewise, GTF_EXCEPT side effects must be preserved as well. VN doesn't always propagate exceptions so it's possible to end up with a tree that has a constant VN and contains exception side effects.
* Add tests for 18232
* CR feedback
Jan Kotas [Mon, 23 Jul 2018 19:17:56 +0000 (12:17 -0700)]
Partial R2R IBC fixes (#19073)
* Partial R2R IBC fixes
- Log use method code access in all cases, not just when the method is JITed
- Add workaround for CONTRACT_VIOLATION that shows up in checked builds when collecting IBC data
- Make /ReadyToRun switch work for CoreLib
Andy Ayers [Mon, 23 Jul 2018 18:47:17 +0000 (11:47 -0700)]
JIT: some lclvars related cleanup (#19077)
Consolidate various compiler globals used when setting local var ref
counts by folding them into the visitor:
* lvaMarkRefsCurBlock
* lvaMarkRefsCurStmt
* lvaMarkRefsWeight
Remove the largely vestigial `lvPrefReg` and associated methods to set
or modify this field. Haven't verified but this is likely a remmant of
the legacy backend.
In the one remaning use (lcl var sorting predicates), swap in `lvIsRegArg`
instead, which gets most of the same cases.
Aaron Robinson [Mon, 23 Jul 2018 10:30:57 +0000 (03:30 -0700)]
Remove hosthook api (#19079)
* Remove CallNeedsHostHook() API
* Remove IsHostHookEnabled() API and with it related dead code
* Remove code enabling host hooks (i.e. COMPlus_GenerateStubForHost)
Remove function declarations for creating host hooks
Update comments
Sung Yoon Whang [Mon, 23 Jul 2018 03:56:42 +0000 (20:56 -0700)]
Enable profiler attach on Windows (#18762)
* try building clr with prof attach enabled
* define ICLRProfiling interface
* profattach.dll now builds with CreateCLRProfiling export
* remove try catch
* basic attach working now
* build with profiler attach feature only on win
* Fix linux build
* cleanup
* more cleanup
* more cleanup
* remove profattach dll
* remove useless unix exports in mscorwks
* remove profattach from dll cmakelist
* Add back ifdef
* cleanup
* change LINUX to UNIX in clrdefinitions
* Fix broken checked builds
* Remove CLRProfilingClassFactory and metadata.h include from profattach.cpp
* remove useless extern C
* Add this back in
* adding ifndef DACCESS_COMPILE
* Try building with FWD define ICLRProfiling interface
* Test commit - removing additional definition from metahost.h to see if this will pass CI runs
* Address pr comments
Andy Ayers [Sun, 22 Jul 2018 16:12:10 +0000 (09:12 -0700)]
JIT: stateful local ref counts and weights (#19068)
Introduce a notion of state for local var ref counts and weighted ref counts.
Accesses and current state must agree.
State is invalid initially, enabled for an early period around bits of morph,
invalid again for a time, and then enabled normally once lvaMarkRefs is called.
Accesses normally specify RCS_NORMAL as the desired state, but in the accesses
of selected ref counts in morph, specify RCS_EARLY.
Revise how we decide if normal ref counting is active by changing
`lvaLocalVarRefCounted` into a method.
Update `gtIsLikelyRegVar` to not access ref counts when they're not in a valid
state.
Change weight APIs over to use `weight_t`.
Bruce Forstall [Sat, 21 Jul 2018 00:08:51 +0000 (17:08 -0700)]
Merge pull request #19049 from acmyu/issue19030
R2RDump - Skip R2RDumpTests in crossgen tests
Carol Eidt [Fri, 20 Jul 2018 23:17:04 +0000 (16:17 -0700)]
Merge pull request #19067 from CarolEidt/FixStructRefCnt
Remove incRefCnt from fgMakeOutgoingStructArgCopy
Brian Sullivan [Fri, 20 Jul 2018 22:36:25 +0000 (15:36 -0700)]
Merge pull request #19065 from briansull/fix_19022
The SIMD types must use the struct code path - Fixes issue 19022
Eugene Rozenfeld [Fri, 20 Jul 2018 22:35:47 +0000 (15:35 -0700)]
Improve narrowing of GT_AND nodes. (#18995)
This is a follow-up to to #18816 which resulted in a 6 byte regression in one of the
desktop SuperPMI methods. This change removes that regression and adds a number
of improved diffs.
If we are narrowing GT_AND to an unsigned type and one of the operands can be narrowed
into that type, the result of the GT_AND will also fit into that type and can be narrowed.
The same is true if one of the operands is an int const and can be narrowed into 'dsst'.
The change also ensures that we don't call optNarrowTree(false) more than once on each of the
GT_AND operands.