Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Update to latest changes from master branch#13987

Merged
davidwrighton merged 869 commits intodotnet:dev/defaultintffrom
davidwrighton:update_from_master
Sep 14, 2017
Merged

Update to latest changes from master branch#13987
davidwrighton merged 869 commits intodotnet:dev/defaultintffrom
davidwrighton:update_from_master

Conversation

@davidwrighton
Copy link
Copy Markdown
Member

Update from latest changes to master

jkotas and others added 30 commits August 28, 2017 14:43
When users trigger perf runs for PRs, the alias used to submit in
submission-metadata.json should be that user's email. We should only
use dotnet-bot for official runs.
User the PR trigger email for benchview submit
… performing tail recursion optimization

[tfs-changeset: 1672052]
(previous CS  is #1672052)

[tfs-changeset: 1672055]
Tag Pri1+ tests as such in the ARM32/64 LST files.
SuperPMI replay: fix enviroment variables initialization.

If we have mch with mc files with different ENV_variables, we ran them
with the set for the first mc.
Perf smoke tests have been broken since dotnet#13638. The issue appears to be
that `ghprbTriggerAuthorEmail` is an empty string in most cases, so its
value is not expanded.

The attempted fix is to use `ghprbPullAuthorEmail` instead, which is
always defined (since there's always an owner to a PR).
Remove setting gtRegNum of GT_FIELD_LIST in LowerArg()
gtRegNum of GT_FIELD_LIST is reset in NewPutArg()
Fix reg count for double arg reg

Fix #13622
The override needs to be before the Build.Common.props import, because BuildVersion.targets is in Build.Common.props and it's what's responsible for importing BuildVersionFile if it exists.
Loop construction has a check for the case that an in-loop block has a
`bbNext` block that is a new block but not visited in the loop flow
walk; make sure that check fires for `entry` as well as other loop
blocks.

Fixes #13507.
…eldlist

[RyuJIT/ARM32] Fix setting register of GT_FIELD_LIST for long
- CoreClr Scenario and CoreClr IlLink jobs were aliased on CI.
[RyuJIT/armel] Fix double reg arg passing
Essentially, just do what AMD64 was doing in fgMorphTailCall()
and LowerTailCallViaHelper(). All the VM support for tailcall
via helper is already there (and used by legacy backend).

Fixes #11844, #11836
Fix dir.props BuildVersionFile override
* Fix free_stack macro for ARM

free_stack shouldn't contain unwinder annotations for stack adjustment

* callsignalhandlerwrapper: improve unwinding

For linux: make CallSignalHandlerWrapper's frame sigtramp frame
for gdb and lldb:
- Save all registers on stack
- Add sigreturn syscall after call of signal_handler_worker

It provides ability for gdb and lldb unwind frame with invalid pc
(due to jump to invalid addresss).

For non linux:
- Save r11 on stack as it also can be used as frame pointer
- Set instruction set flag (thumb / arm) for saved pc. It is
  necessary for gdb because it uses lr's lsb to determine
  function mode
Change dstCount, internalcount for GT_NULLCHECK on ARM32
Remove calling TreeNodeInfoInitIndir() for GT_NULLCHECK on ARM32, ARM64
Fix comment for TreeNodeInfoInitIndir
Instead of looking at the verifier type for a local (which is currently never
set for ref classes in CoreCLR), use the new utilties for finding ref type
class handles.

Since the utility works on all tree types, also remove the restriction that
the tree must be a local.

Closes #13555.
Fix to be used --xunitOutputPath in runtest.sh
This option was useless because xunitOutputPath was always set as default
The flag is not implemented anywhere and is completely ignored. Remove
it form various help notices too.

Fixes #12035
Mike McLaughlin and others added 26 commits September 12, 2017 12:41
Fix core dump generation on Centos.

Issue #13764
If the only use of a box is in a call to Type:GetType, remove the box and
obtain the type directly. Get the handle needed for obtaining the type from
the newobj call in the original box, via a new box removal option.

Also add some logging to the type optimizations done in morph.

Closes #13187.
…otnet#13868)

Remove redundant  zero-initialization of struct temps with GC fields.

Structs with GC pointer fields are fully zero-initialized in the prolog if compInitMem is true.
Therefore, we don't need to insert zero-initialization for the result of newobj or for inlinee locals
when they are structs with GC pointer fields and the basic bock is not in a loop.
This change fixes a bug that causes crashes when secure delegate is
invoked on ARM32 with legacy codegen. Register R4 was loaded with
indirection slot address and immediatelly marked as trashed, so the JIT
compiler reused it before the call that was supposed to have that value
in R4.
The fix was to move the reg trashing after the call.
There was also an incorrect marking of that address as EA_PTRSIZE
while it should be EA_BYREF, so I've fixed that too.
…dotnet#13733)

* [RyuJIT/ARM32] Implement CreateDictionaryLookupHelper only via run-time helper

Implement CreateDictionaryLookupHelper only via run-time helper

* Add assertion for checking CORINFO_USEHELPER
* Re-implemented the ecvt function.

Instead of leveraging snprintf, re-implement the ecvt function according to the paper: https://www.cs.indiana.edu/~dyb/pubs/FP-Printing-PLDI96.pdf

Note:
1. This commit won't fix any existing bug.
2. This is a raw implementation of the paper. The performance on Linux only gain 10%. We could tune the performance further.

Fix #10651

* Resolve a cross platform header file issue.

Fix #10651

* Fixed a minor bug. Improved the performance.

Fix #10651

* Modified code according to code review feedback.

This commit fixed most of the issue found in code review. However, some of the feedback may not be involved due to either little performance improvement or need a POC.

Fix #10651

* Try to fix constexpr compile error on Windows.

Fix #10651

* Fixed a potential overflow bug in BigNum::Compare.

Fix #10651

* Improved multiply 10 operation.

Use shift and add operation to replace actual multiply operation.

Fix #10651

* Remove old _ecvt function.

Fix #10651

* Documented the reason why we do not need m+ and m-.

Fix #10651

* Changed exp > 0 to exp != 0 to remove any confusion.

exp should fall in 1 ~ 2046 for normalized value. Denormalized value has exp = 0.

Fix #10651

* Disable the _ecvt tests.

Fix #10651

* Removed _ecvt tests.

Fix #10651

* Re-implemented LogBase2.

Fix #10651

* Use DWORD and DWORD64 for _BitScanReverse and _BitScanReverse64

Fix #10651

* Fixed x86 compile issue for _BitScanReverse64

x86 does not support _BitScanReverse64 so we have to add additional shift operations to handle it.

Fix #10651

* Implemented BitScanReverse64 and BitScanReverse in pal.h

Fix #10651

* Remove the confusion comment which is unrelated to BitScanReverse.

Fix #10651

* Introduced wmemset to enhance the perf for 0.0

Fix #10651

* Improved the performance of converting 0.0.

Fix #10651

* Renamed ecvt to DoubleToNumberWorker.

Fix #10651

* Updated code according to the code review feedback.

Fix #10651
…review1-25713-01, preview1-25712-02, master-20170912-0038, respectively (dotnet#13928)
Before the decision for numProcs to run in parallel for runtests.sh
was based on _NPROCESSORS_ONLN which harware which attempts to save
power (eg arm(64)) this number may be < numProcs.
* Introduce FEATURE_GDBJIT_SYMTAB

This commit adds new feature FEATURE_GDBJIT_SYMTAB. When it's set
ELF file with symtab section will be generated for all JITed methods.

It helps lldb and gdb correctly unwind frames of JITed methods as they
can use assembly language inspection to determine location of saved
registers on stack.

* gdbjit symtab feature: use different symbols for each function in JITed code
This fix when parsing Hevrew dat e string formatted as dd/MM/yy. we didn't encounter the same on Windows before because default short date pattern on Windows is dd MMM yyyy which we can parse it successfully.
…tstress_NYI_addr

[RyuJIT/ARM32] Add ADDR and fixup return type correctly
This allows inlining Span.Length accross versioning boundaries in R2R images. We are leaking the Span implementation details already because the Span indexer is treated as intrinsic. Marking a few more trivial methods as non-versionable should not do any future harm.
Before this fix, corerun would AV on certain invalid paths e.g.: corerun test.exe\
This change adds marking native executables that coreclr build produces
(corerun, coreconsole, crossgen, ilasm, ildasm, crashdump) to using the
paxctl tool to allow them running on systems with PAX configured so that
creating executable memory mappings by applications is prohibited.
Fix potentially unused variable in lb arm
@davidwrighton
Copy link
Copy Markdown
Member Author

@dotnet-bot test this please

@davidwrighton davidwrighton merged commit a6c824e into dotnet:dev/defaultintf Sep 14, 2017
@davidwrighton davidwrighton deleted the update_from_master branch February 13, 2019 21:24
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.