Andy Ayers [Fri, 8 Feb 2019 16:10:57 +0000 (08:10 -0800)]
JIT: Suppress emitting same-reg zero extending move (#22454)
Add a peephole optimization to suppress emitting zero extending moves
if the previous instruction has already done a suitable zero extension.
Only implemented for x64 currently.
Closes #21923
Andy Ayers [Fri, 8 Feb 2019 16:09:57 +0000 (08:09 -0800)]
JIT: fix ifdef guarding an assert (#22460)
We use `_TARGET_AMD64_`, not `_TARGET_X64_`.
Eugene Rozenfeld [Fri, 8 Feb 2019 08:14:35 +0000 (00:14 -0800)]
Force results of rejected multi-reg-returning tail-call candidates to temp. (#22364)
* Force results of rejected multi-reg-returning tail-call candidates to temp.
Issue #20269 ran into an assert when trying to merge returns, one of which
is a call to a multi-reg-returning method. The repro in the bug is a pmi
of `System.Reflection.Metadata`. I added a simple repro test case.
Results of calls to multi-reg-returning methods are expected to
be saved to temps. Normally it's ensured by `impFixupCallStructReturn`;
however, it doesn't do that for tail-call candidates.
This change forces results of calls to multi-reg-returning methods
to temps if the tail call is rejected late in morph.
Fixes #20269.
Stephen Toub [Wed, 6 Feb 2019 04:13:26 +0000 (23:13 -0500)]
Finish removing Environment from corefx
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Sergey Andreenko [Fri, 8 Feb 2019 06:01:50 +0000 (22:01 -0800)]
Fix the desktop warning (#22481)
Marek Safar [Fri, 8 Feb 2019 03:45:44 +0000 (04:45 +0100)]
Move DateTime for Unix to shared partition (#22383)
* Move DateTime for Unix to shared partition
* Keep CoreCLR specific implementation
Egor Chesakov [Fri, 8 Feb 2019 02:40:34 +0000 (18:40 -0800)]
Disable more baseservices/threading/interlocked tests on Ubuntu.Arm64 (#22471)
In the last two weeks the following tests have failed:
* baseservices/threading/interlocked/exchange/ExchangeTClass - 5 times
* baseservices/threading/interlocked/exchange/ExchangeTString - 13 times
* baseservices/threading/interlocked/exchange/ExchangeTString_1 - 12 times
* baseservices/threading/interlocked/exchange/ExchangeTString_2 - 20 times
In addition to the previously disabled tests (in #22304):
* baseservices/threading/interlocked/compareexchange/CompareExchangeTClass - 9 times
* baseservices/threading/interlocked/compareexchange/CompareExchangeTClass_1 - 32 times
All the failures happened on Ubuntu.1804.Arm64.Open Helix queue in Azure DevOps Pri1 jobs
**Related issue:** #22303
Jan Kotas [Fri, 8 Feb 2019 02:35:15 +0000 (18:35 -0800)]
Fix race condition in g_pfnGetSystemTimeAsFileTime initialization (#22466)
Multiple threads initializing g_pfnGetSystemTimeAsFileTime at the same time can end up with different conclusions. Make the result consistent.
Koundinya Veluri [Fri, 8 Feb 2019 01:51:29 +0000 (17:51 -0800)]
Add config option to disable tier 0 JIT (#22370)
Add config option to disable tier 0 JIT
Fixes https://github.com/dotnet/coreclr/issues/21856
- For methods that don't have pregenerated code, using tier 0 JIT can improve startup perf, and disabling tier 0 JIT can be useful to sacrifice some startup time to avoid issues of running tier 0 code for too long. In some cases, it may also be desirable to avoid tiering up much later.
- A fixed value for the call count indicates that tier 0 call counting is disabled. When disabled, the method starts at tier 1.
- Also modified call counting to start from a predetermined threshold and count down to zero, as it simplifies some things, allows for methods to have different thresholds, and likely is what we would want eventually anyway
- Took a small step towards eliminating knowledge of specific tier levels in code that should not care, though more is to be done there
Bruce Forstall [Thu, 7 Feb 2019 23:19:06 +0000 (15:19 -0800)]
Merge pull request #22023 from BruceForstall/FixGSWithLocalloc
Fix ARM64 GS with localloc
Sinan Kaya [Thu, 7 Feb 2019 21:39:13 +0000 (16:39 -0500)]
More PAL layer cleanup for GNU and add build script support for GCC (#22369)
* Declare throw only when compiling for c++
Prevent the definition from getting defined multiple times and
map it to throw() only when compiling c++ code.
* Suppress warnings for tests
Suppress:
-Wno-write-strings
-Wno-sign-compare
-Wno-narrowing
-fpermissive
-Wno-int-to-pointer-cast
to allow tests to compile
* Add gcc option to build.sh script
Following clangx.y model add -gccx.y command line
arguments with gcc5 and gcc7 being the currnetly supported
options.
* Allow environment variable to be used for TOOLCHAIN
Remove CLANG specific compiler options as well.
* Hide non-GNU compiler options
* Do not include local directory if cross compiling
[ 0%] Building CXX object src/pal/src/eventprovider/tracepointprovider/CMakeFiles/coreclrtraceptprovider.dir/__/lttng/traceptprovdotnetruntime.cpp.o
cc1plus: error: include location "/usr/local/include" is unsafe for cross-compilation [-Werror=poison-system-directories]
* Suppress unknown pragma warnings
src/pal/src/exception/seh-unwind.cpp:37:0:
warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic pop
Removing these cause compilation error on clang7 and arm as follows:
In file included from /bin/obj/Linux.arm.Debug/src/pal/src/libunwind/include/libunwind.h:9:
/src/pal/src/libunwind/include/libunwind-arm.h:247:9: error: empty struct has size 0 in C, size 1 in C++ [-Werror,-Wextern-c-compat]
typedef struct unw_tdep_save_loc
^
/src/pal/src/libunwind/include/libunwind-arm.h:288:9: error: empty struct has size 0 in C, size 1 in C++ [-Werror,-Wextern-c-compat]
typedef struct
* plt not useful for GNU and ARM64/ARM
src/pal/src/arch/arm64/callsignalhandlerwrapper.S: Assembler messages:
src/pal/src/arch/arm64/callsignalhandlerwrapper.S:31: Error: unexpected characters following instruction at operand 1 -- `bl signal_handler_worker@plt'
src/pal/src/arch/arm64/callsignalhandlerwrapper.S:32: Error: unexpected characters following instruction at operand 1 -- `bl signal_handler_worker@plt'
* Remove double const from argv in PAL_Initialize
Seeing compilation error with GNU for C source files as follows:
if (PAL_Initialize(argc, argv) != 0)
^
src/pal/tests/palsuite/common/palsuite.h:21:0,
from src/pal/tests/palsuite/c_runtime/asinhf/test1/test1.c:18:
src/pal/inc/pal.h:374:1: note: expected ‘const char * const*’ but argument is of type ‘char **’
* Suppress format warnings using GNU for libunwind
warning: format ‘%li’ expects argument of type ‘long int’, but argument 3 has type ‘int’ [-Wformat=]
Debug (4, " aligned frame, offset %li\n", f->cfa_reg_offset);
* Fix -fpermissive warnings for GNU
* Suppress unused variable warning in libunwind
src/pal/src/libunwind/include/libunwind-aarch64.h:201:5: warning: right-hand operand of comma expression has no effect [-Wunused-value]
#define unw_tdep_getcontext(uc) (({ \
~~~~~~~~~
unw_tdep_context_t *unw_ctx = (uc); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
register uint64_t *unw_base asm ("x0") = (uint64_t*) unw_ctx->uc_mcontext.regs; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__asm__ __volatile__ ( \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x0, x1, [%[base], #0]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x2, x3, [%[base], #16]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x4, x5, [%[base], #32]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x6, x7, [%[base], #48]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x8, x9, [%[base], #64]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x10, x11, [%[base], #80]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x12, x13, [%[base], #96]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x14, x13, [%[base], #112]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x16, x17, [%[base], #128]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x18, x19, [%[base], #144]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x20, x21, [%[base], #160]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x22, x23, [%[base], #176]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x24, x25, [%[base], #192]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x26, x27, [%[base], #208]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"stp x28, x29, [%[base], #224]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"str x30, [%[base], #240]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"mov x1, sp\n" \
~~~~~~~~~~~~~~~~
"stp x1, x30, [%[base], #248]\n" \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: [base] "+r" (unw_base) : : "x1", "memory"); \
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}), 0)
* Fix warning: ‘memset’ used with length equal to number of elements warning
Fix similar warnings to these by including the element size into total size
calculation.
src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test1/test.cpp: In function ‘int main(int, char**)’:
src/pal/tests/palsuite/miscellaneous/SetEnvironmentVariableW/test1/test.cpp:89:31: warning: ‘memset’ used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
memset(NewValue,0,BUF_SIZE);
* Define CLR specific compiler option CLR_CMAKE_COMPILER
By the time toolchain.cmake is called, the compiler detection from
cmake is not active. We need an intermediate definition to pass
to compiler detection.
Jan Kotas [Thu, 7 Feb 2019 18:17:45 +0000 (10:17 -0800)]
Fix GCSample bit rot (#22462)
Fixes #22459
Egor Chesakov [Thu, 7 Feb 2019 17:58:32 +0000 (09:58 -0800)]
Merge pull request #22435 from echesakovMSFT/TreatCLRTestExecutionArgumentsAsAnArrayInBash
Treat CLRTestExecutionArguments as an array in generated Bash scripts
Tanner Gooding [Thu, 7 Feb 2019 17:12:08 +0000 (09:12 -0800)]
Fixing Utf8Formatter.Float to support all the same format specifiers as the utf16 formatter. (#22434)
* Fixing Utf8Formatter.Float to support all the same format specifiers as the utf16 formatter.
* Disabling some outdated CoreFX tests.
* Fixing TryFormatFloatingPoint to special-case format.IsDefault
Michal Strehovský [Thu, 7 Feb 2019 16:48:09 +0000 (17:48 +0100)]
Fix delegate creation for default interface methods on structs (#22427)
We only need to find an unboxing stub if we resolved the interface to a valuetype method. If we resolved to a default interface method implementation, unboxing is not necessary.
Sinan Kaya [Thu, 7 Feb 2019 09:28:29 +0000 (04:28 -0500)]
Cleanup LLVM assumption (#22456)
We want to support GNU compilation for CoreCLR. Luckily both LLVM
and GNU compilers define __GNUC__ and there are a lot of things
they can share.
Stephen Toub [Thu, 7 Feb 2019 03:37:31 +0000 (22:37 -0500)]
Fix CoreLib to include PasteArguments.Unix.cs correctly (#22453)
Marek Safar [Thu, 7 Feb 2019 03:36:45 +0000 (04:36 +0100)]
Move Array to shared partition (#22321)
Marek Safar [Thu, 7 Feb 2019 03:34:48 +0000 (04:34 +0100)]
Implement ManifestBasedResourceGroveler::GetNeutralResourcesLanguageAttribute (#22372)
* Implement ManifestBasedResourceGroveler::GetNeutralResourcesLanguageAttribute in shared managed code
* Remove native ::GetNeutralResourcesLanguage
Bruce Forstall [Fri, 11 Jan 2019 01:06:49 +0000 (17:06 -0800)]
Fix ARM64 GS with localloc
Currently, all frame types place saved FP/LR at low addresses on the
frame, below the GS cookie. If a function has localloc, the dynamically
allocate and unsafe buffer will be lower than the saved FP/LR and
not the GS cookie won't properly protect the saved FP/LR.
This change introduces new frame types, used only for functions needing
a GS cookie and using localloc, saving FP/LR along with the rest of
the callee-saved registers at the top (highest addresses) of the frame,
above the GS cookie.
Tarek Mahmoud Sayed [Wed, 6 Feb 2019 23:15:46 +0000 (15:15 -0800)]
Index and Range updates (#22331)
* Index and Range updates
* Address @mikedn feedback
* Address Feedback
* more feedback
* Use Deconstruct in Range.GetOffsetAndLength
* Rename GetArrayRange to GetSubArray
* Temporary disable the old Corefx Range tests
* Return back the TimeSpan test disabling
* Fix Range jit test
* Exclude the jit test
* revert the changes in the jit Range test
* Address Suggested Feedback
Bruce Forstall [Wed, 6 Feb 2019 21:51:30 +0000 (13:51 -0800)]
Merge pull request #22450 from BruceForstall/DisableFlakySystemNetTests
Disable flaky Linux/arm64 corefx System.Net.Sockets.Tests
Jeremy Koritzinsky [Wed, 6 Feb 2019 21:05:28 +0000 (13:05 -0800)]
Throw an exception when passing strings by-value as out parameters. (#21513)
* Throw an exception when passing strings by-value as out parameters.
* Fix encoding
* Don't use override in this PR.
* Clean up Marshal_In
Marshal_In was copied back into existence from Marshal_InOut. Clean it up a bit.
* Remove extraneous whitespace.
* Fix failing test.
* Remove out attribute in COM string tests.
* Add back attribute and check for exception thow in COM tests.
* Add block comment to explain the implementation of Reverse_LPWStr_OutAttr in the NETServer.
* Only throw in a CLR->Native marshalling situation.
* Fix asserts from changed code-paths used in ILWSTRMarshaler.
* Add comment and explicitly load in a null value (instead of leaving it uninitialized).
* Apply suggestions from code review
Co-Authored-By: jkoritzinsky <jkoritzinsky@gmail.com>
Co-authored-by: Jan Vorlicek <janvorli@microsoft.com>
Jarret Shook [Wed, 6 Feb 2019 21:00:54 +0000 (13:00 -0800)]
Allow lcl_var structs to be widened to primitive types on unix amd64. (#22437)
* Allow lcl_var structs to be widened to primitive types on unix amd64. The already happens on armarch
* Apply format patch
Bruce Forstall [Wed, 6 Feb 2019 20:33:43 +0000 (12:33 -0800)]
Disable flaky Linux/arm64 corefx System.Net.Sockets.Tests
Tracking: https://github.com/dotnet/coreclr/issues/21576
In general, any System.Net test that exhibits flakiness should be
disabled; we pay more in flakiness than we gain in coverage.
Egor Chesakov [Tue, 5 Feb 2019 02:33:25 +0000 (18:33 -0800)]
Treat $(CLRTestExecutionArguments) as an array in Bash
Egor Chesakov [Tue, 5 Feb 2019 19:20:52 +0000 (11:20 -0800)]
Enable baseservices/threading/paramthreadstart/ThreadStartString_1
Jan Vorlicek [Wed, 6 Feb 2019 11:23:08 +0000 (12:23 +0100)]
Add option to run tests in unloadable context (#22332)
This change adds new "runincontext" option to the tests/runtest.cmd that
allows running tests inside of an unloadable AssemblyLoadContext.
It also adds new property that allows tests to be marked as incompatible
with running this way. All known tests that have such issue are marked
in this PR too.
Bruce Forstall [Wed, 6 Feb 2019 07:27:07 +0000 (23:27 -0800)]
Merge pull request #22433 from BruceForstall/DisableFailingLinuxArm64Test
Disable failing constrainedcall test
Bruce Forstall [Wed, 6 Feb 2019 07:26:18 +0000 (23:26 -0800)]
Merge pull request #22438 from BruceForstall/DisableFailingXarchTests
Disable failing BestFitMapping tests
Bruce Forstall [Wed, 6 Feb 2019 07:24:53 +0000 (23:24 -0800)]
Merge pull request #22439 from BruceForstall/DisableWaitOne2
Disable baseservices\threading\mutex\misc\waitone2 test
Bruce Forstall [Wed, 6 Feb 2019 07:24:01 +0000 (23:24 -0800)]
Merge pull request #22444 from BruceForstall/DisableGThread23
Disable GThread23 test
Bruce Forstall [Wed, 6 Feb 2019 03:00:16 +0000 (19:00 -0800)]
Disable GThread23 test
It fails regularly though randomly in the CI.
Tracking issue: https://github.com/dotnet/coreclr/issues/19339
Bruce Forstall [Tue, 5 Feb 2019 21:13:05 +0000 (13:13 -0800)]
Disable failing constrainedcall test on Linux
Tracked by https://github.com/dotnet/coreclr/issues/22423
Bruce Forstall [Wed, 6 Feb 2019 01:15:35 +0000 (17:15 -0800)]
Disable baseservices\threading\mutex\misc\waitone2 test
This test has been failing randomly in the CI on all architectures
for a long, long time.
Tracking issue: https://github.com/dotnet/coreclr/issues/6397
Bruce Forstall [Wed, 6 Feb 2019 00:55:30 +0000 (16:55 -0800)]
Disable failing BestFitMapping tests
Tests:
```
Interop\PInvoke\BestFitMapping\Char\AFT_PFT\AFT_PFT\AFT_PFT.cmd
Interop\PInvoke\BestFitMapping\Char\Assembly_False_False\Assembly_False_False\Assembly_False_False.cmd
Interop\PInvoke\BestFitMapping\LPStr\AFT_PFT\AFT_PFT\AFT_PFT.cmd
Interop\PInvoke\BestFitMapping\LPStr\Assembly_False_False\Assembly_False_False\Assembly_False_False.cmd
```
Tracked by https://github.com/dotnet/coreclr/issues/22436
Bruce Forstall [Tue, 5 Feb 2019 21:27:21 +0000 (13:27 -0800)]
Merge pull request #22431 from BruceForstall/DisableCorefxFailingTests
Disable failing Linux/arm64 corefx tests
Bruce Forstall [Tue, 5 Feb 2019 20:46:35 +0000 (12:46 -0800)]
Merge pull request #22432 from BruceForstall/DisableWindowsArm64CorefxCronJobs
Disable Windows arm64 corefx cron jobs
Michal Strehovský [Tue, 5 Feb 2019 17:03:52 +0000 (18:03 +0100)]
Fix ProjectN build breaks (dotnet/corert#6954)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Filip Navara [Tue, 5 Feb 2019 20:29:01 +0000 (21:29 +0100)]
Avoid duplicate tree lookup in GetCollatorFromSortHandle (#22390)
Bruce Forstall [Tue, 5 Feb 2019 20:24:19 +0000 (12:24 -0800)]
Merge pull request #22425 from BruceForstall/UploadMsbuildLogs
Configure MSBuild debug path and save any logs
Bruce Forstall [Tue, 5 Feb 2019 20:03:26 +0000 (12:03 -0800)]
Disable Windows arm64 corefx cron jobs
These currently all fail with timeout. They also take way too much time
to run. We have good Linux/arm64 corefx test coverage already.
The issue of these runs being slow is tracked by
https://github.com/dotnet/coreclr/issues/21236.
Aditya Mandaleeka [Tue, 5 Feb 2019 20:21:50 +0000 (12:21 -0800)]
Merge pull request #22415 from adityamandaleeka/pinvoke_eh
Disable PInvoke inlining within try regions on ARM64
Egor Chesakov [Tue, 5 Feb 2019 20:04:40 +0000 (12:04 -0800)]
Use Jenkins for Linux/arm32 testing (#22429)
Bruce Forstall [Tue, 5 Feb 2019 19:52:22 +0000 (11:52 -0800)]
Disable failing Linux/arm64 corefx tests
Bruce Forstall [Tue, 5 Feb 2019 19:04:07 +0000 (11:04 -0800)]
Merge pull request #22421 from BruceForstall/RestrictArm64XunitParallelism
Restrict arm64 parallelism to collections
Bruce Forstall [Tue, 5 Feb 2019 19:02:50 +0000 (11:02 -0800)]
Merge pull request #22416 from BruceForstall/FixRunTestOutput
Fix runtest.py output
Jeremy Koritzinsky [Tue, 5 Feb 2019 18:38:57 +0000 (10:38 -0800)]
Correctly error out gracefully on setup-stress-dependencies when libcoredistools isn't available. (#22357)
Andy Ayers [Tue, 5 Feb 2019 08:43:23 +0000 (00:43 -0800)]
Notify dac when prejitted code is going to be used for a method (#22296)
This allows sos bpmd breakpoints to work on prejitted methods.
Closes #22265.
Michal Strehovský [Tue, 5 Feb 2019 08:03:49 +0000 (09:03 +0100)]
Add draft default interface methods specification (#21564)
Jeremy Koritzinsky [Tue, 5 Feb 2019 06:16:43 +0000 (22:16 -0800)]
Fix marshalling UTF8 string struct member from native to managed. (#22408)
* Fix marshalling UTF8 string struct member from native to managed.
Fixes #22394
* PR Feedback.
Carol Eidt [Tue, 5 Feb 2019 05:49:25 +0000 (21:49 -0800)]
Extract addressing mode analysis from gtSetEvalOrder (#22387)
* Extract addressing mode analysis from gtSetEvalOrder
Bruce Forstall [Tue, 5 Feb 2019 04:37:18 +0000 (20:37 -0800)]
Merge pull request #22417 from BruceForstall/ExtractRuntestTimeout
Extract setting __TestTimeout in runtest.py
Ben Adams [Tue, 5 Feb 2019 04:04:30 +0000 (05:04 +0100)]
Fix string.strlen (#22397)
* Add explanation comment
Fixes #22393
Marek Safar [Tue, 5 Feb 2019 03:43:10 +0000 (04:43 +0100)]
Move SynchronizationContext to shared partition (#22389)
* Move SynchronizationContext to shared partition
* Move WaitHelperNative to WaitHandle
Bruce Forstall [Tue, 5 Feb 2019 03:00:39 +0000 (19:00 -0800)]
Configure MSBuild debug path and save any logs
We have had many problems in the CI with MSBuild failing, and not
capturing the failure logs.
See https://github.com/dotnet/coreclr/issues/20236.
So, for all msbuild invocations, set MSBUILDDEBUGPATH to a new,
distinguished, subdirectory of the bin\Logs directory, named
"MsbuildDebugLogs". Change the CI to upload any log files found
there.
Bruce Forstall [Mon, 4 Feb 2019 23:20:09 +0000 (15:20 -0800)]
Fix runtest.py output
1. Fix extra newline output
2. Remove extra output of failed logs
3. Catch errors with Unicode conversion
Bruce Forstall [Tue, 5 Feb 2019 00:21:43 +0000 (16:21 -0800)]
Restrict arm64 parallelism to collections
Attempt to reduce test timeout failures by restricting test parallelism.
Attempts to address https://github.com/dotnet/coreclr/issues/22419
Steve MacLean [Mon, 4 Feb 2019 18:36:52 +0000 (13:36 -0500)]
Handle SPC in GetLoadContext
GetBindingContext() returns NULL for System.Private.CoreLib. Add support
for this special case.
Bruce Forstall [Mon, 4 Feb 2019 23:41:29 +0000 (15:41 -0800)]
Extract setting __TestTimeout
Avoid setting or reporting setting it twice
Aditya Mandaleeka [Mon, 4 Feb 2019 23:21:05 +0000 (15:21 -0800)]
Re-enable tests blocked by 21964.
Aditya Mandaleeka [Mon, 4 Feb 2019 23:12:33 +0000 (15:12 -0800)]
Disable PInvoke inlining within try regions on ARM64.
Bruce Forstall [Mon, 4 Feb 2019 22:38:12 +0000 (14:38 -0800)]
Merge pull request #22411 from BruceForstall/AlwaysArchiveLogs
Always archive build logs
Bruce Forstall [Mon, 4 Feb 2019 21:30:12 +0000 (13:30 -0800)]
Always archive build logs
Even if the build fails. Add archiving in more cases where it was missing.
Egor Chesakov [Mon, 4 Feb 2019 17:54:47 +0000 (09:54 -0800)]
Disable JIT/SIMD/Vector3Interop_ro on x64 Unix platforms
Related issue: https://github.com/dotnet/coreclr/issues/22401
Egor Chesakov [Mon, 4 Feb 2019 17:45:38 +0000 (09:45 -0800)]
Disable JIT/Regression/CLR-x86-JIT/v2.1/b152292 on all Unix platforms
Related issue: https://github.com/dotnet/coreclr/issues/20358
Jan Kotas [Mon, 4 Feb 2019 19:36:06 +0000 (11:36 -0800)]
More compact implementation of Marshal.GenerateProgIdForType (#22395)
Sergey Andreenko [Mon, 4 Feb 2019 19:13:24 +0000 (11:13 -0800)]
Reenable corefx System.Linq.Expressions.Tests. (#22362)
Sergey Andreenko [Mon, 4 Feb 2019 17:45:03 +0000 (09:45 -0800)]
Delete exclusions that reference fixed issues. (#22355)
* Delete exclusions for the issue that were fixed.
* Change the issue number for ThreadStartString_1
Andy Ayers [Mon, 4 Feb 2019 16:47:48 +0000 (08:47 -0800)]
Fix arm32 unwind for large methods (#22381)
* Fix arm32 unwind for large methods
For arm32, the unwinder bails out with an error if the method offset is not
within the fragment range. And the jit copies prolog unwind codes to all
fragments, so there's no need to walk back and find the root unwind record.
Closes #22260.
* re-enable test
Filip Navara [Mon, 4 Feb 2019 13:09:20 +0000 (14:09 +0100)]
Remove code that was moved to System.Native (dotnet/corert#6932)
* Remove code that was already moved from System.Private.CoreLib.Native to System.Native.
* Move Interop files for System.Native to shared Interop directory.
* Add FeaturePortableThreadPool conditions to csproj files.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Jan Kotas [Mon, 4 Feb 2019 04:33:56 +0000 (20:33 -0800)]
Merge pull request #22378 from filipnavara/native_cpp_to_C
Convert System.Globalization.Native to C
Michal Strehovský [Sun, 3 Feb 2019 18:22:32 +0000 (19:22 +0100)]
Throw the right exception when interface dispatch is ambiguous (#22295)
Throw the approved exception per dotnet/corefx#34124.
Jan Kotas [Sun, 3 Feb 2019 17:07:09 +0000 (09:07 -0800)]
Use unsigned index extension in muldi-dimensional array stubs (#22376)
Delete unnecessary parallel logic that kept track of the total multiplier
Fixes #22348
Tamás Csala [Sun, 3 Feb 2019 13:53:18 +0000 (13:53 +0000)]
Rename DevDiv_754566.ilprog to DevDiv_754566.ilproj (#22375)
Typo in file name
Filip Navara [Sun, 3 Feb 2019 09:59:55 +0000 (10:59 +0100)]
Prefix enums, remove DLLEXPORT from GetResultCode
Move SortHandle out of public API header, it is opaque structure
Filip Navara [Sun, 3 Feb 2019 09:26:27 +0000 (10:26 +0100)]
Fix inconsistent usage of various bool types
Convert u_charsToUChars_safe to ICU style error handling
Unify error handling code across functions to use the same patterns
Add static modifier to functions that are used only from single C file
Filip Navara [Sun, 3 Feb 2019 07:46:33 +0000 (08:46 +0100)]
Update static_assert usage to c_static_assert_msg
Filip Navara [Sun, 3 Feb 2019 02:37:19 +0000 (03:37 +0100)]
Avoid memory allocation in EnumSymbols for small buffers
Filip Navara [Sun, 3 Feb 2019 02:20:45 +0000 (03:20 +0100)]
Fix error handling in GetLocaleIso639LanguageTwoLetterName
Filip Navara [Sun, 3 Feb 2019 01:02:24 +0000 (02:02 +0100)]
Update one more place to use version.c instead of version.cpp
Filip Navara [Sun, 3 Feb 2019 00:50:56 +0000 (01:50 +0100)]
Simplify and fix error handling
Filip Navara [Sun, 3 Feb 2019 00:19:29 +0000 (01:19 +0100)]
Change NormalizationForm to address feedback.
kasper3 [Sun, 1 Jul 2018 09:51:09 +0000 (09:51 +0000)]
Fix enum alignment
kasper3 [Fri, 29 Jun 2018 15:15:56 +0000 (15:15 +0000)]
Address feedback
kasper3 [Mon, 25 Jun 2018 20:05:58 +0000 (20:05 +0000)]
Convert version.cpp to C
kasper3 [Mon, 25 Jun 2018 14:39:57 +0000 (14:39 +0000)]
Address feedback
kasper3 [Fri, 22 Jun 2018 15:54:55 +0000 (15:54 +0000)]
Convert System.Globalization.Native to C
kasper3 [Fri, 22 Jun 2018 15:45:26 +0000 (15:45 +0000)]
Rename files
Filip Navara [Sun, 3 Feb 2019 01:35:39 +0000 (02:35 +0100)]
Move Interop.GetTimestamp.cs to shared CoreLib partition. (#35031)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Carol Eidt [Sat, 2 Feb 2019 22:33:30 +0000 (14:33 -0800)]
Spill tree temp large vectors around calls (#22311)
* Spill tree temp large vectors around calls
The code was there to handle lclVars, but there was an implicit assumption that non-lclVar large vector tree temps would never be live across a call.
Fixes the GitHub_20657 failure in #22253
Stephen Toub [Sat, 2 Feb 2019 18:31:31 +0000 (13:31 -0500)]
Avoid delegate/work item allocations when setting async continuation (#22373)
When awaiting a task, there's a race between seeing whether the task has completed (in which case we just continue running synchronously), finding the task hasn't completed (in which case we hook up a continuation), and then by the time we try to hook up the continuation finding the task has already completed. In that final case, we don't want to just execute the callback synchronously, as we risk a stack dive, so we queue it. That queueing currently entails two allocations in the common case: one for the work item object, and one for the Action delegate we force into existence for the state machine box's MoveNext method (in the common case it's now never allocated because you only await Tasks and ValueTasks known to the runtime, which bypasses its creation). We can instead just queue the box itself, and avoid both allocations.
Jan Kotas [Sat, 2 Feb 2019 17:14:47 +0000 (09:14 -0800)]
Rename ResourceManager fields to follow conventions (#22371)
Carol Eidt [Sat, 2 Feb 2019 14:37:34 +0000 (06:37 -0800)]
Propagate preferences (#19429)
* Propagate preferences
Instead of selecting a single relatedInterval for preferencing,
follow the chain of relatedIntervals (preferenced intervals).
Change when preferences are propagated to the relatedInterval;
do it in allocateRegisters, so that we can update it when we see a last use.
Also tune when and how intervals are preferenced, including allowing multiple
uses on an RMW node to have the target as their preference.
Fixes #11463
Contributes to #16359
dotnet-maestro[bot] [Sat, 2 Feb 2019 06:29:56 +0000 (22:29 -0800)]
Update dependencies from dotnet/arcade (#22096)
* Update dependencies from https://github.com/dotnet/arcade build
20190118.4
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19068.4
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19068.4
* Update dependencies from https://github.com/dotnet/arcade build
20190119.2
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19069.2
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19069.2
* Update dependencies from https://github.com/dotnet/arcade build
20190120.2
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19070.2
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19070.2
* Update dependencies from https://github.com/dotnet/arcade build
20190122.5
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19072.5
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19072.5
* Update dependencies from https://github.com/dotnet/arcade build
20190123.5
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19073.5
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19073.5
* Update dependencies from https://github.com/dotnet/arcade build
20190130.6
This change updates the following dependencies
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19080.6
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19080.6
Egor Chesakov [Sat, 2 Feb 2019 05:01:53 +0000 (21:01 -0800)]
Make Import of Helix.Sdk conditional in tests/helixpublishwitharcade.proj (#22360)
Marek Safar [Sat, 2 Feb 2019 03:48:58 +0000 (04:48 +0100)]
Move Marshal::UnsafeAddrOfPinnedArrayElement to shared partition (#22359)
Jan Kotas [Sat, 2 Feb 2019 03:47:52 +0000 (19:47 -0800)]
Make Exception._HResult private (#22354)
Bruce Forstall [Sat, 2 Feb 2019 00:09:10 +0000 (16:09 -0800)]
Fix the scratch register used for arm64 stack probing (#22313)
* Fix the scratch register used for arm64 stack probing
In some circumstances, genFnProlog might pick a callee-saved
register to be the initReg. This doesn't work for stack probing
since we might need a scratch register before we save the
callee-save regs. So, always use R9 (REG_SCRATCH) instead.
Fixes #22284
* Formatting
Carol Eidt [Fri, 1 Feb 2019 23:35:28 +0000 (15:35 -0800)]
Preserve Vector Arg registers on Arm64 (#22257)
* Preserve Vector Arg registers on Arm64
Fix #14371