becopyilp: Do not advertise the switch to dump the solution, because this is not...
[libfirm] / ir / ana / irlivechk.h
index 6479627..0c7b790 100644 (file)
@@ -1,27 +1,12 @@
 /*
- * Copyright (C) 1995-2007 Inria Rhone-Alpes.  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.
+ * Copyright (C) 2012 Inria Rhone-Alpes.
  */
 
 /**
- * @file    irlivechk.h
+ * @file
  * @author  Sebastian Hack
  * @date    22.04.2007
- * @version $Id$
  * @brief
  *
  * Live in/end checks whose only precomputation concerns the structure of the CFG.
@@ -34,7 +19,7 @@
 
 #include "irgraph.h"
 #include "irnode.h"
-#include "dfs.h"
+#include <stdbool.h>
 
 typedef enum {
        lv_chk_state_in  = 1,
@@ -45,13 +30,32 @@ typedef enum {
 
 typedef struct lv_chk_t lv_chk_t;
 
+/**
+ * Filter out some nodes for which we never need liveness.
+ *
+ * @param irn  the node t check
+ * @return 0 if no liveness info is needed, 1 else
+ */
+static inline bool is_liveness_node(const ir_node *irn)
+{
+       switch (get_irn_opcode(irn)) {
+       case iro_Block:
+       case iro_Bad:
+       case iro_End:
+       case iro_Anchor:
+       case iro_NoMem:
+               return 0;
+       default:
+               return 1;
+       }
+}
+
 /**
  * Make a new liveness check environment.
  * @param irg The graph.
- * @param dfs A forward DFS on CFG of the given irg.
  * @return    The environment.
  */
-extern lv_chk_t *lv_chk_new(ir_graph *irg, const dfs_t *dfs);
+extern lv_chk_t *lv_chk_new(ir_graph *irg);
 
 /**
  * Free liveness check information.