added register pressure statistics
[libfirm] / ir / tr / trvrfy.h
index 60d57a3..2e3e156 100644 (file)
@@ -9,11 +9,11 @@
  * Copyright:   (c) 2003 Universität Karlsruhe
  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
  */
-
-
 #ifndef TRVRFY_H
 #define TRVRFY_H
 
+#include "firm_types.h"
+
 /**
  * @file trvrfy.h
  *
  *
  */
 
-#include "firm.h"
-
 /**
  * possible trvrfy() error codes
  */
-enum  trvrfy_error_codes {
-  no_error                 = 0,                /**< no error */
-  error_ent_not_cont       = 1,                /**< overwritten entity not in superclass */
-  error_null_mem           = 2,                /**< compound contains NULL member */
-  error_const_on_wrong_irg = 3         /**< constant placed on wrong IRG */
+enum trvrfy_error_codes {
+  no_error = 0,                      /**< no error */
+  error_ent_not_cont,                /**< overwritten entity not in superclass */
+  error_null_mem,                    /**< compound contains NULL member */
+  error_const_on_wrong_irg,          /**< constant placed on wrong IRG */
+  error_existent_entity_without_irg, /**< Method entities with pecularity_exist must have an irg */
+  error_wrong_ent_overwrites,        /**< number of entity overwrites exceeds number of class overwrites */
+  error_inherited_ent_without_const, /**< inherited method entity not pointing to existent entity */
+  error_glob_ent_allocation,         /**< wrong allocation of a global entity */
+  error_ent_const_mode,              /**< Mode of constant in entity did not match entities type. */
+  error_ent_wrong_owner              /**< Mode of constant in entity did not match entities type. */
 };
 
+/**
+ * Checks a type.
+ *
+ * @return
+ *  0   if no error encountered
+ */
+int check_type(ir_type *tp);
+
+/**
+ * Check an entity. Currently, we check only if initialized constants
+ * are build on the const irg graph.
+ *
+ * @return
+ *  0   if no error encountered
+ *  != 0    a trvrfy_error_codes code
+ */
+int check_entity(entity *ent);
 
 /**
  * Walks the type information and performs a set of sanity checks.
@@ -46,7 +67,7 @@ enum  trvrfy_error_codes {
  * Currently, the following checks are executed:
  * - values of initialized entities must be allocated on the constant IRG
  * - class types: doesn't have NULL members
- * - class types: all overwrites are existant in the super type
+ * - class types: all overwrites are existent in the super type
  *
  * @return
  *    0 if graph is correct
@@ -55,7 +76,7 @@ enum  trvrfy_error_codes {
 int tr_vrfy(void);
 
 /**
- * If NDEBUG is defined performs nothing, else calles the tr_vrfy() function.
+ * If NDEBUG is defined performs nothing, else calls the tr_vrfy() function.
  */
 #ifdef NDEBUG
 #define TR_VRFY()      0