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

Investigate the heuristics for creating DummyDef in LSRA #71539

Open
kunalspathak opened this issue Jul 1, 2022 · 2 comments
Open

Investigate the heuristics for creating DummyDef in LSRA #71539

kunalspathak opened this issue Jul 1, 2022 · 2 comments
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone

Comments

@kunalspathak
Copy link
Member

kunalspathak commented Jul 1, 2022

Today, if there is a CSE candidate has definition in the middle of deeply nested loop, we end up adding DummyDef refpositions in blocks that doesn't have its uses and that leads to spilling/reloading such variables without need. This happens because of the way we choose the predecessor of such blocks and we should revisit to see if we can also accommodate the variable location where it is defined instead of just checking the block's flow. Relevant discussion in #70271 (comment)

category:design
theme:register-allocator
skill-level:expert
cost:small
impact:medium

@kunalspathak kunalspathak added this to the 8.0.0 milestone Jul 1, 2022
@kunalspathak kunalspathak self-assigned this Jul 1, 2022
@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@SingleAccretion SingleAccretion added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jul 1, 2022
@ghost
Copy link

ghost commented Jul 1, 2022

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

Issue Details

Today, if there is a CSE candidate has definition in the middle of deeply nested loop, we end up adding DummyDef refpositions in blocks that doesn't have its uses and that leads to spilling/reloading such variables without need. This happens because of the way we choose the predecessor of such blocks and we should revisit to see if we can also accommodate the variable location where it is defined instead of just checking the block's flow. Relevant discussion in #70271 (comment)

Author: kunalspathak
Assignees: kunalspathak
Labels:

area-CodeGen-coreclr

Milestone: 8.0.0

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

No branches or pull requests

2 participants