private void OrderBlocks() { var blockOrderAnalysis = new SimpleTraceBlockOrder(); blockOrderAnalysis.Analyze(BasicBlocks); var newBlockOrder = blockOrderAnalysis.NewBlockOrder; newBlockOrder = AddMissingBlocksIfRequired(newBlockOrder); BasicBlocks.ReorderBlocks(newBlockOrder); }
private void OrderBlocks() { //var blockOrderAnalysis = new LoopAwareBlockOrder(); var blockOrderAnalysis = new SimpleTraceBlockOrder(); // faster than others blockOrderAnalysis.Analyze(BasicBlocks); var newBlockOrder = blockOrderAnalysis.NewBlockOrder; if (newBlockOrder.Count != BasicBlocks.Count && HasProtectedRegions) { newBlockOrder = AddMissingBlocksIfRequired(newBlockOrder); } BasicBlocks.ReorderBlocks(newBlockOrder); }