Michelle McDaniel [Tue, 14 Feb 2017 18:11:56 +0000 (10:11 -0800)]
Add perf job for legacy jit
Add performance testing jobs for jit32. This change adds jit32 as an
architecture for perf.groovy. It also renames the x86 legs to be
x86ryujit. For the two x86-based architectures, we pass a testenv. This is
so if we have to switch which version is the default jit on x86, we will
not need to change the perf jobs, we can just update the testenv files.
This change updates run-xunit-perf.cmd to take a test env script as a
parameter and run it before running the tests if it exists.
This change also cleans up some of the calls in perf.groovy to use
variables that we've already set, rather than baking in the contents of
those variables (changing Release to ${configuration}).
Steve MacLean [Mon, 13 Feb 2017 14:54:24 +0000 (09:54 -0500)]
[Unix] twowaypipe unlink before mkfifo (#9505)
Remove stale fifo when before mkfifo
This reduces bogus failures when corerun jobs were
killed with SIGKILL...
Steve MacLean [Mon, 13 Feb 2017 10:56:49 +0000 (05:56 -0500)]
[Arm64/Unix] Remove misleading stress message (#9507)
* [Arm64/Unix] Remove misleading stress message
Dan Moseley [Mon, 13 Feb 2017 05:54:57 +0000 (21:54 -0800)]
Merge pull request #9542 from danmosemsft/defines3
Remove code corresponding to always defined symbols
danmosemsft [Mon, 13 Feb 2017 03:17:39 +0000 (19:17 -0800)]
Addendum for FEATURE_FUSION
danmosemsft [Mon, 13 Feb 2017 03:15:47 +0000 (19:15 -0800)]
Addendum for FEATURE_APPX_BINDER
danmosemsft [Mon, 13 Feb 2017 03:10:52 +0000 (19:10 -0800)]
Addendum for FEATURE_CODEPAGES_FILE
Russ Keldorph [Mon, 13 Feb 2017 01:49:30 +0000 (17:49 -0800)]
Merge pull request #9516 from sdmaclea/PR-ARM64-FAILS
[Arm64/Unix] Add list of known arm64 fails
Bruce Forstall [Mon, 13 Feb 2017 01:24:21 +0000 (17:24 -0800)]
Merge pull request #9446 from seanshpark/stkalign_helpers
[x86/Linux] Fix stack alignment in helper stub
Bruce Forstall [Mon, 13 Feb 2017 01:22:03 +0000 (17:22 -0800)]
Merge pull request #9543 from mskvortsov/fix-9536
[Windows/Arm32] Fix a build break
danmosemsft [Mon, 13 Feb 2017 00:51:48 +0000 (16:51 -0800)]
Remove never defined FEATURE_FUSION
danmosemsft [Sun, 12 Feb 2017 23:32:54 +0000 (15:32 -0800)]
Remove remainder of FEATURE_CORECLR (tool missed some files, also comments)
danmosemsft [Sun, 12 Feb 2017 22:31:56 +0000 (14:31 -0800)]
Comment for Gaurav
danmosemsft [Sun, 12 Feb 2017 22:30:52 +0000 (14:30 -0800)]
Remove never defined FEATURE_CRYPTO
danmosemsft [Sun, 12 Feb 2017 22:26:40 +0000 (14:26 -0800)]
Remove never defined FEATURE_COMPRESSEDSTACK
danmosemsft [Sun, 12 Feb 2017 22:23:34 +0000 (14:23 -0800)]
Remove never defined FEATURE_COMINTEROP_WINRT_DESKTOP_HOST
danmosemsft [Sun, 12 Feb 2017 20:46:46 +0000 (12:46 -0800)]
Remove never defined FEATURE_COMINTEROP_TLB_SUPPORT and files that require it to be defined
danmosemsft [Sun, 12 Feb 2017 20:37:06 +0000 (12:37 -0800)]
Remove never defined FEATURE_COMINTEROP_REGISTRATION
danmosemsft [Sun, 12 Feb 2017 20:28:16 +0000 (12:28 -0800)]
Remove never defined FEATURE_CODEPAGES_FILE and file
danmosemsft [Sun, 12 Feb 2017 20:24:42 +0000 (12:24 -0800)]
Remove never defined FEATURE_CLICKONCE
danmosemsft [Sun, 12 Feb 2017 20:19:09 +0000 (12:19 -0800)]
Remove never defined FEATURE_CER and header
danmosemsft [Sun, 12 Feb 2017 20:14:01 +0000 (12:14 -0800)]
Remove never defined FEATURE_APTCA
danmosemsft [Sun, 12 Feb 2017 20:08:12 +0000 (12:08 -0800)]
Remove never defined FEATURE_APPX_BINDER
danmosemsft [Sun, 12 Feb 2017 19:34:37 +0000 (11:34 -0800)]
Remove never defined FEATURE_APPDOMAINMANAGER_INITOPTIONS
danmosemsft [Sun, 12 Feb 2017 19:19:46 +0000 (11:19 -0800)]
Remove always defined FEATURE_VERSIONING
danmosemsft [Sun, 12 Feb 2017 19:15:41 +0000 (11:15 -0800)]
Remove defined but wrapping dead code FEATURE_SYNTHETIC_CULTURES
danmosemsft [Sun, 12 Feb 2017 19:12:36 +0000 (11:12 -0800)]
Remove always defined FEATURE_SYNCHRONIZATIONCONTEXT_WAIT
danmosemsft [Sun, 12 Feb 2017 19:05:31 +0000 (11:05 -0800)]
Remove always defined FEATURE_SPAN_OF_T
danmosemsft [Sun, 12 Feb 2017 19:02:08 +0000 (11:02 -0800)]
Remove never used FEATURE_NORM_IDNA_ONLY
danmosemsft [Sun, 12 Feb 2017 18:59:14 +0000 (10:59 -0800)]
Remove never used FEATURE_MERGE_CULTURE_SUPPORT_AND_ENGINE
danmosemsft [Sun, 12 Feb 2017 18:58:11 +0000 (10:58 -0800)]
Remove always defined FEATURE_MAIN_CLR_MODULE_USES_CORE_NAME
danmosemsft [Sun, 12 Feb 2017 18:54:14 +0000 (10:54 -0800)]
Remove always defined FEATURE_HOST_ASSEMBLY_RESOLVER
danmosemsft [Sun, 12 Feb 2017 18:46:48 +0000 (10:46 -0800)]
Remove always defined FEATURE_EXCEPTIONDISPATCHINFO
danmosemsft [Sun, 12 Feb 2017 18:43:35 +0000 (10:43 -0800)]
Remove always defined FEATURE_EXCEPTION_NOTIFICATIONS
danmosemsft [Sun, 12 Feb 2017 18:36:01 +0000 (10:36 -0800)]
Remove never used FEATURE_ASYNC_IO
danmosemsft [Sun, 12 Feb 2017 18:34:28 +0000 (10:34 -0800)]
Fix indentation in cmake
Jan Kotas [Mon, 13 Feb 2017 00:50:50 +0000 (16:50 -0800)]
Add RuntimeHelpers.IsReferenceOrContainsReferences<T>() (#9541)
Rename JitHelpers.ContainsReferences<T>() to RuntimeHelpers.IsReferenceOrContainsReferences<T>() and make it public.
Work towards https://github.com/dotnet/corefx/issues/14047
Stephen Toub [Sun, 12 Feb 2017 23:59:05 +0000 (18:59 -0500)]
Merge pull request #9544 from stephentoub/delete_unused_const
Remove unused const in ArraySortHelper
Ben Adams [Sun, 12 Feb 2017 21:56:15 +0000 (21:56 +0000)]
Optimize List Clear+Remove (#9540)
* List Clear+Remove
* Tail call Array.Clear
Stephen Toub [Sun, 12 Feb 2017 21:02:32 +0000 (16:02 -0500)]
Remove unused const in ArraySortHelper
Mikhael Skvortsov [Sun, 12 Feb 2017 19:57:59 +0000 (22:57 +0300)]
Windows/Arm32: Fix a build break.
Dan Moseley [Sun, 12 Feb 2017 01:06:20 +0000 (17:06 -0800)]
Merge pull request #9525 from danmosemsft/defines2
Remove redundant defines from CoreCLR native code
Stephen Toub [Sun, 12 Feb 2017 00:58:51 +0000 (19:58 -0500)]
Merge pull request #9471 from stephentoub/task_perf
Reduce Task and async method overheads
Jan Kotas [Sat, 11 Feb 2017 22:25:04 +0000 (14:25 -0800)]
Fix checks for methods that use StackCrawlMark (#9537)
* Fix checks for methods that use StackCrawlMark
My recent changed these methods to be marked using IsMdRequireSecObject instead, but some
places that have to check for it were not updated correctly.
Pat Gavlin [Sat, 11 Feb 2017 18:34:56 +0000 (10:34 -0800)]
Merge pull request #9495 from pgavlin/OptConfig
Add a flag to enable fine-grained optimize control.
Jarret Shook [Sat, 11 Feb 2017 17:04:43 +0000 (09:04 -0800)]
Merge pull request #9523 from jashook/up_arm64_timeout
Up the timeout for arm64 jobs that run tests.
danmosemsft [Sat, 11 Feb 2017 16:07:02 +0000 (08:07 -0800)]
Inadvertent inline redundant define in threadsuspend.cpp
danmosemsft [Sat, 11 Feb 2017 15:50:25 +0000 (07:50 -0800)]
Inadvertent inline redundant define in pal
danmosemsft [Sat, 11 Feb 2017 15:45:34 +0000 (07:45 -0800)]
Inadvertent inline redundant define in fxretarget.h
danmosemsft [Sat, 11 Feb 2017 15:28:22 +0000 (07:28 -0800)]
Revert inadvertent remove of #if FASTLOOP
danmosemsft [Sat, 11 Feb 2017 15:23:01 +0000 (07:23 -0800)]
Dead comment
danmosemsft [Sat, 11 Feb 2017 15:20:12 +0000 (07:20 -0800)]
Revert "Remove always defined FEATURE_CORESYSTEM"
This reverts commit
751771a8976f909af772e35c167bd7e3ffbe44c8.
danmosemsft [Sat, 11 Feb 2017 15:12:07 +0000 (07:12 -0800)]
Revert "Remove more always defined FEATURE_CORESYSTEM"
This reverts commit
52009b8919ba55690f21cdc8f04e012a53eb8ef4.
Joseph Tremoulet [Sat, 11 Feb 2017 15:06:29 +0000 (10:06 -0500)]
Merge pull request #9437 from JosephTremoulet/UpdateFormat
Update format.py to use dotnet cli rc3
Stephen Toub [Thu, 9 Feb 2017 22:01:56 +0000 (17:01 -0500)]
Perf improvements to Task/Task<T>
- Remove some unecessary intermediate functions, e.g. Execute(), manually inlining it into its one caller
- Make the common completion path (no exceptions, no cancellation, etc.) more inlineable, and avoid calling some functions (like AddExceptionsFromChildren) when we know they will be nops.
- Make FinishContinuations inlineable. When there aren't any continuations, this shaves off a measurable percentage of time. When there are, we're no worse off, as the FinishContinuations entrypoint gets inlined, so we still only have the one function call to RunContinuations.
- Make TaskCompletionSource.TrySetResult more inlineable. It was just on the cusp, with an extra branch / call to IsCompleted putting it over the edge. But the common path for calling TrySetResult is when the call will successfully transition, in which case we don't need the IsCompleted call; it's only necessary if/when we lose the race condition, in which case we can pay a bit more to call SpinUntilCompleted.
- Avoid some duplicate logging-related calls
- Remove AggressiveInlining from an ETW-related method that did not need it; the call sites can instead just check IsEnabled before calling it.
- Remove some unnecessary writes, casts, locals, etc., make some fields readonly
- Change CompareExchange to Exchange in Task.WhenAny completion
Stephen Toub [Thu, 9 Feb 2017 21:46:03 +0000 (16:46 -0500)]
Streamline AsyncTaskMethodBuilders
- Slim down AsyncTaskMethodBuilder`1.Task and make it aggressively inlined. The common case we care to optimize for is synchronous completion, in which case the first access to Task will already fine m_task non-null, and we want that access inlined.
- Slim down AsyncTaskMethodBuilder`1.SetResult. As with Task, we care most about the synchronous completion path, as when perf matters, most async method invocations complete synchronously. The code path is streamlined so that the synchronous completion path can mostly be inlined.
- Replace some throws with ThrowHelper
- Mark GetTaskForResult as aggressive inlining. It contains a lot of C# code, but for a given TResult, the JIT trims away the majority of the implementation.
danmosemsft [Sat, 11 Feb 2017 06:15:01 +0000 (22:15 -0800)]
Revert "Remove always defined FEATURE_CORRUPTING_EXCEPTIONS"
This reverts commit
b0dab0d6de90a38dfbf0d6b2039a7b8f5269d802.
danmosemsft [Sat, 11 Feb 2017 06:04:44 +0000 (22:04 -0800)]
Missed part of file delete
danmosemsft [Sat, 11 Feb 2017 05:53:12 +0000 (21:53 -0800)]
Remove always defined FEATURE_CORRUPTING_EXCEPTIONS
danmosemsft [Sat, 11 Feb 2017 05:43:40 +0000 (21:43 -0800)]
Remove more always defined FEATURE_CORESYSTEM
danmosemsft [Sat, 11 Feb 2017 05:29:23 +0000 (21:29 -0800)]
Dead files
danmosemsft [Sat, 11 Feb 2017 05:08:47 +0000 (21:08 -0800)]
Remove always undefined FEATURE_CAS_POLICY
danmosemsft [Sat, 11 Feb 2017 04:51:05 +0000 (20:51 -0800)]
Redundant ASSERTE blocks
danmosemsft [Sat, 11 Feb 2017 01:12:53 +0000 (17:12 -0800)]
Remove always defined FEATURE_CORECLR
danmosemsft [Sat, 11 Feb 2017 01:01:50 +0000 (17:01 -0800)]
Dead files
danmosemsft [Sat, 11 Feb 2017 00:07:45 +0000 (16:07 -0800)]
Remove always undefined FEATURE_APTCA
Steve MacLean [Sat, 11 Feb 2017 03:54:07 +0000 (22:54 -0500)]
[Unix] Skipped tests should report exit code 2 (#9510)
Steve MacLean [Sat, 11 Feb 2017 03:53:27 +0000 (22:53 -0500)]
Turn segfauts into asserts in debug build (#9509)
* Prevent segfault if method table is null
* ValidateInner() check method table is not null
jashook [Sat, 11 Feb 2017 03:51:42 +0000 (19:51 -0800)]
Up the timeout for arm64 jobs that run tests.
With the new test update arm64 jobs run too long to fit into the default 120 minutes.
chcosta [Sat, 11 Feb 2017 03:50:36 +0000 (19:50 -0800)]
Merge pull request #9501 from chcosta/mscorlib_race
Fix race condition building System.Private.CoreLib.dll and SOS.NETCore.dll
Carol Eidt [Sat, 11 Feb 2017 03:28:22 +0000 (19:28 -0800)]
Update lsra-throughput.md
Carol Eidt [Sat, 11 Feb 2017 03:15:25 +0000 (19:15 -0800)]
Merge pull request #9519 from CarolEidt/FixCoreFx15713
Add a test case for PR #9496
Steve MacLean [Sat, 11 Feb 2017 01:08:35 +0000 (20:08 -0500)]
[Arm64/Unix] Remove aarch64 unsupported message (#9508)
Steve MacLean [Sat, 11 Feb 2017 01:08:05 +0000 (20:08 -0500)]
[Arm64/Unix] Fix gdbjit support (#9512)
Steve MacLean [Sat, 11 Feb 2017 01:07:48 +0000 (20:07 -0500)]
[Arm64] Add more GCROOTS logging (#9514)
danmosemsft [Sat, 11 Feb 2017 00:07:45 +0000 (16:07 -0800)]
Remove always defined FEATURE_CORESYSTEM
Carol Eidt [Sat, 11 Feb 2017 01:05:34 +0000 (17:05 -0800)]
Add a test case for PR #9496
Jan Kotas [Sat, 11 Feb 2017 00:58:48 +0000 (16:58 -0800)]
Merge pull request #9491 from jkotas/NoInlining
Use DynamicSecurityMethod attribute to mark methods with StackCrawlMark
Carol Eidt [Sat, 11 Feb 2017 00:50:47 +0000 (16:50 -0800)]
Merge pull request #9496 from CarolEidt/FixCoreFx15713
Fix System.Numerics.Vectors CoreFx test failures
Pat Gavlin [Sat, 11 Feb 2017 00:47:22 +0000 (16:47 -0800)]
Fix formatting.
Jarret Shook [Sat, 11 Feb 2017 00:40:59 +0000 (16:40 -0800)]
Merge pull request #9499 from jashook/arm64_dyn_block_assert
ARM64 Modify genCodeForInitBlk assert
Bruce Forstall [Sat, 11 Feb 2017 00:03:42 +0000 (16:03 -0800)]
Merge pull request #9085 from mskvortsov/ryujit-arm32-eh
[RyuJIT/ARM32] EH, switch implementation and various updates
[Arm64/Unix] Add list of known arm64 fails
jashook [Fri, 10 Feb 2017 22:28:51 +0000 (14:28 -0800)]
ARM64 Modify genCodeForInitBlk assert
Assert in codegenarm64 was incorrect for the GT_STORE_DYN_BLK oper.
If it is that oper then there will not be a temp reg used and instead
the size is computed and stored into REG_2. Add an assert to assert
this is done.
Christopher Costa [Fri, 10 Feb 2017 22:50:40 +0000 (14:50 -0800)]
remove additional slash
Pat Gavlin [Fri, 10 Feb 2017 22:36:03 +0000 (14:36 -0800)]
Fix the release build with OPT_CONFIG and address PR feedback.
Christopher Costa [Fri, 10 Feb 2017 22:39:00 +0000 (14:39 -0800)]
Fix race condition building System.Private.CoreLib and SOS.NETCore.dll
Carol Eidt [Fri, 10 Feb 2017 22:33:12 +0000 (14:33 -0800)]
Create lsra-throughput.md
Jan Kotas [Fri, 10 Feb 2017 09:10:23 +0000 (01:10 -0800)]
Use DynamicSecurityMethod attribute to mark methods with StackCrawlMark
CoreCLR does not have CAS, and so we can conveniently use it to mark methods with StackCrawlMark to
decouple it from NoInlining. The original purpose of DynamicSecurityMethod was to disable inlining
of the caller and to insert CAS security checks, so we are basically just keeping the first part.
Fixes #8102
Jan Kotas [Fri, 10 Feb 2017 18:59:33 +0000 (10:59 -0800)]
Revert "JIT: fix confusing inline failure reason"
This reverts commit
0826f9dee6a8fdf8266523945708a684376b0280.
Pat Gavlin [Fri, 10 Feb 2017 19:29:49 +0000 (11:29 -0800)]
Merge pull request #9493 from pgavlin/ReportBytesAllocated
Report bytes allocated in the JIT time log.
Pat Gavlin [Fri, 10 Feb 2017 19:15:15 +0000 (11:15 -0800)]
Fix formatting.
Carol Eidt [Fri, 10 Feb 2017 18:34:09 +0000 (10:34 -0800)]
Fix System.Numerics.Vectors CoreFx test failures
CoreFx Issue 15713 is due to a case of an Indir(Addr(Field(Vector3 local))) which for some reason has a MorphAddrContext of MACK_Ind. Although I haven't fully identified why that is the case, we should be conservative in this case and mark the address as do-not-enregister.
In addition, when attempting to debug this with a Checked JIT, I encountered an AV due to `GetJitTls` returning null in the `JITDUMP` calls in `getMaxIntrinsicSIMDVectorLength`. Again, I'm not sure why this would be the case but I have added guarding conditions.
Andy Ayers [Fri, 10 Feb 2017 18:30:00 +0000 (10:30 -0800)]
JIT: enable implicit tail calls from inlined code (#9405)
Inlines of calls from implicit tail call sites should allow recognition
of inlinee implicit tail call sites.
The jit recognizes implicit tail call sites during importation,
but the inlinee compiler instance did not have compTailCallOpt set
and so never recognized these instances. Fix this and update the logic
to detect the transitively implicit tail calls.
Now that these sites are recognized, morph needs a fix to tunnel through
repeated casts for tail calls, since each level of inlining might add a
cast. All these casts should be identical.
Note under R2R tail calls are not yet recognized (see ZapInfo::canTailCall).
Enable only under FEATURE_TAILCALL_OPT_SHARED_RETURN since the
inline tail call sites are not likely to be in BBJ_RETURN blocks.
Closes #9349.
Pat Gavlin [Fri, 10 Feb 2017 18:06:59 +0000 (10:06 -0800)]
Use `%Iu` instead of `%I64u`.
Pat Gavlin [Thu, 26 Jan 2017 23:57:47 +0000 (15:57 -0800)]
Add a flag to enable fine-grained optimize control.
Defining this flag, `OPT_CONFIG`, enables a number of optimizer-related
configuration values. Changing these config values allows for some
interesting experiments without rebuilding the JIT (e.g. disabling the
SSA-based optimizer without forcing minopts, repeating optimizations,
etc.).
This flag is defined by default in debug builds and undefined by default
in release builds.
Pat Gavlin [Fri, 10 Feb 2017 17:40:45 +0000 (09:40 -0800)]
Report bytes allocated in the JIT time log.
This adds a new column, "Total Bytes Allocated", to the JIT time log.
This column reports the total number of bytes requested from the host by
the JIT's arena allocator.
This change also enables `FEATURE_JIT_TIMER` by default (which only
affects JIT32).
Hyeongseok Oh [Fri, 10 Feb 2017 10:36:29 +0000 (19:36 +0900)]
[Linux/ARM] Fix cross-architecture component build error: disable unused code (#8866)
* [ARM32/Linux] Fix cross-architecture component build error: unused function comparing CONTEXT with T_CONTEXT.
- change build script: remove duplicate test build in cross-component build
Jonghyun Park [Fri, 10 Feb 2017 09:59:23 +0000 (18:59 +0900)]
Hide VirtualUnwindXXX for DACESS_COMPILE (#9407)
Jonghyun Park [Fri, 10 Feb 2017 09:42:56 +0000 (18:42 +0900)]
Unify GetControlPC/GetRegdisplaySP/SetRegdisplaySP (#9444)
* Unify GetControlPC
* Unify GetRegdisplaySP/SetRegdisplaySP