558395335fe93da4bdebb6e5dbf6017ee3352f59
[libfirm] / ir / debug / dbginfo.c
1 /*
2 **  Copyright (C) 2001 by Universitaet Karlsruhe
3 **  All rights reserved.
4 **
5 **  Authors: Goetz Lindenmaier
6 **
7 **  dbginfo: This is a empty implementation of the Firm interface to
8 **  debugging support.  It only guarantees that the Firm library compiles
9 **  and runs without any real debugging support.
10 **  The functions herein are declared weak so that they can be overriden
11 **  by a real implementation.
12 */
13
14 /* $Id$ */
15
16 #ifdef HAVE_CONFIG_H
17 # include <config.h>
18 #endif
19
20 #include "dbginfo_t.h"
21 #include "irnode_t.h"
22
23
24 inline void
25 dbg_info_merge_pair(ir_node *nw, ir_node *old, ident *info) {
26   set_irn_dbg_info(nw, get_irn_dbg_info(old));
27 }
28
29 inline void
30 dbg_info_merge_sets(ir_node **new_nodes, ir_node **old_nodes, ident *info) {
31 }
32
33
34 void (*__dbg_info_merge_pair)(ir_node *nw, ir_node *old, ident *info)
35      = &dbg_info_merge_pair;
36
37 void (*__dbg_info_merge_sets)(ir_node **new_nodes, ir_node **old_nodes,
38                               ident *info)
39      = &dbg_info_merge_sets;
40
41
42 void dbg_init( void (merge_pair)(ir_node *nw, ir_node *old, ident *info) ,
43                void (merge_sets)(ir_node **new_nodes, ir_node **old_nodes,
44                                   ident *info)
45                ) {
46   __dbg_info_merge_pair = merge_pair;
47   __dbg_info_merge_sets = merge_sets;
48 }
49
50
51 inline void
52 set_irn_dbg_info(ir_node *n, struct dbg_info* db) {
53   n->dbi = db;
54 }
55
56 inline struct dbg_info *
57 get_irn_dbg_info(ir_node *n) {
58   return n->dbi;
59 }