Break a bytecode dependency in the refcount optimizer
commit03a0e338d8f22f861b43a87be43af638925b60e5
authorOwen Yamauchi <oyamauchi@fb.com>
Fri, 28 Mar 2014 18:02:17 +0000 (28 11:02 -0700)
committerSara Golemon <sgolemon@fb.com>
Tue, 1 Apr 2014 00:58:58 +0000 (31 17:58 -0700)
tree540ac893bbaddb5a4abf36fa97c1f2e031da3a7a
parent90cb332a0dff2eabd9d374d158bcebf93458b545
Break a bytecode dependency in the refcount optimizer

This is with the aim of unit-testing this component. In general, I think
knowledge like this (is it in a generator?) that we're gaining from
looking at bytecode should be encoded in the IR if it's necessary.

Anyway, what this code is actually interested in checking is (a) is it
the last instruction in an exit block; (b) is it NOT a RetCtrl from a
non-generator; (c) is it NOT in the catch block of a non-generator's
FunctionExitSurpriseHook. All this information is already there in the
IR.

Reviewed By: @bertmaher

Differential Revision: D1246382
hphp/runtime/vm/jit/refcount-opts.cpp