Don't set copy_attr_func to NULL for nodes without attributes.
[libfirm] / ir / be / beverify.h
index 6683085..adcbe7e 100644 (file)
  * @brief       Various verify routines that check a scheduled graph for correctness.
  * @author      Matthias Braun
  * @date        05.05.2006
- * @version     $Id$
  */
 #ifndef FIRM_BE_BEVERIFY_H
 #define FIRM_BE_BEVERIFY_H
 
+#include <stdbool.h>
 #include "irgraph.h"
 
 #include "beirg.h"
 #include "bearch.h"
 
 /**
- * Verifies, that the register pressure for a given register class doesn't exceed the limit
- * of available registers.
+ * Verifies, that the register pressure for a given register class doesn't
+ * exceed the limit of available registers.
  *
  * @param irg        The irg to check.
  * @param cls        The register class to check.
- * @return                      1 if the pressure is valid, 0 otherwise.
+ * @return           1 if the pressure is valid, 0 otherwise.
  */
 int be_verify_register_pressure(ir_graph *irg,
                                 const arch_register_class_t* cls);
@@ -46,10 +46,10 @@ int be_verify_register_pressure(ir_graph *irg,
 /**
  * Does some sanity checks on the schedule.
  *
- * @param irg  The irg to check
- * @return             1 if the schedule is valid, 0 otherwise
+ * @param irg   The irg to check
+ * @return      1 if the schedule is valid, 0 otherwise
  */
-int be_verify_schedule(const be_irg_t *birg);
+int be_verify_schedule(ir_graph *irg);
 
 /**
  * Verify spillslots
@@ -64,9 +64,21 @@ int be_verify_spillslots(ir_graph *irg);
  * register assigned, also checks that each scheduled node has a register
  * assigned.
  *
- * @param birg  The birg to check
- * @return      1 if verify succeeded, 0 otherwise
+ * @param irg   The graph to check
+ * @return      true if verify succeeded, false otherwise
+ */
+bool be_verify_register_allocation(ir_graph *irg);
+
+/**
+ * Check, if the SSA dominance property is fulfilled.
+ * @param irg The graph.
+ * @return   true if dominance property is fulfilled, false otherwise
+ */
+bool be_check_dominance(ir_graph *irg);
+
+/**
+ * Check the given liveness information against a freshly computed one.
  */
-int be_verify_register_allocation(const be_irg_t *birg);
+void be_liveness_check(be_lv_t *lv);
 
 #endif