becopyheur2: Cache the admissible registers eagerly.
[libfirm] / ir / common / debug.c
index 6c27480..70d60ed 100644 (file)
@@ -1,12 +1,15 @@
-/**
- * Debug facility.
- * @author Michael Beck, Sebastian Hack
- * @date 15.12.2004
+/*
+ * This file is part of libFirm.
+ * Copyright (C) 2012 University of Karlsruhe.
  */
 
-#ifdef HAVE_CONFIG_H
+/**
+ * @file
+ * @brief   Debug facility.
+ * @author  Michael Beck, Sebastian Hack
+ * @date    15.12.2004
+ */
 #include "config.h"
-#endif
 
 #ifdef DEBUG_libfirm
 
 #include "obst.h"
 #include "set.h"
 
-#ifdef WITH_LIBCORE
-
-#include "irargs_t.h"
-
-static void firm_dbg_default_printer(struct obstack *obst, const char *fmt, va_list args)
-{
-  static lc_arg_env_t *env = NULL;
-
-  if(!env)
-    env = firm_get_arg_env();
-
-  lc_evoprintf(env, obst, fmt, args);
-
-}
-
-firm_dbg_module_t *firm_dbg_register(const char *name)
-{
-  return lc_dbg_register_with_printer(name, firm_dbg_default_printer);
-}
-
-#else
-
 static struct obstack dbg_obst;
 static set *module_set;
 
 /**
  * A debug module.
  */
-struct _firm_dbg_module_t {
+struct firm_dbg_module_t {
   unsigned mask;
   const char *name;
   FILE *file;
 };
 
 /**
- * Compares two modules by comparing it's names
+ * Compares two modules by comparing their names
  */
 static int module_cmp(const void *p1, const void *p2, size_t size)
 {
-  const firm_dbg_module_t *m1 = p1;
-  const firm_dbg_module_t *m2 = p2;
+  const firm_dbg_module_t *m1 = (const firm_dbg_module_t*)p1;
+  const firm_dbg_module_t *m2 = (const firm_dbg_module_t*)p2;
+  (void) size;
+
   return strcmp(m1->name, m2->name);
 }
 
@@ -80,10 +63,10 @@ firm_dbg_module_t *firm_dbg_register(const char *name)
   mod.name = name;
   mod.file = stderr;
 
-  if(!module_set)
+  if (!module_set)
     firm_dbg_init();
 
-  return set_insert(module_set, &mod, sizeof(mod), HASH_STR(name, strlen(name)));
+  return set_insert(firm_dbg_module_t, module_set, &mod, sizeof(mod), hash_str(name));
 }
 
 void firm_dbg_set_mask(firm_dbg_module_t *module, unsigned mask)
@@ -104,7 +87,7 @@ void firm_dbg_set_file(firm_dbg_module_t *module, FILE *file)
 /**
  * A message info: a pair of debug handle and message
  */
-typedef struct _msg_info_t {
+typedef struct msg_info_t {
   const char *msg;
   const firm_dbg_module_t *mod;
 } msg_info_t;
@@ -116,13 +99,13 @@ typedef struct _msg_info_t {
 static void *make_msg_info(const firm_dbg_module_t *mod, const char *fmt, va_list args)
 {
   static const char msg_header[] = "%s(%d) %s: ";
-  msg_info_t *res = obstack_alloc(&dbg_obst, sizeof(*res));
+  msg_info_t *res = OALLOC(&dbg_obst, msg_info_t);
 
   obstack_grow(&dbg_obst, msg_header, sizeof(msg_header) - 1);
   ir_obst_vprintf(&dbg_obst, fmt, args);
   obstack_1grow(&dbg_obst, '\0');
 
-  res->msg = obstack_finish(&dbg_obst);
+  res->msg = (const char*)obstack_finish(&dbg_obst);
   res->mod = mod;
   return res;
 }
@@ -131,7 +114,7 @@ void *_firm_dbg_make_msg(const firm_dbg_module_t *mod, unsigned mask, const char
 {
   void *res = NULL;
 
-  if(mask == 0 || (mod->mask & mask)) {
+  if (mask == 0 || (mod->mask & mask)) {
     va_list args;
     va_start(args, fmt);
     res = make_msg_info(mod, fmt, args);
@@ -143,8 +126,8 @@ void *_firm_dbg_make_msg(const firm_dbg_module_t *mod, unsigned mask, const char
 
 void _firm_dbg_print_msg(const char *filename, int line, const char *func, void *mi_ptr)
 {
-  msg_info_t *mi = mi_ptr;
-  if(mi) {
+  msg_info_t *mi = (msg_info_t*)mi_ptr;
+  if (mi) {
     fprintf(mi->mod->file, mi->msg, filename, line, func);
     obstack_free(&dbg_obst, mi);
   }
@@ -152,24 +135,22 @@ void _firm_dbg_print_msg(const char *filename, int line, const char *func, void
 
 void _firm_dbg_print(const firm_dbg_module_t *mod, unsigned mask, const char *fmt, ...)
 {
-  if(mask == 0 || (mod->mask & mask)) {
+  if (mask == 0 || (mod->mask & mask)) {
     va_list args;
     char *res;
     va_start(args, fmt);
     ir_obst_vprintf(&dbg_obst, fmt, args);
     obstack_1grow(&dbg_obst, '\0');
-    res = obstack_finish(&dbg_obst);
-    fprintf(mod->file, res);
+    res = (char*)obstack_finish(&dbg_obst);
+    fprintf(mod->file, "%s", res);
     obstack_free(&dbg_obst, res);
     va_end(args);
   }
 }
 
-#endif /* WITH_LIBCORE */
-
 #else /* DEBUG_libfirm */
 
 /* some picky compiler don't allow empty files */
-static int dummy;
+static int __attribute__((unused)) dummy;
 
 #endif /* DEBUG_libfirm */