Fix tailcall regression with compiled F# (#41206)
authorJan Kotas <jkotas@microsoft.com>
Tue, 25 Aug 2020 14:17:41 +0000 (07:17 -0700)
committerGitHub <noreply@github.com>
Tue, 25 Aug 2020 14:17:41 +0000 (07:17 -0700)
commite94dc2f387117073074f295c573c4d40344749fb
tree80f2599d8914d4339525baf1209710b4e756fbf3
parent25e20983b193763bbc078d452c84cdd90e5c3efc
Fix tailcall regression with compiled F# (#41206)

* Fix tailcall regression with compiled F#

This change skips instantiating stubs for direct tailcalls and instead passes the inst argument directly to the target method.

Fixes #40864

* Add regression test

Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
13 files changed:
src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs
src/coreclr/src/jit/compiler.h
src/coreclr/src/jit/morph.cpp
src/coreclr/src/vm/corelib.h
src/coreclr/src/vm/ecalllist.h
src/coreclr/src/vm/gcenv.ee.cpp
src/coreclr/src/vm/jitinterface.cpp
src/coreclr/src/vm/tailcallhelp.cpp
src/coreclr/src/vm/tailcallhelp.h
src/coreclr/src/vm/threads.cpp
src/coreclr/src/vm/threads.h
src/tests/JIT/Directed/tailcall/more_tailcalls.cs
src/tests/JIT/Directed/tailcall/more_tailcalls.il