Skip to content

JIT: Tail-merge robust crossJumpVictim selection#129141

Open
BoyBaykiller wants to merge 3 commits into
dotnet:mainfrom
BoyBaykiller:robust-crossJumpVictim
Open

JIT: Tail-merge robust crossJumpVictim selection#129141
BoyBaykiller wants to merge 3 commits into
dotnet:mainfrom
BoyBaykiller:robust-crossJumpVictim

Conversation

@BoyBaykiller

@BoyBaykiller BoyBaykiller commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Note: Currently includes #129092 which should be merged first

Previously, crossJumpVictim selection logic was dependent on the order of candidates which can lead to random diffs.

I removed the early out and added a tie-break which makes it order independent and sets the stage for a follow up zero-diff PR that processes all sets at once.
For the tie-break I used: predBlock->bbNum < crossJumpVictim->bbNum. This actually has few good diffs because it preferences away from BBF_NEEDS_GCPOLL blocks for some reason. I'd be nice to add that as a seperate heuristic instead of being implicitly encoded in the tie-break.

* don't early out
* make NoGcPoll preference explicit
@BoyBaykiller BoyBaykiller changed the title JIT: Robust crossJumpVictim JIT: Tail-merge robust crossJumpVictim Jun 8, 2026
@github-actions github-actions Bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jun 8, 2026
@BoyBaykiller BoyBaykiller changed the title JIT: Tail-merge robust crossJumpVictim JIT: Tail-merge robust crossJumpVictim selection Jun 9, 2026
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

Successfully merging this pull request may close these issues.

1 participant