Skip to content

Extraneous JIT_TailCall generated #533

@cognociente

Description

@cognociente

Originally posted this issue at FSharp.Compiler.Services as: fsharp/fsharp-compiler-docs#380

I have posted the following head-scratcher on stackoverflow: http://stackoverflow.com/questions/31433605/how-to-eliminate-time-spent-in-jit-tailcall-for-functions-that-are-genuinely-non

Summary: I am calling a .NET assembly (F# 4.0) from a dynamically generated assembly (FSCS 3.1) and it is passing a custom value type (struct) over the assembly boundary. This causes a set of unnecessary calls to JIT_TailCall that degrade performance materially.

Direction: as raised by @dsyme is this an F# issue or a core CLR issue? In the latter case I will move this issue to .NET core CLR. The only "evidence" of it being F# related are (1) that I am using F# when it occurs and (2) it is tail-call related - so evidence not conclusive.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions