2 * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
4 * This file is part of libFirm.
6 * This file may be distributed and/or modified under the terms of the
7 * GNU General Public License version 2 as published by the Free Software
8 * Foundation and appearing in the file LICENSE.GPL included in the
9 * packaging of this file.
11 * Licensees holding valid libFirm Professional Edition licenses may use
12 * this file in accordance with the libFirm Commercial License.
13 * Agreement provided with the Software.
15 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * @brief Implements the Firm interface to debug information -- private header.
23 * @author Goetz Lindenmaier
27 * dbginfo: This is a empty implementation of the Firm interface to
28 * debugging support. It only guarantees that the Firm library compiles
29 * and runs without any real debugging support.
31 #ifndef FIRM_DEBUG_DBGINFO_T_H
32 #define FIRM_DEBUG_DBGINFO_T_H
38 * The default merge_pair_func implementation, simply copies the debug info
39 * from the old Firm node to the new one if the new one does not have debug info yet.
41 * @param nw The new Firm node.
42 * @param old The old Firm node.
43 * @param info The action that cause old node to be replaced by new one.
45 void default_dbg_info_merge_pair(ir_node *nw, ir_node *old, dbg_action info);
48 * The default merge_sets_func implementation. If n_old_nodes is equal 1,
49 * copies the debug info from the old node to all new ones (if they do not have
50 * one), else does nothing.
52 * @param new_nodes An array of new Firm nodes.
53 * @param n_new_nodes The length of the new_nodes array.
54 * @param old_nodes An array of old (replaced) Firm nodes.
55 * @param n_old_nodes The length of the old_nodes array.
56 * @param info The action that cause old node to be replaced by new one.
58 void default_dbg_info_merge_sets(ir_node **new_nodes, int n_new_nodes,
59 ir_node **old_nodes, int n_old_nodes,
63 * The current merge_pair_func(), access only from inside firm.
65 extern merge_pair_func *__dbg_info_merge_pair;
68 * The current merge_sets_func(), access only from inside firm.
70 extern merge_sets_func *__dbg_info_merge_sets;
72 void ir_dbg_info_snprint(char *buf, size_t buf_size, const dbg_info *dbg);