Skip to content

Support for a method with an InlinedCallFrame and a reverse p/invoke transition is missing in the jit #55701

@davidwrighton

Description

@davidwrighton

Description

When fixing issue #45326 I disabled the ability of the JIT compiler to generate methods with both an inlined call frame and a reverse p/invoke transition with PR #55092. This causes a slight performance degradation in methods which would otherwise have both transitions. This was needed as the existing logic would setup the InlinedCallFrame while not in cooperative mode, thus causing periodic crashes. This should be changed to logic such that the function performs the reverse pinvoke logic before setting up the InlinedCallFrame, and removes the InlinedCallFrame before returning back to preemptive mode.

Configuration

All, although the assertion in bug #45326 can only occur on Windows X86. On other platforms, this would manifest as a much more rare crash.

Regression?

A bit. I don't have data.

category:cq
theme:inlining
skill-level:expert
cost:large
impact:small

Metadata

Metadata

Assignees

Labels

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

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions