Cleanup DCE actions and remove the replace map
commitc0ea7540bf77512709c9e409f62e1255e802b09f
authorMichael O'Farrell <michaelofarrell@fb.com>
Thu, 16 Apr 2020 16:10:59 +0000 (16 09:10 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Thu, 16 Apr 2020 16:15:08 +0000 (16 09:15 -0700)
tree454cb0fda6065b483c37c64055deb64817c6242b
parent09a86817e0972f4463b84214290469366ffa4fe6
Cleanup DCE actions and remove the replace map

Summary:
DCE actions were a little funny where the replacement bytecodes were stored in
a side map.  This makes sense if most operations have no replacement ops.
However a compact vector is a single pointer, so it seems not too costly to keep
it alongside the dce actions.

Also while we are at it make the dce perform and combine action logic not use
quite as many `first` and `seconds` where it is hard to know what is happening.

Reviewed By: ricklavoie

Differential Revision: D20995750

fbshipit-source-id: 80b63efaf63c6798a444363221db70fcfbc141b6
hphp/hhbbc/dce.cpp