Per file code coverage: interpret basic blocks instead of single bytecodes
commit6b1521a29093ba0379836a36efd88ab27de2c2b3
authorJan Oravec <jan@fb.com>
Thu, 24 Jun 2021 19:27:32 +0000 (24 12:27 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Thu, 24 Jun 2021 19:29:22 +0000 (24 12:29 -0700)
tree58432fac241e687d8a6e478499243c61f0c5e927
parentff4825a071aef105edd713c6d18b14bb35b48948
Per file code coverage: interpret basic blocks instead of single bytecodes

Summary:
Do not return to JIT after every bytecode when per file code coverage is
enabled. Use the interpHelperNoTranslate stub to keep interpreting at least
for the duration of basic blocks, which makes code coverage faster and also
avoids creating unnecessary translations starting at every bytecode.

Also makes it easier to introduce FuncEntry SrcKey position, as there will be
no mechanism to request interpretation of just the FuncEntry from JIT.

Reviewed By: ricklavoie

Differential Revision: D29352650

fbshipit-source-id: d77840211b8efbdcb161d1411364b195412ad073
hphp/doc/ir.specification
hphp/runtime/vm/jit/dce.cpp
hphp/runtime/vm/jit/extra-data.h
hphp/runtime/vm/jit/ir-opcode.cpp
hphp/runtime/vm/jit/irgen.cpp
hphp/runtime/vm/jit/irlower-branch.cpp
hphp/runtime/vm/jit/memory-effects.cpp