* @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);
/**
* 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
* 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