This patent describes a method of compiling a computer program from a sequence
of computer instructions including a plurality of first, set branch, instructions
which each identify a target address for a branch and a plurality of associated
second, effect branch instructions which each implement a branch to a target address.
The method comprising the steps of: reading the computer instructions in blocks;
allocating each set branch instruction to an initial node in a dominator tree,
the initial node being the node which contains the corresponding effect branch
instruction; for the first determining the effect of migrating set branch instructions
to each of a set of ancestor nodes in the dominator tree based on a performance
cost parameter and selecting an ancestor node with the best performance cost parameter;
locating said set branch instruction at the selected ancestor node. Repeating the
determining and locating steps for each of the set branch instructions