Use foreach_set() instead of reimplementing it.
[libfirm] / ir / be / bepeephole.h
index fca32e9..be93c22 100644 (file)
@@ -21,7 +21,6 @@
  * @file
  * @brief       peephole optimisation framework
  * @author      Matthias Braun
- * @version     $Id$
  */
 #ifndef BEPEEPHOLE_H
 #define BEPEEPHOLE_H
@@ -73,6 +72,17 @@ ir_node *be_peephole_IncSP_IncSP(ir_node *node);
 
 bool be_has_only_one_user(ir_node *node);
 
+/**
+ * In a scheduled program with registers assigned,
+ * checks wether @p node can be moved before @p before without changing program
+ * semantics.
+ *
+ * Note: It is allowed to use this function without being in a peephole
+ * optimization phase.
+ */
+bool be_can_move_before(ir_heights_t *heights, const ir_node *node,
+                        const ir_node *before);
+
 /**
  * Do peephole optimisations. It traverses the schedule of all blocks in
  * backward direction. The register_values variable indicates which (live)