Create a basic block ordering stage


The responsibility of a block ordering stage is to linearize the control flow in order to remove jumps inside a method. The optimal order is determined by removing any unneeded backwards jumps and eliminating forward jumps. To achieve this small blocks may need to be duplicated.
If this stage is introduced the register allocators and all other following stages must be changed to use this block order for processing as it represents the ideal flow of code.
Closed Jul 27, 2009 at 2:33 AM by tgiphil