Skip to content

Extraction of non-loop blocks during loop recognition uses questionable condition #85550

Open
@BruceForstall

Description

@BruceForstall

As discussed here, there is a check in MakeCompactAndFindExits that seems questionable, at best:

if (!BasicBlock::sameEHRegion(previous, nextLoopBlock) || !BasicBlock::sameEHRegion(previous, moveAfter))

It tries to avoid creating illegal EH regions by preventing moving blocks. But it doesn't properly handle region adjacency where moving a range of blocks is legal. E.g., a range abutting a try begin.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions