Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
* 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
|
|
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.
|
|
|
|
* 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
|
|
* 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
|
|
(#22360)
|
|
|
|
|
|
* 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
|
|
* Preserve Vector Arg registers on Arm64
Fix #14371
|
|
It used to be that the CS0420 warning ("a reference to a volatile field will not be treated as volatile") would fire when a volatile was used with an Interlocked.* operation. That warning was unnecessary, as Interlocked.* would itself provide the relevant barriers, and these functions were special cased in Roslyn a long time ago. But there are still lots of places where pragmas disabling the warning have stuck around. I'm deleting them all.
|
|
* Move ResourceManager to shared CoreLib.
* Split UAP code out of ResourceManager.cs into separate files.
* Remove ResourceManager.NonUap.cs.
* Do not access internal field (CoreRT build fix).
* Fix non-Windows builds (CoreRT).
* Remove obsolete Debug code.
|
|
Fixes #20460.
See issue #22339.
|
|
string. (#22040)
* Updating Number.Formatting to always compute a round-trippable number by default.
* Adding a third-party notice entry for the Grisu3 reference implementation
* Fixing up the Grisu3 algorithm to better match the reference implementation (including comments, etc)
* Porting the Grisu3 implementation that generates the shortest roundtrippable sequence.
* Updating the Dragon4 algorithm to support printing the shortest roundtrippable string.
* Fixing the double/float formatters to ignore precision specifiers for 'R'
* Fixing the double/float formatters to handle +0.0 and -0.0
* Fix the casing of `point` in THIRD-PARTY-NOTICES
Co-Authored-By: tannergooding <tagoo@outlook.com>
* Fixing the double/float formatting code to consider a precision specifier of 0 to be the same as default.
* Fixing the double/float formatter so that nMaxDigits is set appropriately.
* Changing the double/float formatting logic to account for the format when determining the correct precision to request.
* Updating the double/float formatter to take the format specifier into account when determining the number of digits to request.
* Fixing the double/float formatting code to continue handling zero correctly.
* Disabling some outdated CoreFX tests.
* Responding to various feedback from the PR
|
|
|
|
Fixes an assert when first call to PrepareMethod for an assembly
is an interop method.
|
|
Testing how much hate this is going to bring me.
These annotations let ProjectN deal with the fact that we now have two
definitions of System.Environment in the system. This is needed as long
as Project N is stuck on 2.1-level version of the framework.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
This reverts commit 193d5da27fecb7bf95e7342f1c4b9e2b63ce5313.
|
|
* Abstract away NOINLINE statement
MSVC and GNU compilers use different attributes for noinline.
Abstract away compiler differences.
* Replace __sync_swap with __atomic_exchange_n
__sync_swap doesn't exist on GNU. Replacing with __atomic_exchange_n
which is universally available.
* Define CDECL for GNUC
__cdecl is not defined by default on GNU compilers.
* Define gcc version of __declspec(thread)
* Correct pointer casting
A pointer value is usually unsigned long on most platforms.
Casting it to integer causes signedness issues. Use size_t
to be efficient on all 32 and 64 bit architectures.
* Put quotes around the error string
Correct error statement. GNU G++ is picky about the string
following the error statement with ' character in it. It needs
to be enclosed with double quotes.
* Fix casting problem
Seeing these warnings with GNU G++ compiler
src/pal/src/sync/cs.cpp: In function ‘void CorUnix::InternalInitializeCriticalSectionAndSpinCount(PCRITICAL_SECTION, DWORD, bool)’:
src/pal/src/sync/cs.cpp:630:48: warning: converting to non-pointer type ‘SIZE_T {aka long unsigned int}’ from NULL [-Wconversion-null]
pPalCriticalSection->OwningThread = NULL;
^
src/pal/src/sync/cs.cpp: In function ‘void CorUnix::InternalLeaveCriticalSection(CorUnix::CPalThread*, _CRITICAL_SECTION*)’:
src/pal/src/sync/cs.cpp:880:43: warning: converting to non-pointer type ‘SIZE_T {aka long unsigned int}’ from NULL [-Wconversion-null]
pPalCriticalSection->OwningThread = NULL;
^
* Abstract optnone compiler attribute
GNU compiler doesn't support optnone attribute.
pal/src/exception/seh-unwind.cpp:449:77: warning: ‘optnone’ attribute directive ignored [-Wattributes]
* Set the aligned attribute for GNU compiler
* Make __rotl and __rotr functions portable
GNU compiler doesn't have an intrinsic for these. Open code them
using the provided implementation.
* Define deprecated attribute for gcc
* Add throw specifier for GCC
/usr/include/string.h:43:28: error: declaration of ‘void* memcpy(void*, const void*, size_t) throw ()’ has a different exception specifier
size_t __n) __THROW __nonnull ((1, 2));
|
|
|
|
* Add -skipcrossarchnative option to build.cmd
This allows you to skip building the cross-architecture native components.
* Add -skipcrossarchnative to build.sh
|
|
The former does extra work that the latter doesn't do, and they're equivalent when we know it contains a value, such as immediately after a HasValue check.
|
|
expression evaluation in ProjectN async stepping.
[tfs-changeset: 1732745]
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
* increase arm64 debug/checked timeout.
* Increase timeout only for corefx jobs.
|
|
tracing/eventsourcetrace/eventsourcetrace/eventsourcetrace.sh (#22328)
Marking this test `GCStressIncompatible` = True for now.
|
|
Move Jenkins off the Ubuntu.1604.Arm64.Open queue so it can be repurposed for Azure DevOps. This "Iron" queue should only be used by Jenkins.
|
|
Thanks to tons of help from Jan Vorlicek I found out that a huge
failure bucket in the CoreCLR Pri#1 tests is caused by incorrect
GC info for generic methods causing failures in catch clauses
where the exception type is a generic referring to a generic
parameter of the method.
As part of investigation of this issue I'm adding provisions for
dumping the GC info alongside methods to make the differences
between CPAOT and Crossgen easier to analyze.
For now I have only implemented the AMD64 variant of the GC info.
Thankfully it turns out that the same GC info is used by both ARM32
and ARM64 so that the only remaining debt is supplying a variant
of the new code for X86.
Thanks
Tomas
|
|
Use the same logic that's used in build.sh/build.cmd to lookup python:
first search for `python3`, then fall back to `python2` and finally to
`python`.
|
|
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
GC stress testing revealed a deficiency in GC ref map on ARM64 - we weren't
emitting the entry corresponding to the X8 return buffer address because
a recent refactoring changed its location in the transition block. This change
generalizes transition block by exposing a new function
GetOffsetOfFirstGCRefMapSlot()
that returns the same value as
GetOffsetOfArgumentRegisters()
except on ARM64 where it returns the offset of the X8 register in the
transition block (above the callee-saved registers and 8-byte padding i.e.
at position 13 corresponding to offset 0x68, or
GetOffsetOfArgumentRegisters() - 8).
Thanks
Tomas
|
|
* Add design document for the unloadability
|
|
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|
|
(#22305)
* Stop collecting source line information during a stacktrace for the Exception.Source property.
* Code review feedback
|
|
|
|
(#22312)
|
|
master-20190130.3, respectively (#22310)
|