Propagate states across factored edges mid member-instruction
commit4e97ca67fb0c57957c980fead1a666193af24c3f
authorJordan DeLong <jdelong@fb.com>
Sat, 7 Dec 2013 20:56:56 +0000 (7 12:56 -0800)
committerSara Golemon <sgolemon@fb.com>
Tue, 10 Dec 2013 17:32:58 +0000 (10 09:32 -0800)
tree0b93729f605685526df7d62b3a00e45ed97bde91
parent168d6fc15b3dc4c761f6b93afba895e833590fd4
Propagate states across factored edges mid member-instruction

Member instructions are fairly unusual in that they can throw
with a state reflecting changes in the middle of their execution.  The
normal model in HHBBC for PEIs (potentially exception-throwing
instructions) is to propagate the state before the instruction has
begun execution, so these need to be handled specially by explicitly
propagating the states before each dim.

Reviewed By: @edwinsmith

Differential Revision: D1088633
hphp/hhbbc/abstract-interp.cpp
hphp/test/slow/hhbbc/minstr_throw1.php [new file with mode: 0644]
hphp/test/slow/hhbbc/minstr_throw1.php.expect [new file with mode: 0644]
hphp/test/slow/hhbbc/minstr_throw2.php [new file with mode: 0644]
hphp/test/slow/hhbbc/minstr_throw2.php.expect [new file with mode: 0644]