Partial vtables for MonotypeDict
commit47fd9178c3b0fea0ed4e9af841dcb039bb842621
authorMichael Colavita <mcolavita@fb.com>
Tue, 12 Jan 2021 16:18:28 +0000 (12 08:18 -0800)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Tue, 12 Jan 2021 16:20:27 +0000 (12 08:20 -0800)
tree91d389ac5a41d22b79c1c6ef7dd52fc27b653eab
parent1cef2af9c7e5e2e0d59298d330a1fa4ca348f2ec
Partial vtables for MonotypeDict

Summary:
We enable the use of most MonotypeDict implementation methods for
EmptyMonotypeDict. This allows us to use a partial vtable for MonotypeDict<X,
Empty|Y> and TopMonotypeDict<X> cases. We update the format of
EmptyMonotypeDict (specifically, storage of the size class) to simplify this
process.

Differential Revision: D25825936

fbshipit-source-id: b74973f4a12ad10e6396a9a20d06fff42a0c8495
hphp/runtime/base/bespoke/monotype-dict.cpp
hphp/runtime/base/bespoke/monotype-dict.h
hphp/runtime/base/memory-manager-inl.h
hphp/runtime/base/memory-manager.h