Parallelize preresolve algorithm
commitadb04c4387ed0f9942ced2683eb250cc42fb72dc
authorRick Lavoie <rlavoie@fb.com>
Thu, 29 Apr 2021 04:57:39 +0000 (28 21:57 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Thu, 29 Apr 2021 05:00:37 +0000 (28 22:00 -0700)
tree2649f285761bde2e7950bf34623608ae5948ec7a
parentd38f6e1b759470e753c3c4bedc270885f2e6ae1c
Parallelize preresolve algorithm

Summary:
The reworking of the preresolve algorithm was a good start, but we can
go even further by parallelizing it. At each given "level" of classes
(distance from root), we can process the classes in parallel. The
algorithm, more or less, works as is. The only major change needed is
to defer any mutations to shared data until a round is completed.

Differential Revision: D27995037

fbshipit-source-id: c3339e42dadc9532e5037c4f7dba07eb5a11ede1
hphp/hhbbc/check.cpp
hphp/hhbbc/index.cpp
hphp/hhbbc/parallel.h