[phc-internals] [phc commit] r1940 - in branches/dataflow: src/optimize test/subjects/optimization

codesite-noreply at google.com codesite-noreply at google.com
Fri Nov 21 16:39:39 GMT 2008


Author: paul.biggar
Date: Fri Nov 21 08:38:50 2008
New Revision: 1940

Added:
    branches/dataflow/test/subjects/optimization/remove_for_loop_boolean.php
Modified:
    branches/dataflow/src/optimize/Remove_loop_booleans.cpp

Log:
Add a test for removing loop booleans. We weren't removing them in a lot of  
cases, but this fixes it.


Modified: branches/dataflow/src/optimize/Remove_loop_booleans.cpp
==============================================================================
--- branches/dataflow/src/optimize/Remove_loop_booleans.cpp	(original)
+++ branches/dataflow/src/optimize/Remove_loop_booleans.cpp	Fri Nov 21  
08:38:50 2008
@@ -103,8 +103,6 @@
  	if (!isa<SSA_stmt> (defs->front()) || !isa<SSA_stmt> (defs->back ()))
  		return false;
  	
-	if (bb->get_predecessors ()->size () != 2)
-		return false;

  	Basic_block* bb0 = defs->front ()->get_bb ();
  	Basic_block* bb1 = defs->back ()->get_bb ();

Added:  
branches/dataflow/test/subjects/optimization/remove_for_loop_boolean.php
==============================================================================
--- (empty file)
+++  
branches/dataflow/test/subjects/optimization/remove_for_loop_boolean.php	 
Fri Nov 21 08:38:50 2008
@@ -0,0 +1,38 @@
+<?php
+
+	// { phc-option: -O1 --dump=generate-c }
+	// { phc-regex-output: !/true/ }
+	// { phc-regex-output: !/false/ }
+
+
+	for ($i = 0; $i < 100; $i++)
+	{
+		echo $i;
+	}
+
+	for ($j = 0; $j < 100 && $j >= 0; $j++)
+	{
+		echo $j;
+	}
+
+	// nested loop
+	for ($k = 0; $k < 100; $k++)
+	{
+		for ($l = 0; $l < 50; $l++)
+		{
+			$sum = $sum + $l;
+		}
+	}
+	echo $sum;
+
+	// The branch block has 3 entry points.
+	for ($y=0 ; $y<=$w1; $y=$y+1) {
+      if ( $y==5 ) {
+        print "_";
+      } else {
+        print "#";
+      }
+  }
+
+
+?>


More information about the phc-internals mailing list