Move mInstrState to CollectedInfo
commit5a4f14bf602dd17e6f197ea3ecb8c3539ec2f851
authorMark Williams <mwilliams@fb.com>
Sun, 5 May 2019 20:15:58 +0000 (5 13:15 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Sun, 5 May 2019 20:19:45 +0000 (5 13:19 -0700)
tree8e8e87321496d7d8d8eebd3d82bca9a5409da388
parent07e6fd614c51b4344faf762c8c43c142b24a7821
Move mInstrState to CollectedInfo

Summary:
I was going to add another field to MInstrState, but realized the new
field didn't really belong in State, because it was only used within a
block.

Then I realized the same was true of MInstrState - its always empty at
block boundaries (and in fact state propagation ignores it, except
when the destination block is uninitialized), so we might as well keep
it in CollectedInfo, and avoid the space overhead of storing it per
block, and the cost of copying it when we propagate state.

We needed a few fixes for edge cases where we stop processing a block
in the middle of a minstr sequence.

Reviewed By: ricklavoie

Differential Revision: D15209737

fbshipit-source-id: f1720007ee5e635f1af68f35cdfe5e5e4b52aa48
hphp/hhbbc/interp-minstr.cpp
hphp/hhbbc/interp-state.cpp
hphp/hhbbc/interp-state.h
hphp/hhbbc/interp.cpp
hphp/hhbbc/stats.cpp