Optimize struct element initialization
commit6615b2273b4e7490dce1f54706733e2b50163f1d
authorArnab De <arnabde@fb.com>
Wed, 21 Apr 2021 15:52:15 +0000 (21 08:52 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Wed, 21 Apr 2021 15:53:48 +0000 (21 08:53 -0700)
tree93b6d2a838c030a598fefac96792eb3142a01486
parent2a3db85abc336954ebcb61faaf849b83c2dfd297
Optimize struct element initialization

Summary: For elements <= HHIRMaxInlineInitStructElements, JIT moving the elements from the execution stack to the slots. This avoids copying the elements in registers to and from the stack.

Differential Revision: D27884363

fbshipit-source-id: 0476dab9521b4a0ded3ac4bf74b09498e8b0dfb4
12 files changed:
hphp/doc/ir.specification
hphp/runtime/base/bespoke/struct-dict.cpp
hphp/runtime/base/bespoke/struct-dict.h
hphp/runtime/base/runtime-option.h
hphp/runtime/vm/jit/dce.cpp
hphp/runtime/vm/jit/extra-data.cpp
hphp/runtime/vm/jit/extra-data.h
hphp/runtime/vm/jit/ir-instruction.cpp
hphp/runtime/vm/jit/ir-opcode.cpp
hphp/runtime/vm/jit/irgen-bespoke.cpp
hphp/runtime/vm/jit/irlower-bespoke.cpp
hphp/runtime/vm/jit/memory-effects.cpp