Skip to content

Conversation

@AndyAyersMS
Copy link
Member

In some unusual cases the last block of a loop might be in the middle of a handler region (say the loop backedge is in a catch, and the catch has alternate flow that exits the loop).

Make sure that we properly place the slow loop preheader into the same EH regions as the fast loop preheader.

Fixes #111344

In some unusual cases the last block of a loop might be in the middle of a
handler region (say the loop backedge is in a catch, and the catch has
alternate flow that exits the loop).

Make sure that we properly place the slow loop preheader into the same EH regions
as the fast loop preheader.

Fixes dotnet#111344
@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 14, 2025
@AndyAyersMS
Copy link
Member Author

@jakobbotsch PTAL
cc @dotnet/jit-contrib

I could not come up with a simple repro (issue was an OSR stress case in a libraries test run).

No diffs expected.

@AndyAyersMS
Copy link
Member Author

Linux unhappy, will have to dig in.

@AndyAyersMS
Copy link
Member Author

Some small diffs now that the placement in some EH cases is delegated to fgFindInsertPoint.

@AndyAyersMS AndyAyersMS merged commit 72a243b into dotnet:main Jan 15, 2025
107 of 109 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Feb 15, 2025
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.

Assertion failed 'i < BitSetTraits::GetSize(env)'

2 participants