Skip to content

arm64 osx: support byte sizes from lowering to codegen. - #43024

Merged
sandreenko merged 6 commits into
dotnet:masterfrom
sandreenko:Arm64Apple-Jit-Part3
Nov 17, 2020
Merged

arm64 osx: support byte sizes from lowering to codegen.#43024
sandreenko merged 6 commits into
dotnet:masterfrom
sandreenko:Arm64Apple-Jit-Part3

Conversation

@sandreenko

@sandreenkosandreenko commented Oct 5, 2020

Copy link
Copy Markdown
Contributor

Keep precise byte sizes and offsets for call arguments from lowering to codegen. It is a continuation of #42503.

Contributes to #41130.

No diffs.

@sandreenkosandreenko added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Oct 5, 2020
@sandreenko
sandreenko marked this pull request as ready for review October 30, 2020 19:45
Comment threadsrc/coreclr/src/jit/compiler.h Outdated

@sandreenkosandreenkoOct 30, 2020

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

it could be confusing when we have arguments that require more than a pointer size, for example:
call(arguments to occupy registers, byte a, struct with 16 bytes alignment b)
in this example we will have such offsets on arm64 not-apple:

a - offset 0, GetStackByteSize() = 8,
b - offset 16, GetStackByteSize() = 16.

so the space between offset 1 and 8 is padding for a, the space between 8 and 16 is an alignment for b.

Comment threadsrc/coreclr/src/jit/lsraxarch.cpp Outdated

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

size was putArgStk->gtNumSlots * TARGET_POINTER_SIZE where TARGET_POINTER_SIZE % 2 == 0 so that condition was always false.

@sandreenko

Copy link
Copy Markdown
ContributorAuthor

PTAL @dotnet/jit-contrib

@sandreenko

Copy link
Copy Markdown
ContributorAuthor

ping @dotnet/jit-contrib

@echesakov
echesakov self-requested a review November 10, 2020 01:07

@CarolEidtCarolEidt left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It's been a while since I reviewed the previous change; I just have a few questions and comments for now.

Comment threadsrc/coreclr/src/jit/lclvars.cpp Outdated
Comment threadsrc/coreclr/src/jit/gentree.h Outdated
Comment threadsrc/coreclr/src/jit/gentree.h Outdated
Comment threadsrc/coreclr/src/jit/gentree.h Outdated
@sandreenko

Copy link
Copy Markdown
ContributorAuthor

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@sandreenko

Copy link
Copy Markdown
ContributorAuthor

The PR was updated, the failures in stress modes are not relevant.

@CarolEidtCarolEidt left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM - it would be great if @echesakovMSFT could also re-review; there are a lot of somewhat tricky changes.

@echesakovechesakov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good, left some comments about code style

Comment threadsrc/coreclr/src/jit/codegenarm64.cpp Outdated
Comment threadsrc/coreclr/src/jit/codegenarmarch.cpp Outdated
Comment threadsrc/coreclr/src/jit/gentree.h Outdated
@sandreenko
sandreenko merged commit 552da07 into dotnet:masterNov 17, 2020
@sandreenko
sandreenko deleted the Arm64Apple-Jit-Part3 branch November 17, 2020 05:38
@sandreenkosandreenko mentioned this pull request Dec 2, 2020
3 tasks
@ghostghost locked as resolved and limited conversation to collaborators Dec 17, 2020
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR 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.

3 participants

@sandreenko@CarolEidt@echesakov