2 * This file is part of libFirm.
3 * Copyright (C) 2012 University of Karlsruhe.
8 * @brief Various verify routines that check a scheduled graph for correctness.
9 * @author Matthias Braun
12 #ifndef FIRM_BE_BEVERIFY_H
13 #define FIRM_BE_BEVERIFY_H
21 * Verifies, that the register pressure for a given register class doesn't
22 * exceed the limit of available registers.
24 * @param irg The irg to check.
25 * @param cls The register class to check.
26 * @return true if the pressure is valid, false otherwise.
28 bool be_verify_register_pressure(ir_graph *irg,
29 const arch_register_class_t* cls);
32 * Does some sanity checks on the schedule.
34 * @param irg The irg to check
35 * @return true if the schedule is valid, false otherwise
37 bool be_verify_schedule(ir_graph *irg);
42 * @param irg The irg to check
43 * @return true if spillslots are valid, false otherwise
45 bool be_verify_spillslots(ir_graph *irg);
48 * Verify register allocation: Checks that no 2 live nodes have the same
49 * register assigned, also checks that each scheduled node has a register
52 * @param irg The graph to check
53 * @return true if verify succeeded, false otherwise
55 bool be_verify_register_allocation(ir_graph *irg);
58 * Check the given liveness information against a freshly computed one.
60 void be_liveness_check(be_lv_t *lv);