bearch: Dump the output requirement and the assigned register in the same line for...
[libfirm] / ir / debug / dbginfo_t.h
index 33e24e6..3144a8d 100644 (file)
@@ -1,30 +1,62 @@
 /*
- * Project:     libFIRM
- * File name:   ir/debug/dbginfo.h
- * Purpose:     Implements the Firm interface to debug information -- private header.
- * Author:      Goetz Lindenmaier
- * Modified by:
- * Created:     2001
- * CVS-ID:      $Id$
- * Copyright:   (c) 2001-2003 Universität Karlsruhe
- * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
  */
 
 /**
-* @file dbginfo_t.h
-*
-* @author Goetz Lindenmaier
-*
-*  dbginfo: This is a empty implementation of the Firm interface to
-*  debugging support.  It only guarantees that the Firm library compiles
-*  and runs without any real debugging support.
-*/
+ * @file
+ * @brief      Implements the Firm interface to debug information -- private header.
+ * @author     Goetz Lindenmaier
+ * @date       2001
+ * @brief
+ *  dbginfo: This is a empty implementation of the Firm interface to
+ *  debugging support.  It only guarantees that the Firm library compiles
+ *  and runs without any real debugging support.
+ */
+#ifndef FIRM_DEBUG_DBGINFO_T_H
+#define FIRM_DEBUG_DBGINFO_T_H
 
+#include <stdlib.h>
+#include "dbginfo.h"
 
-#ifndef __DBGINFO_T_H__
-#define __DBGINFO_T_H__
+/**
+ * The default merge_pair_func implementation, simply copies the debug info
+ * from the old Firm node to the new one if the new one does not have debug info yet.
+ *
+ * @param nw    The new Firm node.
+ * @param old   The old Firm node.
+ * @param info  The action that cause old node to be replaced by new one.
+ */
+void default_dbg_info_merge_pair(ir_node *nw, ir_node *old, dbg_action info);
 
-#include "dbginfo.h"
+/**
+ * The default merge_sets_func implementation.  If n_old_nodes is equal 1,
+ * copies the debug info from the old node to all new ones (if they do not have
+ * one), else does nothing.
+ *
+ * @param new_nodes     An array of new Firm nodes.
+ * @param n_new_nodes   The length of the new_nodes array.
+ * @param old_nodes     An array of old (replaced) Firm nodes.
+ * @param n_old_nodes   The length of the old_nodes array.
+ * @param info          The action that cause old node to be replaced by new one.
+ */
+void default_dbg_info_merge_sets(ir_node **new_nodes, int n_new_nodes,
+                            ir_node **old_nodes, int n_old_nodes,
+                            dbg_action info);
 
 /**
  * The current merge_pair_func(), access only from inside firm.
@@ -36,9 +68,6 @@ extern merge_pair_func *__dbg_info_merge_pair;
  */
 extern merge_sets_func *__dbg_info_merge_sets;
 
-/**
- * The current snprint_dbg_func(), access only from inside firm.
- */
-extern snprint_dbg_func *__dbg_info_snprint;
+void ir_dbg_info_snprint(char *buf, size_t buf_size, const dbg_info *dbg);
 
-#endif /* __DBGINFO_T_H__ */
+#endif