private void OrderBlocks() { // don't remove any blocks when the flow control is unusual if (HasProtectedRegions) return; var blockOrderAnalysis = new LoopAwareBlockOrder(); blockOrderAnalysis.PerformAnalysis(BasicBlocks); BasicBlocks.ReorderBlocks(blockOrderAnalysis.NewBlockOrder); }
private void OrderBlocks() { // don't remove any blocks when the flow control is unusual if (HasProtectedRegions) { return; } var blockOrderAnalysis = new LoopAwareBlockOrder(); blockOrderAnalysis.PerformAnalysis(BasicBlocks); BasicBlocks.ReorderBlocks(blockOrderAnalysis.NewBlockOrder); }
private void OrderBlocks() { //var blockOrderAnalysis = new SimpleTraceBlockOrder(); // faster than others var blockOrderAnalysis = new LoopAwareBlockOrder(); blockOrderAnalysis.PerformAnalysis(BasicBlocks); var newBlockOrder = blockOrderAnalysis.NewBlockOrder; if (HasProtectedRegions) { newBlockOrder = AddMissingBlocks(newBlockOrder, true); } BasicBlocks.ReorderBlocks(newBlockOrder); }