From 622d9c31febd950255b36a48b47e1f630197c5fe Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Mon, 12 May 2014 16:11:02 +0100 Subject: Add loop recognition and CFG simplifications in new compiler. We do three simplifications: - Split critical edges, for code generation from SSA (new). - Ensure one back edge per loop, to simplify loop recognition (new). - Ensure only one pre header for a loop, to simplify SSA creation (existing). Change-Id: I9bfccd4b236a00486a261078627b091c8a68be33 --- compiler/optimizing/dominator_test.cc | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'compiler/optimizing/dominator_test.cc') diff --git a/compiler/optimizing/dominator_test.cc b/compiler/optimizing/dominator_test.cc index 04170502d5..3062e3751d 100644 --- a/compiler/optimizing/dominator_test.cc +++ b/compiler/optimizing/dominator_test.cc @@ -167,7 +167,8 @@ TEST(OptimizerTest, CFG6) { 0, 1, 1, - 3 + 3, + 1, // Synthesized block to avoid critical edge. }; TestCode(data, dominators, sizeof(dominators) / sizeof(int)); @@ -185,7 +186,9 @@ TEST(OptimizerTest, CFG7) { 0, 1, 1, - -1 // exit block is not dominated by any block due to the spin loop. + -1, // exit block is not dominated by any block due to the spin loop. + 1, // block to avoid critical edge. + 1 // block to avoid critical edge. }; TestCode(data, dominators, sizeof(dominators) / sizeof(int)); @@ -205,7 +208,8 @@ TEST(OptimizerTest, CFG8) { 1, 1, 1, - -1 // exit block is not dominated by any block due to the spin loop. + -1, // exit block is not dominated by any block due to the spin loop. + 1 // block to avoid critical edge. }; TestCode(data, dominators, sizeof(dominators) / sizeof(int)); @@ -225,7 +229,8 @@ TEST(OptimizerTest, CFG9) { 1, 1, 1, - -1 // exit block is not dominated by any block due to the spin loop. + -1, // exit block is not dominated by any block due to the spin loop. + 1 // block to avoid critical edge. }; TestCode(data, dominators, sizeof(dominators) / sizeof(int)); @@ -247,7 +252,9 @@ TEST(OptimizerTest, CFG10) { 2, 2, 1, - 5 // Block number 5 dominates exit block + 5, // Block number 5 dominates exit block + 1, // block to avoid critical edge. + 2 // block to avoid critical edge. }; TestCode(data, dominators, sizeof(dominators) / sizeof(int)); -- cgit v1.2.3-59-g8ed1b