Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support a few "shifted register" operations on Arm64 #75823

Merged
merged 10 commits into from
Sep 27, 2022

Conversation

tannergooding
Copy link
Member

This makes progress towards #68028

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 19, 2022
@ghost ghost assigned tannergooding Sep 19, 2022
@ghost
Copy link

ghost commented Sep 19, 2022

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

This makes progress towards #68028

Author: tannergooding
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@tannergooding
Copy link
Member Author

This has more substantial diffs:

coreclr_tests.run.Linux.arm64.checked.mch

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 490656348 (overridden on cmd)
Total bytes of diff: 490573808 (overridden on cmd)
Total bytes of delta: -82540 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

libraries.crossgen2.Linux.arm64.checked.mch:

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 28398328 (overridden on cmd)
Total bytes of diff: 28392964 (overridden on cmd)
Total bytes of delta: -5364 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

libraries.pmi.Linux.arm64.checked.mch:

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 62290396 (overridden on cmd)
Total bytes of diff: 62256676 (overridden on cmd)
Total bytes of delta: -33720 (-0.05 % of base)
    diff is an improvement.
    relative diff is an improvement.

libraries_tests.pmi.Linux.arm64.checked.mch:

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 147821448 (overridden on cmd)
Total bytes of diff: 147787264 (overridden on cmd)
Total bytes of delta: -34184 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Similar numbers exist for other platforms.

@tannergooding
Copy link
Member Author

Example diffs are things like:

- lsl     w1, w1, #8
- orr     w0, w0, w1
+ orr     w0, w0, w1,  LSL #8

The couple regressions that do show up are additional alignment bytes inserted, so not really regressions.

@tannergooding
Copy link
Member Author

Rebase onto main to pick up #76061

@tannergooding
Copy link
Member Author

/azp run runtime-coreclr jitstress, runtime-coreclr gcstress0x3-gcstress0xc, Fuzzlyn

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@tannergooding
Copy link
Member Author

/azp run runtime-coreclr jitstress, runtime-coreclr gcstress0x3-gcstress0xc, Fuzzlyn

@azure-pipelines
Copy link

Azure Pipelines successfully started running 3 pipeline(s).

@tannergooding
Copy link
Member Author

gcstress failures are unrelated arm32/x86 failures (all new code is under #ifdef TARGET_ARM64) and a case of a timeout that only repro'd 1/2 retries.

jitstress failures are related to the new disasm checks and are being resolved by #76202

@tannergooding
Copy link
Member Author

This should be ready for review, CC. @dotnet/jit-contrib

src/coreclr/jit/lowerarmarch.cpp Outdated Show resolved Hide resolved
src/coreclr/jit/lowerarmarch.cpp Outdated Show resolved Hide resolved
@tannergooding
Copy link
Member Author

Applied the formatting patch/squashed the applied fixes

src/coreclr/jit/lowerarmarch.cpp Outdated Show resolved Hide resolved
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Copy link
Member

@EgorBo EgorBo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, nice diffs! and thanks @SingleAccretion for code review 🙂

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants