X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ir%2Fbe%2Fbeverify.h;h=16cb9205f7ff604ce20c8d7fbf5a824f7f6f8cd6;hb=0caf8d864fd6185090402563beaac03aaee73d4d;hp=06d01d01d9dee6687624bc47c23cffc1c0c205b8;hpb=f712b4e87d2a8aa13a45b4a2f5b270f8ed10a7ec;p=libfirm diff --git a/ir/be/beverify.h b/ir/be/beverify.h index 06d01d01d..16cb9205f 100644 --- a/ir/be/beverify.h +++ b/ir/be/beverify.h @@ -1,31 +1,62 @@ +/* + * This file is part of libFirm. + * Copyright (C) 2012 University of Karlsruhe. + */ + /** - * Author: Matthias Braun - * Date: 05.05.2006 - * Copyright: (c) Universitaet Karlsruhe - * License: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + * @file + * @brief Various verify routines that check a scheduled graph for correctness. + * @author Matthias Braun + * @date 05.05.2006 */ +#ifndef FIRM_BE_BEVERIFY_H +#define FIRM_BE_BEVERIFY_H + +#include +#include "irgraph.h" + +#include "bearch.h" /** - * @file beverify.h + * Verifies, that the register pressure for a given register class doesn't + * exceed the limit of available registers. * - * Various verify routines that check a scheduled graph for correctness + * @param irg The irg to check. + * @param cls The register class to check. + * @return true if the pressure is valid, false otherwise. + */ +bool be_verify_register_pressure(ir_graph *irg, + const arch_register_class_t* cls); + +/** + * Does some sanity checks on the schedule. * - * @author Matthias Braun + * @param irg The irg to check + * @return true if the schedule is valid, false otherwise */ -#ifndef BEVERIFY_H_ -#define BEVERIFY_H_ +bool be_verify_schedule(ir_graph *irg); -#include "bechordal.h" +/** + * Verify spillslots + * + * @param irg The irg to check + * @return true if spillslots are valid, false otherwise + */ +bool be_verify_spillslots(ir_graph *irg); /** - * Verifies, that the register pressure for a given register class doesn't exceed the limit - * of available registers. + * Verify register allocation: Checks that no 2 live nodes have the same + * register assigned, also checks that each scheduled node has a register + * assigned. + * + * @param irg The graph to check + * @return true if verify succeeded, false otherwise */ -int be_verify_register_pressure(const arch_env_t *arch_env, const arch_register_class_t* cls, ir_graph *irg); +bool be_verify_register_allocation(ir_graph *irg); /** - * Does some sanity checks on the schedule + * Check the given liveness information against a freshly computed one. */ -int be_verify_schedule(ir_graph *irg); +void be_liveness_check(be_lv_t *lv); #endif