Track redundant IR sequences by stable hash
Summary: The first step towards automated code outlining is identifying the sequences to outline. This adds logic to build up a map tracking how often sequences of code occur. We then prune down this data in `buildOptimizeHashes` to a set of sequences (hashes of them) that we would like to optimize. The hashes are using the stable hash introduced earlier in this stack, and remain valid across HHVM restarts.
Reviewed By: ottoni
Differential Revision:
D25887443
fbshipit-source-id:
bd0ed64ec70c212f1265d8a40e421a935903ec5d