some fixes for xml dumper / still buggy.
[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 #include "type_t.h"
23 #include "entity_t.h"
24
25
26 INLINE void
27 dbg_info_merge_pair(ir_node *nw, ir_node *old, dbg_action info) {
28   set_irn_dbg_info(nw, get_irn_dbg_info(old));
29 }
30
31 INLINE void
32 dbg_info_merge_sets(ir_node **new_nodes, int n_new_nodes,
33                     ir_node **old_nodes, int n_old_nodes,
34                     dbg_action info) {
35 }
36
37
38 void (*__dbg_info_merge_pair)(ir_node *nw, ir_node *old, dbg_action info)
39      = &dbg_info_merge_pair;
40
41 void (*__dbg_info_merge_sets)(ir_node **new_nodes, int n_new_nodes,
42                               ir_node **old_nodes, int n_old_nodes,
43                               dbg_action info)
44      = &dbg_info_merge_sets;
45
46
47 void dbg_init( merge_pair_func *mpf, merge_sets_func *msf )
48 {
49   __dbg_info_merge_pair = mpf;
50   __dbg_info_merge_sets = msf;
51 }
52
53
54 INLINE void
55 set_irn_dbg_info(ir_node *n, struct dbg_info* db) {
56   n->dbi = db;
57 }
58
59 INLINE struct dbg_info *
60 get_irn_dbg_info(ir_node *n) {
61   return n->dbi;
62 }
63
64
65 /* Routines to access the field of an entity containing the
66    debugging information. */
67 INLINE void set_entity_dbg_info(entity *ent, dbg_info* db) {
68   ent->dbi = db;
69 }
70 INLINE dbg_info *get_entity_dbg_info(entity *ent) {
71   return ent->dbi;
72 }
73 /* Routines to access the field of a type containing the
74    debugging information. */
75 INLINE void set_type_dbg_info(type *tp, dbg_info* db) {
76   tp->dbi = db;
77 }
78 INLINE dbg_info *get_type_dbg_info(type *tp) {
79   return tp->dbi;
80 }