Emit CheckFoo instead of GuardFoo if the region entry block is a loop header.
commit82f21bcd382b333eabb9d053cb3ff57b5d332711
authorAlex Malyshev <alexanderm@fb.com>
Fri, 7 Nov 2014 18:57:15 +0000 (7 10:57 -0800)
committerhhvm-bot <hhvm-bot@fb.com>
Fri, 7 Nov 2014 19:00:29 +0000 (7 11:00 -0800)
treee03a0fac3f87e1eb0d414d5b9a9af1a3de298bdb
parent75fbef64b36e53a5ad5b6a550f90625f7768bf7f
Emit CheckFoo instead of GuardFoo if the region entry block is a loop header.

Summary: Also rename a lot of stuff named "unprocessedPred" as "loopHeader".

This can generate suboptimal translations as we'll have loopy PGO
translations with no retranslate exits. The plan going forward is to
have an post-processing pass to fix these translations up, but for now,
let's just get this correct.

Reviewed By: @jdelong

Differential Revision: D1666300
hphp/runtime/vm/jit/frame-state.cpp
hphp/runtime/vm/jit/frame-state.h
hphp/runtime/vm/jit/ir-builder.cpp
hphp/runtime/vm/jit/ir-builder.h
hphp/runtime/vm/jit/translator.cpp