Duplicate frame-state, alias analysis and load/store elimination optimizations for...
commit392c26e5d2e53684779d5951a95179ee2ffe6f6d
authorOguz Ulgen <oulgen@fb.com>
Tue, 25 Sep 2018 16:51:34 +0000 (25 09:51 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Tue, 25 Sep 2018 16:59:33 +0000 (25 09:59 -0700)
tree989d8dd662aa7723ed59d6eb8455bb8708411cfc
parent0d54f110d7b9b08c06d2269551a605913c2fb809
Duplicate frame-state, alias analysis and load/store elimination optimizations for clsref's reified generics slot

Summary: This diff duplicates the optimizations done to clsref slots from D4506838 to also apply to the newly created reified generics slot. Originally, JIT assumed that the classref slot contained a LowPtr<Class> which is no longer true as it contains both the class pointer and the ArrayData*.

Reviewed By: ricklavoie

Differential Revision: D9995475

fbshipit-source-id: b44a3b46324bf02b03d8dea4dd8540c9821aa76b
21 files changed:
hphp/runtime/vm/jit/alias-analysis.cpp
hphp/runtime/vm/jit/alias-analysis.h
hphp/runtime/vm/jit/alias-class.cpp
hphp/runtime/vm/jit/alias-class.h
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/irgen-guards.cpp
hphp/runtime/vm/jit/irgen-internal.h
hphp/runtime/vm/jit/irgen-minstr.cpp
hphp/runtime/vm/jit/irgen.cpp
hphp/runtime/vm/jit/load-elim.cpp
hphp/runtime/vm/jit/location-inl.h
hphp/runtime/vm/jit/location.cpp
hphp/runtime/vm/jit/location.h
hphp/runtime/vm/jit/memory-effects.cpp
hphp/runtime/vm/jit/region-method.cpp
hphp/runtime/vm/jit/region-prune-arcs.cpp
hphp/runtime/vm/jit/region-selection.cpp
hphp/runtime/vm/jit/store-elim.cpp