Substantial rewrite of code that computes register map of a basic
block with multiple "previous" edges. The algorithm is roughly as
follows:
* Wait until all of the "previous" nodes have been generated. This
depends on the absence of explicit loops in the graph, and will
require some rethinking when we introduce these loops.
* Compute a "weighted average" register map (the target map) from the
maps of the "previous" nodes. This is a heuristic computation, but it
seems to have about the right effect for simple cases.
* Separate the "previous" maps into equivalence classes, where all the
maps in an equivalence class can be converted to the target map with
an identical sequence of instructions. This could be made
substantially more sophisticated, but for now it will do.
* For each edge, insert code to coerce the "previous" map into the
target map. Heed the equivalence classes that were just computed, and
causes all maps in a given equivalence class to share a single code
sequence.