[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