Track when a stack element is a duplicate
commit6051e515179dcb0b7f24f2dcd34d0aaa9cec29b5
authorMark Williams <mwilliams@fb.com>
Fri, 15 Sep 2017 21:15:26 +0000 (15 14:15 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Fri, 15 Sep 2017 21:26:12 +0000 (15 14:26 -0700)
tree58ff24082704a442ee695c1ee6197a0e8ab55623
parent047bc4afadc6160dffa4dee6484273da41d97ba1
Track when a stack element is a duplicate

Summary:
Similar to how we track equivalent locals, this lets us mark a stack
location as being a duplicate of the one below it. This allows us to
propagate assertions more uniformly (the special casing for IsTypeC vs
IsTypeL was inconsistent - IsTypeC handled Null better than IsTypeL,
but didn't handle any of the other types at all), and simplify some
more groups.

Reviewed By: ricklavoie

Differential Revision: D5838928

fbshipit-source-id: bd7873aa0ffd54a52cc58042f5cecee9419e5c7f
hphp/hhbbc/dce.cpp
hphp/hhbbc/interp-internal.h
hphp/hhbbc/interp-state.cpp
hphp/hhbbc/interp-state.h
hphp/hhbbc/interp.cpp
hphp/hhbbc/misc.h