2 * Author: Matthias Braun
4 * Copyright: (c) Universitaet Karlsruhe
5 * License: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
12 * Various verify routines that check a scheduled graph for correctness
14 * @author Matthias Braun
19 #include "bechordal.h"
22 * Verifies, that the register pressure for a given register class doesn't exceed the limit
23 * of available registers.
25 * @param birg The backend IRG.
26 * @param cls The register class to check.
27 * @param irg The irg to check.
28 * @return 1 if the pressure is valid, 0 otherwise.
30 int be_verify_register_pressure(const be_irg_t *birg, const arch_register_class_t* cls, ir_graph *irg);
33 * Does some sanity checks on the schedule.
35 * @param irg The irg to check
36 * @return 1 if the schedule is valid, 0 otherwise
38 int be_verify_schedule(ir_graph *irg);
43 * @param irg The irg to check
44 * @return 1 if spillslots are valid, 0 otherwise
46 int be_verify_spillslots(const arch_env_t *arch_env, ir_graph *irg);
49 * Verify register allocation: Checks that no 2 live nodes have the same
50 * register assigned, also checks that each scheduled node has a register
53 * @param irg The irg to check
54 * @return 1 if verify succeeded, 0 otherwise
56 int be_verify_register_allocation(const arch_env_t *arch_env, ir_graph *irg);
59 * Verify that out edges are valid
61 * @param irg The irg to check
62 * @param 1 if verify succeeded, 0 otherwise
64 int be_verify_out_edges(ir_graph *irg);
66 #endif /* BEVERIFY_H_ */