vasm Branch fusion
commit50b8e0e99eb0449ea8f3faa41841dda52bca0dd7
authorEdwin Smith <smith@fb.com>
Fri, 26 Dec 2014 16:11:03 +0000 (26 08:11 -0800)
committerhhvm-bot <hhvm-bot@fb.com>
Mon, 29 Dec 2014 02:00:27 +0000 (28 18:00 -0800)
tree8b28e4dd3ed65659f8a75c079a5204af1e288112
parent3266e62536de3579dd9eb5b9dccfe75ccd6605c1
vasm Branch fusion

Summary: Simplifications at the vasm level:
  jcc{E,  testb{setcc{cc, flags}}} => jcc{!cc, flags}
  jcc{NE, testb{setcc{cc, flags}}} => jcc{cc,  flags}

Removed HHIR fused-branch instructions.

Reviewed By: @jdelong

Differential Revision: D1758029
17 files changed:
hphp/doc/ir.specification
hphp/runtime/test/simplifier.cpp
hphp/runtime/vm/jit/code-gen-arm.cpp
hphp/runtime/vm/jit/code-gen-helpers-x64.cpp
hphp/runtime/vm/jit/code-gen-x64.cpp
hphp/runtime/vm/jit/code-gen-x64.h
hphp/runtime/vm/jit/dce.cpp
hphp/runtime/vm/jit/extra-data.h
hphp/runtime/vm/jit/ir-opcode.cpp
hphp/runtime/vm/jit/ir-opcode.h
hphp/runtime/vm/jit/irgen-resumable.cpp
hphp/runtime/vm/jit/memory-effects.cpp
hphp/runtime/vm/jit/simplify.cpp
hphp/runtime/vm/jit/vasm-fusion.cpp [new file with mode: 0644]
hphp/runtime/vm/jit/vasm-print.h
hphp/runtime/vm/jit/vasm-x64.cpp
hphp/runtime/vm/jit/vasm.h