Update HHBBC fault funclet assumptions for try/finally changes
commiteabd6792b6e7efa8fb38705012e7d536107c74a0
authorJordan DeLong <jdelong@fb.com>
Thu, 5 Dec 2013 23:17:40 +0000 (5 15:17 -0800)
committerSara Golemon <sgolemon@fb.com>
Sun, 8 Dec 2013 18:30:08 +0000 (8 10:30 -0800)
treefbdc2d9c22448322adbe2296925ff572e2c45781
parent72a60e57d8773e00d3c8ea0819516333fd59b959
Update HHBBC fault funclet assumptions for try/finally changes

The main change is that fault funclets now can be coverted by
protected regions.  There were also some issues with having multiple
protected regions pointing to the same fault funclet, even though I'd
already updated the spec to make that legal.  This diff also changes
things to find funclet handler extents using the same logic as the
verifier (relying on funclet bodies being contiguous), since it's
easier to do than forward propagating in RPO until you find an Unwind
now that there can be try/catch blocks inside the funclets.

Reviewed By: @edwinsmith

Differential Revision: D1088288
hphp/hhbbc/cfg.h
hphp/hhbbc/check.cpp
hphp/hhbbc/emit.cpp
hphp/hhbbc/parse.cpp
hphp/hhbbc/representation.h
hphp/hhbbc/show.cpp