fixed the fix of the fix (that was fix)
[libfirm] / ir / opt / strength_red.c
index 73e896a..13fefd3 100644 (file)
@@ -1,3 +1,22 @@
+/*
+ * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ */
+
 /**
  *
  * @file strength_red.c
  * Created:     22.8.2004
  * CVS-ID:      $Id$
  * Copyright:   (c) 2004 Universität Karlsruhe
- * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
  */
-
-# include "strength_red.h"
-
-# include "irouts.h"
-# include "irnode_t.h"
-# include "irgwalk.h"
-# include "irloop_t.h"
-# include "ircons.h"
-# include "irgmod.h"
-# include "irdump_t.h"
-# include "firmstat.h"
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "strength_red_t.h"
+#include "iroptimize.h"
+#include "irouts.h"
+#include "irnode_t.h"
+#include "irgwalk.h"
+#include "irloop_t.h"
+#include "ircons.h"
+#include "irgmod.h"
+#include "irdump_t.h"
+#include "irprintf.h"
+#include "firmstat.h"
 
 
 /** Counter for verbose information about optimization. */
@@ -35,10 +57,10 @@ static int n_made_new_phis;
  * @verbatim
  *
  *       init
- *       /|\
+ *        ^
  *        |
  *   +-- Phi
- *   |   /|\
+ *   |    ^
  *   |    |
  *   +-->op
  *
@@ -374,9 +396,9 @@ static int reduce(ir_node *reduce_var, induct_var_info *ivi)
 
       n_made_new_phis++;
       if (get_opt_strength_red_verbose() && get_firm_verbosity() > 1) {
-        printf("The new Phi node is : "); DDMN(ivi->itervar_phi);
-        printf("reducing operation is : "); DDMN(reduce_var);
-        printf("in graph : "); DDMG(current_ir_graph);
+        ir_printf("The new Phi node is : %+F\n", ivi->itervar_phi);
+        ir_printf("reducing operation is : %+F\n", reduce_var);
+        ir_printf("in graph : %+F\n", current_ir_graph);
       }
 
       ivi->new_increment  = new_r_Mul (current_ir_graph, block_inc, ivi->increment, mul_const,
@@ -443,8 +465,8 @@ static int reduce(ir_node *reduce_var, induct_var_info *ivi)
                                         get_irn_mode(mul_const));
       }
       if (get_opt_strength_red_verbose() && get_firm_verbosity() > 1) {
-        printf("\nReducing operation is : "); DDMN(reduce_var);
-        printf("in graph : "); DDMG(current_ir_graph);
+        ir_printf("\nReducing operation is : %+F\n", reduce_var);
+        ir_printf("in graph : %+F\n", current_ir_graph);
       }
       return 1;
     }
@@ -483,8 +505,8 @@ static int reduce(ir_node *reduce_var, induct_var_info *ivi)
                                    add_const, ivi->new_init);
     }
     if (get_opt_strength_red_verbose() && get_firm_verbosity() > 1) {
-      printf("\nReducing operation is : "); DDMN(reduce_var);
-      printf("in graph : "); DDMG(current_ir_graph);
+      ir_printf("\nReducing operation is : %+F\n", reduce_var);
+      ir_printf("in graph : %+F\n", current_ir_graph);
     }
     return 1;
   }
@@ -521,8 +543,8 @@ static int reduce(ir_node *reduce_var, induct_var_info *ivi)
       ivi->new_init = my_new_r_Sub (current_ir_graph, block_init,
                                     ivi->new_init, sub_const);
     if (get_opt_strength_red_verbose() && get_firm_verbosity() > 1) {
-      printf("\nReducing operation is : "); DDMN(reduce_var);
-      printf("in graph : "); DDMG(current_ir_graph);
+      ir_printf("\nReducing operation is : %+F", reduce_var);
+      ir_printf("in graph : %+F", current_ir_graph);
     }
     return 1;
   }
@@ -565,12 +587,13 @@ static void reduce_itervar(ir_node *itervar_phi, void *env)
   /* check if a iteration variable be reduced.*/
   int reduced = 0;
 
-  if (get_irn_op(itervar_phi) != op_Phi)
+  if (! is_Phi(itervar_phi))
     return;
-  /* A candidate is found.*/
+
+  /* A potential candidate is found.*/
   ivi.itervar_phi = itervar_phi;
 
-  /* It musss be a induction variable.*/
+  /* check if it's a induction variable.*/
   if (is_induction_variable(&ivi)) {
     int i, op_out;