Remove no longer used CallUnpack logicnightly-2020.08.28
commit0c653797e4653b273aa8d2d52aab1366b7e614d4
authorJan Oravec <[email protected]>
Fri, 28 Aug 2020 00:53:39 +0000 (27 17:53 -0700)
committerFacebook GitHub Bot <[email protected]>
Fri, 28 Aug 2020 00:55:42 +0000 (27 17:55 -0700)
tree1367e2f73ecc3f2bcc5fc259d2c08b735f61bde0
parentf2a2a1abadc66a4b3343eb8f23ec66ed7afab30e
Remove no longer used CallUnpack logic

Summary:
The previous implementation dealt with unpack arguments by spilling the ActRec
and invoking doFCall(). This is slow and makes it hard to refactor doFCall().

Highlights:
- unpack no longer returns via retHelper
- removes a usage of funcBodyHelper; there's only one left
- removes the last place where we load Func from ActRec in JIT (unblocks m_func -> m_funcId)
- kills doFCallUnpack, eliminating a weird place to go from JIT to interp
- the above should help eliminate necessity to read ActRec::m_numArgs

Reviewed By: ricklavoie, oulgen

Differential Revision: D23339074

fbshipit-source-id: 0cf244b5ce4d4eb691bab4a31a121d70ffb14ee4
27 files changed:
hphp/doc/ir.specification
hphp/runtime/vm/bytecode.cpp
hphp/runtime/vm/bytecode.h
hphp/runtime/vm/func.h
hphp/runtime/vm/jit/abi.h
hphp/runtime/vm/jit/dce.cpp
hphp/runtime/vm/jit/extra-data.h
hphp/runtime/vm/jit/frame-state.cpp
hphp/runtime/vm/jit/ir-instruction.cpp
hphp/runtime/vm/jit/ir-opcode.cpp
hphp/runtime/vm/jit/irgen.cpp
hphp/runtime/vm/jit/irlower-call.cpp
hphp/runtime/vm/jit/memory-effects.cpp
hphp/runtime/vm/jit/reg-alloc.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-check.cpp
hphp/runtime/vm/jit/vasm-fusion.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-lower.cpp
hphp/runtime/vm/jit/vasm-ppc64.cpp
hphp/runtime/vm/jit/vasm-util.cpp
hphp/runtime/vm/jit/vasm-x64.cpp
hphp/runtime/vm/jit/vasm.cpp