Use IterArgs in the IterData IR data struct
commitdc0e4b41724bde5887c442833b86087141160791
authorShaunak Kishore <kshaunak@fb.com>
Thu, 14 Nov 2019 23:54:36 +0000 (14 15:54 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Thu, 14 Nov 2019 23:56:45 +0000 (14 15:56 -0800)
tree8138dd2e17ca6709d0ff4e42512c0737d1d42009
parente8ed9c9aa3cb0ea7fb25e55a40a8260ba8c4edcb
Use IterArgs in the IterData IR data struct

Summary:
The IterData / IterInitData IR extra data structs just carry the same information as the new IterArgs struct. Modify the code to reflect that, and update bytecode.specification to explain IterArgs.

We also drop the IterTypeOp HHBC subop, but for now, we keep this enum in array-iterator.h as a way to burn in the appropriate "new_iter_array" call into the JIT. We'll drop this enum soon, but when we do so, it will have performance effects that I don't want to consider as part of this change.

Reviewed By: mxw

Differential Revision: D18437640

fbshipit-source-id: 43f7d0c82d9330fe60ae5d415378e66a82ccdde0
hphp/runtime/base/array-iterator.h
hphp/runtime/vm/bytecode.cpp
hphp/runtime/vm/hhbc.cpp
hphp/runtime/vm/hhbc.h
hphp/runtime/vm/jit/extra-data.h
hphp/runtime/vm/jit/frame-state.cpp
hphp/runtime/vm/jit/irgen-iter-spec.cpp
hphp/runtime/vm/jit/irgen-iter-spec.h
hphp/runtime/vm/jit/irgen-iter.cpp
hphp/runtime/vm/jit/irlower-iter.cpp
hphp/runtime/vm/jit/memory-effects.cpp