Basic JIT support for Records
commitdcffe876db695fcac96efae4827679af35ce0bec
authorArnab De <arnabde@fb.com>
Thu, 21 Mar 2019 17:49:37 +0000 (21 10:49 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Thu, 21 Mar 2019 17:57:36 +0000 (21 10:57 -0700)
treebebdee5753270108c858809751bbf06aa55a115f
parentdea3a7eaf2321696bcc1cb348da8018bf85f6266
Basic JIT support for Records

Summary:
Added `NewRecord` IR, `Record` type in JIT and code to emit `vasm` instructions from the IR. This diff enables running simple Hack code with records through the JIT.
Added `LdRecCached` IR and `Rec` type in JIT to load records at runtime.

Reviewed By: mxw

Differential Revision: D13344932

fbshipit-source-id: 6b1cd9292a2742a2d1304b38e71e54c00fcff615
27 files changed:
hphp/doc/ir.specification
hphp/runtime/base/execution-context.cpp
hphp/runtime/base/record-data.cpp
hphp/runtime/base/record-data.h
hphp/runtime/vm/bytecode.cpp
hphp/runtime/vm/jit/call-spec.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/irgen-arith.cpp
hphp/runtime/vm/jit/irgen-create.cpp
hphp/runtime/vm/jit/irgen-interpone.cpp
hphp/runtime/vm/jit/irlower-array.cpp
hphp/runtime/vm/jit/irlower-lookup-cls-func.cpp
hphp/runtime/vm/jit/irlower-refcount.cpp
hphp/runtime/vm/jit/memory-effects.cpp
hphp/runtime/vm/jit/translator.cpp
hphp/runtime/vm/jit/translator.h
hphp/runtime/vm/jit/type.cpp
hphp/runtime/vm/jit/type.h
hphp/test/quick/multidef-rec.php.opts
hphp/test/quick/record-arith.php.opts
hphp/test/quick/record-equal.php.opts
hphp/test/quick/record_decl_error.php.opts
hphp/test/quick/simpl-record.php.opts
hphp/test/quick/undef-record.php.opts
hphp/test/slow/record_autoload.php.opts