Arquivos
hhvm/hphp/doc
Jordan DeLong f4942ec853 Simplify jumpopts and the tracelet-crossing instructions
- Add ReqBindJmp, and ReqBindJmpCond instructions which emit service
    requests.

  - GuardLoc/GuardStk always imply cross-trace control flow

  - New CheckLoc/CheckStk instructions imply inside-of-trace
    control flow.
     - Renamed GuardType to CheckType to match this convention (we were
       loosly following it in the api to irtranslator, so I spread it
       through everything)

  - Check{Loc,Stk} can be optimized into SideExitGuard{Stk,Loc}

  - Reimplement jumpopts using this:
     - Check{Loc,Stk} branching to a "normal exit" can turn into
       a SyncABIRegs; SideExitGuard{Loc,Stk}.
     - A conditional jump to a normal exit followed by another normal
       exit turns into SyncABIRegs; ReqBindJmpFoo.

  - Remove the ExitTraceFoo instructions.

  - Remove IRInstruction::{get,set}TCA.

  - Remove order dependence in the ir.h enum.  (bsimmers has some
    ideas about generic branch fusion that would reduce the
    duplication there wrt this new set of similar op names; we
    discussed it and for now it seemed ok to have a whole ReqBindJmp*
    family, though.)

  - Fix the creation of unused REQ_BIND_JMPs in astubs.  I think there
    was also unused dead jumps-to-fallbacks in astubs due to the (now
    unneeded) guard-hoisting optimizations, but I haven't verified.

  - Some random cleanup along the way (adding consts to members,
    comments, removed some weird functions in codegen, etc).
2013-05-20 13:52:32 -07:00
..
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-03-09 12:49:37 -08:00
2013-04-12 12:04:04 -07:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-05-20 13:52:27 -07:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00
2013-02-11 02:10:41 -08:00