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

JIT: fix bug in jump threading #85942

Merged
merged 1 commit into from
May 9, 2023
Merged

Conversation

AndyAyersMS
Copy link
Member

Verify that the purported dominator of a block to be jump threaded dominates all of the block's predecessors.

This will initially be true (modulo some odd cases with finally continuations), but if we've jump threaded through the dominator it may not remain true as we do not update dominators when optimizing.

Fixes #85892.

Verify that the purported dominator of a block to be jump threaded dominates
all of the block's predecessors.

This will initially be true (modulo some odd cases with finally continuations),
but if we've jump threaded through the dominator it may not remain true as
we do not update dominators when optimizing.

Fixes dotnet#85892.
@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 May 8, 2023
@ghost ghost assigned AndyAyersMS May 8, 2023
@ghost
Copy link

ghost commented May 8, 2023

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

Issue Details

Verify that the purported dominator of a block to be jump threaded dominates all of the block's predecessors.

This will initially be true (modulo some odd cases with finally continuations), but if we've jump threaded through the dominator it may not remain true as we do not update dominators when optimizing.

Fixes #85892.

Author: AndyAyersMS
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@AndyAyersMS
Copy link
Member Author

@jakobbotsch PTAL
cc @dotnet/jit-contrib

7 or so methods with diffs. Did not check to see if any of them actually were creating bad code.

@AndyAyersMS
Copy link
Member Author

You might wonder how a fix for a possibly incorrect dominator is to make even more dominance queries. So this may not a final or complete fix.

I will keep thinking about what sorts of data we can actually trust....

@AndyAyersMS
Copy link
Member Author

/azp run Fuzzlyn

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@AndyAyersMS
Copy link
Member Author

Fuzzlyn failures seem unrelated.

// Assertion failed 'inVarToRegMap[varIndex] == REG_STK' in 'Program:Main(Fuzzlyn.ExecutionServer.IRuntime)' during 'LSRA allocate' (IL size 135; hash 0xade6b36b; FullOpts)

@AndyAyersMS AndyAyersMS merged commit 66b8aaf into dotnet:main May 9, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Jun 8, 2023
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.

JIT: Incorrect redundant branch opts example
2 participants