Improved implementation:
[libfirm] / ir / ana / compute_loop_info.c
index 4c47516..bb79646 100644 (file)
@@ -1,27 +1,42 @@
 /*
- * Project:     libFIRM
- * File name:   ir/opt/construct_loop.c
- * Purpose:     Construct some loop infromation.
- * Author:      Beyhan Veliev
- * Created:
- * CVS-ID:      $Id$
- * Copyright:   (c) 1998-2005 Universität Karlsruhe
- * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ * 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
+ * @brief       Construct some loop information.
+ * @author      Beyhan Veliev
+ * @version     $Id$
+ */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
-# include "compute_loop_info.h"
-# include "strength_red.h"
-# include "tv.h"
-# include "irgwalk.h"
-# include "irloop_t.h"
-# include "irgopt.h"
-# include "irflag.h"
-# include "irouts.h"
-# include "tv.h"
+#include "compute_loop_info.h"
+#include "strength_red_t.h"
+#include "tv.h"
+#include "irgwalk.h"
+#include "irnode_t.h"
+#include "irloop_t.h"
+#include "irgopt.h"
+#include "irflag.h"
+#include "irouts.h"
+#include "tv.h"
 
 #undef TRUE
 #define TRUE 1   /**< For loops, that are count loop. */
@@ -56,9 +71,6 @@ static int is_count_loop(ir_node *node, ir_node *loop_head)
   return res;
 }
 
-#define is_Add(irn)   (get_irn_op(irn) == op_Add)
-#define is_Sub(irn)   (get_irn_op(irn) == op_Sub)
-
 /**
  * Compute the end value, that be reached from the iteration.
  *
@@ -332,6 +344,7 @@ static void set_loop_info(ir_node *n, void *env)
   tarval *loop_end;
   induct_var_info info;
   int is_endlessloop = 0 , is_nonentered_loop = 0;
+  (void) env;
 
   /* The IR node must be a induction variable. */
   if (get_irn_op(n) != op_Phi)