Stephen Toub [Mon, 21 Aug 2017 17:38:32 +0000 (13:38 -0400)]
Merge pull request #13483 from dotnet-maestro-bot/master-UpdateDependencies
Update CoreClr, CoreFx to preview2-25621-02, preview2-25621-02, respectively (master)
Jarret Shook [Mon, 21 Aug 2017 16:10:57 +0000 (09:10 -0700)]
Merge pull request #12489 from jashook/unix_x64_and_arm64_fasttailcall_fix
[Unix x64|Arm64] Correct canfastTailCall decisions
dotnet-maestro-bot [Mon, 21 Aug 2017 13:32:54 +0000 (06:32 -0700)]
Update CoreClr, CoreFx to preview2-25621-02, preview2-25621-02, respectively
Pat Gavlin [Sat, 19 Aug 2017 13:43:06 +0000 (06:43 -0700)]
Merge pull request #12892 from pgavlin/LivenessDCE
Improve DCE in LIR liveness.
Sergey Andreenko [Sat, 19 Aug 2017 03:50:13 +0000 (20:50 -0700)]
delete unused return argument (#13468)
Andrew Au [Sat, 19 Aug 2017 03:04:37 +0000 (20:04 -0700)]
Rename System.Threading.Thread.m_ManagedThreadId to System.Threading.Thread._ManagedThreadId to align with CoreRT implementation (#13473)
Rename System.Threading.Thread.m_ManagedThreadId to System.Threading.Thread._ManagedThreadId to align with CoreRT implementation
Noah Falk [Sat, 19 Aug 2017 00:59:22 +0000 (17:59 -0700)]
Merge pull request #13392 from noahfalk/tiered_jit_fix_tests
Make unit tests run clean with tiered compilation
Wes Haggard [Fri, 18 Aug 2017 23:08:48 +0000 (16:08 -0700)]
Merge pull request #13472 from dotnet/revert-13464-reimport_rhel6_test_change
Revert "Re-port test project changes from release/2.0.0 to master"
José Rivero [Fri, 18 Aug 2017 21:19:17 +0000 (14:19 -0700)]
`perf.groovy` updates. (#13465)
- Increase how long performance artifacts are kept.
- Added an extra step to move files to be archived into a different folder.
Pat Gavlin [Mon, 17 Jul 2017 16:55:36 +0000 (09:55 -0700)]
Improve DCE in liveness.
In particular:
- Rather than only removing dead code as part of dead store removal,
remove all side-effect-free nodes that either do not produce a value
or produce a value that is unused.
- When optimizing, set `fgStmtRemoved` in order to indicate that tracked
lclVar uses or defs have been removed and liveness may need to be
recalculated. Previously this flag was only set upon eliminating a
dead store.
Andy Ayers [Fri, 18 Aug 2017 20:46:32 +0000 (13:46 -0700)]
JIT: extend gc descriptor for ppp quirked local struct (#13438)
When we expand the size of a local for the ppp quirk, also expand
the size of its gc descriptor, and mark the new "fields" as non-gc.
Fixes #13407.
Wes Haggard [Fri, 18 Aug 2017 20:00:50 +0000 (13:00 -0700)]
Merge pull request #13439 from dotnet-maestro-bot/master-UpdateDependencies
Update CoreClr, CoreFx to preview2-25618-04, preview2-25618-02, respectively (master)
Jan Kotas [Fri, 18 Aug 2017 19:54:02 +0000 (12:54 -0700)]
Revert "Re-port test project changes from release/2.0.0 to master (#13464)"
This reverts commit
7a386da8fc7067978a880445555942ccc6343be8.
smile21prc [Fri, 18 Aug 2017 17:49:52 +0000 (10:49 -0700)]
Re-port test project changes from release/2.0.0 to master (#13464)
Re-port test project changes from release/2.0.0 to master
Joseph Tremoulet [Fri, 18 Aug 2017 16:25:31 +0000 (12:25 -0400)]
Merge pull request #13314 from JosephTremoulet/loops
Lay out loop bodies contiguously
Michelle McDaniel [Fri, 18 Aug 2017 15:47:47 +0000 (08:47 -0700)]
Merge pull request #13459 from adiaaida/updatePgoCounts
Update optdata in master to version
20170817-0120
Michelle McDaniel [Fri, 18 Aug 2017 15:42:45 +0000 (08:42 -0700)]
Update optdata in master to version
20170817-0120
Michelle McDaniel [Fri, 18 Aug 2017 15:31:58 +0000 (08:31 -0700)]
Merge pull request #13456 from adiaaida/revertPGO
Revert "Update optdata in master to version
20170817-0120"
Michelle McDaniel [Fri, 18 Aug 2017 15:31:19 +0000 (08:31 -0700)]
Revert "Update optdata in master to version
20170817-0120"
This reverts commit
694eb48ae21ae79ca745fa3448be87d144ff912d.
Michelle McDaniel [Fri, 18 Aug 2017 15:24:28 +0000 (08:24 -0700)]
Merge pull request #13455 from adiaaida/updatePgoCounts
Update optdata in master to version
20170817-0120
Jonghyun Park [Fri, 18 Aug 2017 15:21:56 +0000 (00:21 +0900)]
Introduce COMPlus_GDBJitElfDump (#13448)
* Add COMPlus_GDBJitElfDump
* Fix Release build error
* Add flags in EEConfig
Michelle McDaniel [Fri, 18 Aug 2017 15:21:11 +0000 (08:21 -0700)]
Update optdata in master to version
20170817-0120
Bruce Forstall [Fri, 18 Aug 2017 15:11:45 +0000 (08:11 -0700)]
Merge pull request #13400 from sergign60/arm_build
[armel tizen] Fix for CoreRT issue https://github.com/dotnet/coreclr/issues/13195
jashook [Mon, 5 Jun 2017 21:48:51 +0000 (14:48 -0700)]
[Unix x64|Arm64] Correct canfastTailCall decisions
This will change how the fastTailCall decision is made for x64 unix and arm64.
Before this change the decision was based on the amount of incoming and outgoing
caller arguments like on Windows. This was incorrect on Unix x64 and Arm64
because one argument does not translate to one register or one stack slot use.
Before this change structs on Arm64 and Amd64 Unix could
pessimize when we could fastTailCall if they were engregisterable
and took more than one register.
This change also fixes several cases when determining to fastTailCall. It fixes
#12479 and will cause a no fastTailCalls decisions for case #12468.
In addition this change adds several regression cases for #12479 and #12468. It
includes more logging ofr fastTailCall decisions, including a new COMPlus
variable named COMPlus_JitReportFastTailCallDecisions, which can be toggled with
COMPlus_JitReportFastTailCallDecisions=1.
dotnet-maestro-bot [Fri, 18 Aug 2017 13:32:14 +0000 (06:32 -0700)]
Update CoreClr, CoreFx to preview2-25618-04, preview2-25618-02, respectively
Sergey Ignatov [Wed, 16 Aug 2017 18:30:06 +0000 (21:30 +0300)]
Fix for CoreRT issue https://github.com/dotnet/coreclr/issues/13195
Jan Kotas [Thu, 17 Aug 2017 21:22:32 +0000 (14:22 -0700)]
Merge pull request dotnet/corert#4340 from dotnet/nmirror
Merge nmirror to master
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
John Doe [Fri, 18 Aug 2017 04:41:54 +0000 (21:41 -0700)]
Typo (#13444)
Bruce Forstall [Fri, 18 Aug 2017 04:36:56 +0000 (21:36 -0700)]
Merge pull request #13445 from hseok-oh/ryujit/fix_13421
[RyuJIT/ARM32] Set carry bit: neg operation
Bruce Forstall [Fri, 18 Aug 2017 04:34:58 +0000 (21:34 -0700)]
Merge pull request #13442 from BruceForstall/EnableSuperPmiCoreDisAsmDiffs2
Enable SuperPMI asm diffs using CoreDisTools
smile21prc [Fri, 18 Aug 2017 03:58:14 +0000 (20:58 -0700)]
Port fixes in DotNet-CoreClr-Trusted-Linux.json to unblock coreclr (#13446)
* Port fixes in DotNet-CoreClr-Trusted-Linux.json to unblock coreclr official run.
Port this commit:
https://github.com/dotnet/coreclr/commit/
66d0fed853589e19336b6486f05f9218019ca4c9
* Remove extra new line at end of the file
Remove extra new line at end of the file
* Remove end line
Remove end line
Pat Gavlin [Tue, 18 Jul 2017 22:17:46 +0000 (15:17 -0700)]
Split fgComputeLifeLocal's subcases into separate functions.
There are three cases that are relevant here:
- Defs of tracked locals
- Uses of tracked locals
- Appearances of untracked locals
Each of these cases has been moved into its own function.
Hyeongseok Oh [Fri, 18 Aug 2017 02:50:27 +0000 (11:50 +0900)]
[RyuJIT/ARM32] Set carry bit: neg operation
Set carry bit when we generate ARM32 code for neg operation.
Bruce Forstall [Fri, 18 Aug 2017 01:29:20 +0000 (18:29 -0700)]
Enable SuperPMI asm diffs using CoreDisTools
Change SuperPMI to dynamically load coredistools.dll on demand.
Roman Artemev [Fri, 18 Aug 2017 01:34:37 +0000 (18:34 -0700)]
Merge pull request #12632 from rartemev/issue_12464
Fix legacy backend crash on assert #12464
smile21prc [Fri, 18 Aug 2017 01:24:22 +0000 (18:24 -0700)]
Migrate Git clone from GitHub to VSO (#13430)
* Migrate Git clone from GitHub to VSO
Migrate Git clone from GitHub to VSO
* Correct var name
Correct var name
* Remove PB_ as they are unnecessary and confusing.
Remove PB_ as they are unnecessary and confusing.
* Add dependent vars.
Add dependent vars.
* Fix repo name.
Fix repo name.
noahfalk [Fri, 18 Aug 2017 00:39:49 +0000 (17:39 -0700)]
Fix more contract violations
Joseph Tremoulet [Tue, 8 Aug 2017 21:09:25 +0000 (17:09 -0400)]
Add perf test
Joseph Tremoulet [Thu, 17 Aug 2017 23:01:57 +0000 (19:01 -0400)]
Refactor loop identification into a class
This is mainly done to increase readability, as `optFindNaturalLoops`
had grown excessively large. It also facilitates re-using code to fix
up fallthrough, and skipping past CallFinally/BBJ_ALWAYS pairs rather
than aborting once they're found.
Joseph Tremoulet [Tue, 18 Jul 2017 14:32:54 +0000 (10:32 -0400)]
Lay out loop bodies contiguously
Rearrange basic blocks during loop identification so that loop bodies
are kept contiguous when possible. Blocks in the lexical range of the
loop which do not participate in the flow cycle (which typically
correspond to code associated with early exits using `break` or
`return`) are moved out below the loop when possible without breaking EH
region nesting. The target insertion point, when possible, is chosen to
be the first spot below the loop that will not break up fall-through.
Layout can significantly affect the performance of loops, particularly
small search loops, by avoiding the taken branch on the hot path,
improving the locality of the code fetched while iterating the loop, and
potentially aiding loop stream detection.
Resolves #9692.
Roman Artemev [Tue, 4 Jul 2017 19:53:31 +0000 (12:53 -0700)]
Fix legacy backend crash
Smile Wei [Thu, 17 Aug 2017 23:04:29 +0000 (16:04 -0700)]
Revert test part "Enable RedHat 6 in coreclr master (#13315)" to unblock CI.
This reverts commit
b2b5fef27a4cb68571549f2e19660f39bd76467b.
Victor "Nate" Graf [Thu, 17 Aug 2017 21:48:28 +0000 (14:48 -0700)]
Revert PR 13375 (#13436)
Roman Artemev [Thu, 17 Aug 2017 21:02:48 +0000 (14:02 -0700)]
Merge pull request #13073 from rartemev/add_minopts_scenario
Added perf and perf_minopts scenarios for legacy backend
Roman Artemev [Wed, 26 Jul 2017 23:07:24 +0000 (16:07 -0700)]
Add minopts scenario for Legacy backend
Joseph Tremoulet [Thu, 17 Aug 2017 19:03:25 +0000 (15:03 -0400)]
Merge pull request #13426 from JosephTremoulet/ConservativeConstant
Use conservative VN in CSE candidate const check
smile21prc [Thu, 17 Aug 2017 17:42:22 +0000 (10:42 -0700)]
Enable RedHat 6 in coreclr master (#13315)
* Enable RedHat 6 in coreclr master
Enable RedHat 6 in coreclr master.
This is identical as the approved PR to enable RedHat 6 in coreclr
release/2.0.0:
https://github.com/dotnet/coreclr/pull/13301
* Correct Rid to match /src/.nuget/dirs.props
Correct Rid to match /src/.nuget/dirs.props
* Update dockertag and add logic to detect RHEL6 in init-tools.sh
Update dockertag and add logic to detect RHEL6 in init-tools.sh
* Port changes from Release/2.0.0 to fix coreclr RHEL 6 official runs.
Port changes from Release/2.0.0 to fix coreclr RHEL 6 official runs.
* Remove empty quotes.
Remove empty quotes.
Bruce Forstall [Thu, 17 Aug 2017 17:39:22 +0000 (10:39 -0700)]
Merge pull request #13419 from wateret/fix-arm-lea-needless-mov
[RyuJIT/arm32] Fix LEA codegen
Carol Eidt [Thu, 17 Aug 2017 17:04:09 +0000 (10:04 -0700)]
Merge pull request #13198 from CarolEidt/LowerContain
Move containment analysis to 1st phase of Lowering
Jonghyun Park [Thu, 17 Aug 2017 16:01:26 +0000 (01:01 +0900)]
Support GDBJIT on NI/IL_STUBS (#13417)
* Support GDBJIT on NI/IL_STUBS
* Move tls_isSymReaderInProgress into gdbjit.cpp
Carol Eidt [Thu, 17 Aug 2017 15:00:24 +0000 (08:00 -0700)]
Merge pull request #13100 from sjsinju/currentInterval2
[RyuJIT/ARM32] Add additional unassigning if the currentInterval has TYP_DOUBLE
Joseph Tremoulet [Thu, 17 Aug 2017 14:09:24 +0000 (10:09 -0400)]
Use conservative VN in CSE candidate const check
The check in CSE is supposed to leave code alone that constant prop
(done by VN-based Assertion Prop) is going to handle, but since that
constant prop code only propagates based on conservative VN, the check
in CSE needs to likewise use conservative VN to determine what to skip,
or else neither phase will eliminate the redundancy.
Fixes #6234.
Eric StJohn [Thu, 17 Aug 2017 13:38:50 +0000 (06:38 -0700)]
Merge pull request #13406 from ericstj/updateDependencies
Update dependencies
Koundinya Veluri [Thu, 17 Aug 2017 07:05:21 +0000 (00:05 -0700)]
Fix AssemblyName(string) constructor's version parsing (#13373)
Fix AssemblyName(string) constructor's version parsing
Functional fix for https://github.com/dotnet/corefx/issues/22663
- Allow fewer version components
- Match .NET Framework behavior in several cases. Major and minor version must be specified for the version to be used.
- Used zero for unspecified build/revision. This is different from .NET Framework but the loader also behaves differently. Details are in code comments.
Hanjoung Lee [Thu, 17 Aug 2017 02:55:43 +0000 (11:55 +0900)]
[RyuJIT/arm32] Fix LEA codegen
Do not generate `mov` when src and dst are the same
when we generate code for LEA node.
Fix #13418
Stephen Toub [Thu, 17 Aug 2017 01:53:02 +0000 (21:53 -0400)]
Merge pull request #13409 from stephentoub/encoder_span
Add span-based overloads to Encoder/Decoder
noahfalk [Thu, 17 Aug 2017 01:08:27 +0000 (18:08 -0700)]
Fixes for code review feedback
Eric St. John [Wed, 16 Aug 2017 22:38:31 +0000 (15:38 -0700)]
Update coreclr tests to netcoreapp2.1
José Rivero [Thu, 17 Aug 2017 00:11:56 +0000 (17:11 -0700)]
`archiveSettings.addFiles` uses glob instead of path. (#13403)
- Files were not being archived after last changes.
Stephen Toub [Wed, 16 Aug 2017 23:19:17 +0000 (19:19 -0400)]
Add span-based overloads to Encoder/Decoder
jp2masa [Wed, 16 Aug 2017 22:53:56 +0000 (23:53 +0100)]
Added BinaryWriter Span-based APIs (#13378)
dotnet-maestro-bot [Wed, 16 Aug 2017 13:37:35 +0000 (06:37 -0700)]
Update CoreClr, CoreFx to preview2-25616-01, preview2-25616-02, respectively
Mike McLaughlin [Wed, 16 Aug 2017 22:35:38 +0000 (15:35 -0700)]
Fixed Android AMD64 build. (#13402)
Jonghyun Park [Wed, 16 Aug 2017 22:23:44 +0000 (07:23 +0900)]
Introduce FEATURE_GDBJIT_FRAME feature (#13283)
Stephen Toub [Wed, 16 Aug 2017 21:09:29 +0000 (17:09 -0400)]
Add Span-based {Try}Parse methods to primitive types (#13389)
* Add Span-based {Try}Parse methods to primitive types
Adds Parse and TryParse methods to Boolean, Byte, Double, Int16, Int32, Int64, SByte, Single, UInt16, UInt32, UInt64, and Decimal.
* Address PR feedback
- Make delegation between overloads as consistent as possible across the primitive types: Boolean, SByte/Byte, Int16/UInt16, and Single/Double were doing it one way, whereas Decimal, Int32/UInt32, and Int64/UInt64 were doing it another way (most of this inconsistency was preexisting this PR, but my previous commit doubled-down on the inconsistency). Changed the former to be like the latter.
Carol Eidt [Tue, 1 Aug 2017 00:41:13 +0000 (17:41 -0700)]
Move Containment Analysis to Lowering
- Ensure that the only changes to child nodes are the specification of srcCandidates
(i.e. the register requirements of the parent/consumer)
- Since this now occurs before redoing dataflow, we don't have complete information on
what lclVars are containable. To mitigate this:
- In `TreeNodeInfoInit()`, if a lclVar is marked `isRegOptional` but is now untracked,
change it to be contained.
- Mark decomposed/promoted fields of long params as `lvDoNotEnregister`
- Ensure that any new code added after `Lowering` is analyzed as necessary.
- When a value becomes unused, it is no longer contained. (This is needed now because liveness runs after containment analysis)
- Add dumping of nodes deleted as unused.
- Need to set byteable regs, as needed on contained RMW memory ops.
Jarret Shook [Wed, 16 Aug 2017 18:13:13 +0000 (11:13 -0700)]
Merge pull request #13208 from jashook/add_gc_stress_arm_metadata
Add arm32 GCStress excludes
Jarret Shook [Wed, 16 Aug 2017 18:10:37 +0000 (11:10 -0700)]
Merge pull request #13377 from jashook/arm64_alignment
Restrict alignment assert to only if volatile
jashook [Tue, 15 Aug 2017 15:57:54 +0000 (08:57 -0700)]
Restrict alignment assert to only if volatile
Stephen Toub [Wed, 16 Aug 2017 17:54:51 +0000 (13:54 -0400)]
Fix AsyncValueTaskMethodBuilder.Create for corert (#13396)
I changed AsyncValueTaskMethodBuilder.Create to avoid calling the nop AsyncTaskMethodBuilder.Create, but it turns out on corert that AsyncTaskMethodBuilder.Create actually does additional work if the debugger is attached, so we should still call it there.
Matt Mitchell [Wed, 16 Aug 2017 16:08:28 +0000 (09:08 -0700)]
Don't run arm64 on every commit (#13384)
We cannot keep up currently
@jashook PTAL
jashook [Thu, 3 Aug 2017 18:29:32 +0000 (11:29 -0700)]
Add arm32 GCStress excludes
Stephen Toub [Wed, 16 Aug 2017 14:25:16 +0000 (10:25 -0400)]
Merge pull request #13390 from stephentoub/avtmbcreate
Remove overhead from AsyncValueTaskMethodBuilder.Create
noahfalk [Wed, 16 Aug 2017 05:13:01 +0000 (22:13 -0700)]
Make unit tests run clean with tiered compilation
A handful of tests are optimization sensitive and needed to be disabled because tiered jitting doesn't optimize right away.
There was also a shutdown timing issue where the tiered jitting background compilation thread would continue calling into the JIT after the JIT was shutdown. This manifested as an error writing to the jit log after the stream had been closed.
José Rivero [Wed, 16 Aug 2017 04:11:36 +0000 (21:11 -0700)]
Small perf infrastructure changes (#13325)
- Move xUnit Perf Api output files to a folder `Logs` under sandbox
- Made necessary changes to `perf.groovy` to archive artifacts
- Added a switch -outputdir to the run-xunit-perf* scripts
- Enable running all CoreClr scenarios (JitBench & IlLink) despite failure
- Move sandbox to bin folder
- Use the default output dir: `.\bin\sandbox`
Stephen Toub [Wed, 16 Aug 2017 02:56:24 +0000 (22:56 -0400)]
Remove overhead from AsyncValueTaskMethodBuilder.Create
AsyncValueTaskMethodBuilder.Create wraps an AsyncTaskMethodBuilder and thus initializes its _methodBuilder field to AsyncTaskMethodBuilder.Create. But even though AsyncTaskMethodBuilder.Create just returns default(AsyncTaskMethodBuilder), a non-trivial amount of code is being generated into AsyncValueTaskMethodBuilder.Create, even though it's really just returning default(AsyncValueTaskMethodBuilder). So while the "right" thing to do is to call Create, this commit just skips it and adds a comment that if AsyncTaskMethodBuilder.Create ever becomes more than a nop, various callers would need to be updated as well (though I doubt we'd ever change it).
This reduces the overhead of a nop ValueTask-returning async method by ~30%.
sjsujinkim [Wed, 16 Aug 2017 02:00:10 +0000 (11:00 +0900)]
Fix formatting
Tarek Mahmoud Sayed [Wed, 16 Aug 2017 01:49:16 +0000 (18:49 -0700)]
Get sort version dynamically and expose ICU version from native component (#13382)
* Support ICU Version
* Add the assert
sjsujinkim [Wed, 16 Aug 2017 01:44:08 +0000 (10:44 +0900)]
Fix genIsValidDoubleReg not found
sjsujinkim [Fri, 28 Jul 2017 08:56:12 +0000 (17:56 +0900)]
[RyuJIT/ARM32] Add additional unassignToInterval if the currentInterval is TYP_DOUBLE
Mike McLaughlin [Wed, 16 Aug 2017 00:33:04 +0000 (17:33 -0700)]
Implement out of context stack unwinder (#13302)
Implement out of context stack unwinder
Decode the eh frame info found in the in-memory module image
and pass it back to the remote libunwind8 to do the unwind.
Added remote-unwind.cpp for all the out of context unwind code.
Added an all managed threads option -all the "clrstack" (sos ClrStack).
The IDebugDataTarget4 feature needs to be enabled for OS X.
Add libunwind license notice to third party notices file.
Victor "Nate" Graf [Tue, 15 Aug 2017 23:56:45 +0000 (16:56 -0700)]
Add enforcepgo to official builds (#13375)
Bruce Forstall [Tue, 15 Aug 2017 17:07:42 +0000 (10:07 -0700)]
Merge pull request #13029 from mikedn/disp-bbid
Dump basic block ids instead of pointers
Vance Morrison [Tue, 15 Aug 2017 16:18:50 +0000 (09:18 -0700)]
Use dashes for build options (#13353)
* Fix IndexOutOfRangeException in PayloadNames property
If you pass an null payload using Write<T>, and in the EventListener then call PayloadNames, it
will throw an IndexOutOfRangeException. It should just return null. This fixes this.
* To be consistant with the other build.cmd files use - for options
* Update docs to track change in option convention
* Updated Unix script to use - for options.
* Fix build break
* Fix Whitespace (review feedback)
* Another fix
gbalykov [Tue, 15 Aug 2017 16:15:47 +0000 (19:15 +0300)]
Allocate FileMappingImmutableData::szFileName and CFileProcessLocalData::unix_filename strings dynamically (#13374)
Joseph Tremoulet [Tue, 15 Aug 2017 14:08:23 +0000 (10:08 -0400)]
Merge pull request #13366 from mikedn/imp-init-array
Do not use GT_INDEX in impInitializeArrayIntrinsic
Andy Ayers [Tue, 15 Aug 2017 05:42:43 +0000 (22:42 -0700)]
JIT: fix CHK/REL diff from fgRetypeImplicitByRefArgs (#13372)
Make sure some important code is not under DEBUG.
Fixes #13358.
Jan Kotas [Tue, 15 Aug 2017 05:03:16 +0000 (22:03 -0700)]
Skip null checks for implicit byref argument references (#13355)
```
struct S
{
public int _a;
public int _b;
public int _c;
public int _d;
};
static void foo(S s)
{
bar(ref s._b);
}
```
Before:
```
sub rsp, 40
cmp dword ptr [rcx], ecx // unnecessary
add rcx, 4
call My:bar(byref)
nop
add rsp, 40
ret
```
After:
```
sub rsp, 40
add rcx, 4
call My:bar(byref)
nop
add rsp, 40
ret
```
Vance Morrison [Tue, 15 Aug 2017 02:25:32 +0000 (19:25 -0700)]
Add full URL to the FileVersion information created a build time (#13352)
* Tag dlls with the URL of the github commit
* Fix name of BuildVersion file for non-official builds
This fix does something very safe (only overrides the name of the buildVersionFile with
a name from the OfficialBuildId variable if that variable is non-empty.
This is importnat because otherwise is that the override ALWAYS kicks in and sometimes
corrupts the name, which has the effect of throwning the information in the BuildVersionFile
(namely the version number) out
* Update to latest build tools.
Shiming Ge [Tue, 15 Aug 2017 02:16:05 +0000 (10:16 +0800)]
Merge pull request #13310 from shimingsg/v-shige/add-perftc-0810
add perf test cases(GCSmall, GCHandle, LOHSmooth) to coreclr
Shiming Ge [Tue, 15 Aug 2017 02:15:22 +0000 (10:15 +0800)]
Merge pull request #13334 from shimingsg/v-shige/add-perftc-0811
add perf test cases(MicroBench, MemoryPressure, etc) to coreclr
Shiming Ge [Tue, 15 Aug 2017 02:14:51 +0000 (10:14 +0800)]
Merge pull request #13362 from shimingsg/v-shige/add-perftc-0814-2
add perf test cases(ServerSpin, ToBoxOrNot, etc.) to coreclr
Bruce Forstall [Tue, 15 Aug 2017 00:42:38 +0000 (17:42 -0700)]
Merge pull request #13328 from hseok-oh/ryujit/tmp_high_cost
[RyuJIT/ARM32] TmpVar for expensive struct argument
Ahson Ahmed Khan [Tue, 15 Aug 2017 00:18:05 +0000 (17:18 -0700)]
Fix race condition for some threading tests using GC.KeepAlive (#13351)
* Fix race condition for some threading tests using GC.KeepAlive
* Removing unnecessary change to null array test
* Removing extra space
Wes Haggard [Mon, 14 Aug 2017 22:35:52 +0000 (15:35 -0700)]
Merge pull request #13365 from dotnet-maestro-bot/master-UpdateDependencies
Update CoreClr, CoreFx to preview2-25614-02, preview2-25614-02, respectively (master)
Bruce Forstall [Mon, 14 Aug 2017 22:16:44 +0000 (15:16 -0700)]
Merge pull request #13364 from hqueue/arm/ryujit/issue_13363_regression_of_13190
[RyuJIT/ARM32] Fix regression
Mike Danes [Tue, 25 Jul 2017 12:00:11 +0000 (15:00 +0300)]
Dump basic block ids instead of pointers
Igor Kulaychuk [Mon, 14 Aug 2017 21:30:56 +0000 (00:30 +0300)]
[Linux/ARM] Fix managed breakpoints (#13316)
* [Linux/ARM] Fix managed breakpoints
This commit introduces the following changes in order to enable
ICorDebug-based debuggers to use breakpoints on ARM Linux:
* Use 0xde01 as breakpoint instruction on ARM Linux.
ARM reference recommends to use 0xdefe as a breakpoint instruction,
but Linux kernel generates SIGILL for this instruction.
The 0xde01 instruction causes the kernel to generate SIGTRAP.
* Fix SIGTRAP handling on ARM Linux.
Unlike x86, when SIGTRAP happens on ARM Linux, the PC points
at the break instruction. But the rest of the code expects
that it points to an instruction after the break,
so we adjust the PC at the start of HandleHardwareException().
* Enable ARM single stepping for PAL.
Handle single stepping for PAL path the same way as for non-PAL path.
Also enable ArmSingleStepper executable buffer by allocating it
from system global loader executable heap.
* Hande ARM single step only when debugger is attached, fix comments and code style
* Pass existing Thread object to HandleArmSingleStep
Bruce Forstall [Mon, 14 Aug 2017 17:30:38 +0000 (10:30 -0700)]
Merge pull request #13350 from BruceForstall/FixVSO478352
Fix double-indirect p/invoke call generation
Alois-xx [Mon, 14 Aug 2017 17:26:28 +0000 (19:26 +0200)]
Added SetThreadDescription to set the unmanaged thread name (#12593)
* Added SetThreadDescription to set the unmanaged thread name as well when a managed thread name was set.
This will show up in future debuggers which know how to read that information or in ETW traces in the Thread Name column.
* use printf instead of wprintf which exists on all platforms.
* Removed printf
Ensure that GetProceAddress is only called once to when the method is not present.
Potential perf hit should be negligible since setting a thread name can only happen once per managed thread.
* - Moved SetThreadName code to winfix.cpp as proposed
- Finalizer and threadpool threads get their name
- GCToEEInterface::CreateBackgroundThread is also named
- but regular GC threads have no name because when I included utilcode.h things did break apart.
* Fix for data race in g_pfnSetThreadDescription
* Fix string literals on unix builds.
* Fixed nits
Settled thread name on ".NET Core ThreadPool"