Replace retInlHelper with an inline stub that binds return via ReqBindJmp
commit44d24a382da3dd79bb6e0b0e9a26c2712cc7e06d
authorJan Oravec <jan@fb.com>
Mon, 28 Jun 2021 05:29:04 +0000 (27 22:29 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Mon, 28 Jun 2021 05:30:49 +0000 (27 22:30 -0700)
tree9c2ebda266fa134490822a4d3e85866821060f53
parent598ca36e43c4ceaaac53103ff69caf28edd4701f
Replace retInlHelper with an inline stub that binds return via ReqBindJmp

Summary:
When a side exit is taken in an inlined code, we spill frames with the return
address pointing to retInlHelper. Once we return from these functions, we take
an expensive helper that looks up the translation dynamically.

Let's instead bind the return address, to avoid that expensive lookup.

Reviewed By: ricklavoie

Differential Revision: D29404756

fbshipit-source-id: f97f93c4c6f4a0c2267bb6d2c6d874275f9fb363
15 files changed:
hphp/runtime/vm/act-rec.cpp
hphp/runtime/vm/jit/extra-data.h
hphp/runtime/vm/jit/irgen-inlining.cpp
hphp/runtime/vm/jit/irlower-inlining.cpp
hphp/runtime/vm/jit/store-elim.cpp
hphp/runtime/vm/jit/unique-stubs.cpp
hphp/runtime/vm/jit/unique-stubs.h
hphp/runtime/vm/jit/vasm-arm.cpp
hphp/runtime/vm/jit/vasm-info.cpp
hphp/runtime/vm/jit/vasm-instr.cpp
hphp/runtime/vm/jit/vasm-instr.h
hphp/runtime/vm/jit/vasm-internal-inl.h
hphp/runtime/vm/jit/vasm-internal.cpp
hphp/runtime/vm/jit/vasm-internal.h
hphp/runtime/vm/jit/vasm-x64.cpp