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

Move ObjectAllocator phase to run right after inlining. #20377

Merged
merged 1 commit into from
Oct 13, 2018

Conversation

erozenfeld
Copy link
Member

This change will support object stack allocation for the following reasons:

  1. Objects should be allocated on the stack before struct promotion phase
    so that their fields have a chance to be promoted.
  2. Eventually object stack allocation will be performed in the same phase
    as inlining since inlining heuristics will need to be aware of object stack allocation
    opportunities.

I verified no x64 diffs with jit-diffs --frameworks --tests --pmi

@erozenfeld
Copy link
Member Author

@AndyAyersMS @echesakov @dotnet/jit-contrib PTAL

@erozenfeld
Copy link
Member Author

This is one of the steps listed in #20253

Copy link
Member

@AndyAyersMS AndyAyersMS left a comment

Choose a reason for hiding this comment

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

Just one small note.

src/jit/objectalloc.h Show resolved Hide resolved
This change will support object stack allocation for the following reasons:

1. Objects should be allocated on the stack before struct promotion phase
so that their fields have a chance to be promoted.
2. Eventually object stack allocation will be performed in the same phase
as inlining since inlining heuristics will need to be aware of object stack allocation
opportunities.

I verified no x64 diffs with jit-diffs --frameworks --tests --pmi
@erozenfeld erozenfeld force-pushed the ObjectAllocatorPhaseOrder branch from 77c1b44 to 4d4f05d Compare October 11, 2018 21:29
@erozenfeld
Copy link
Member Author

@dotnet-bot test Ubuntu arm Cross Checked Innerloop Build and Test
@dotnet-bot test Ubuntu arm Cross Checked no_tiered_compilation_innerloop Build and Test
@dotnet-bot test Ubuntu16.04 arm64 Cross Checked Innerloop Build and Test

@erozenfeld erozenfeld merged commit cb2d6ee into master Oct 13, 2018
@erozenfeld erozenfeld deleted the ObjectAllocatorPhaseOrder branch October 13, 2018 00:35
A-And pushed a commit to A-And/coreclr that referenced this pull request Nov 20, 2018
This change will support object stack allocation for the following reasons:

1. Objects should be allocated on the stack before struct promotion phase
so that their fields have a chance to be promoted.
2. Eventually object stack allocation will be performed in the same phase
as inlining since inlining heuristics will need to be aware of object stack allocation
opportunities.

I verified no x64 diffs with jit-diffs --frameworks --tests --pmi
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.

3 participants