3 * @author Sebastian Hack
10 #include "firm_config.h"
14 typedef struct _numbering_t {
19 typedef struct _irg_numbering_t {
22 ir_node **reverse_map;
25 extern int numbering_irn_data_offset;
26 extern int numbering_irg_data_offset;
28 #define _get_irn_numbering(type,irn) get_irn_data(irn, type, numbering_irn_data_offset)
29 #define _get_irg_numbering(type,irg) get_irg_data(irg, type, numbering_irg_data_offset)
31 #define get_irn_numbering_const(irn) _get_irn_numbering(const numbering_t, irn)
32 #define get_irg_numbering_const(irg) _get_irg_numbering(const irg_numbering_t, irg)
34 #define get_irn_numbering(irn) _get_irn_numbering(numbering_t, irn)
35 #define get_irg_numbering(irg) _get_irg_numbering(irg_numbering_t, irg)
37 static INLINE int _get_irn_graph_nr(const ir_node *irn)
39 assert(!is_Block(irn) && "No block expected here");
40 return get_irn_numbering_const(irn)->global_nr;
43 static INLINE int _get_irn_block_nr(const ir_node *irn)
45 assert(!is_Block(irn) && "No block expected here");
46 return get_irn_numbering_const(irn)->local_nr;
49 static INLINE int _get_block_graph_nr(const ir_node *irn)
51 assert(is_Block(irn) && "Block expected here");
52 return get_irn_numbering_const(irn)->global_nr;
55 static INLINE int _get_block_node_count(const ir_node *irn)
57 assert(is_Block(irn) && "Block expected here");
58 return get_irn_numbering_const(irn)->local_nr;
61 static INLINE int _get_graph_block_count(const ir_graph *irg)
63 return get_irg_numbering_const(irg)->local_nr;
66 static INLINE int _get_graph_node_count(const ir_graph *irg)
68 return get_irg_numbering_const(irg)->global_nr;
71 static INLINE ir_node *_get_irn_for_graph_nr(const ir_graph *irg, int nr)
73 ir_node **map = get_irg_numbering_const(irg)->reverse_map;
74 assert(nr >= 0 && nr <= _get_graph_node_count(irg) && map[nr] != NULL);
78 #define get_irn_graph_nr(irn) _get_irn_graph_nr(irn)
79 #define get_irn_block_nr(irn) _get_irn_block_nr(irn)
80 #define get_block_graph_nr(irn) _get_block_graph_nr(irn)
81 #define get_block_node_count(irn) _get_block_node_count(irn)
82 #define get_graph_block_count(irg) _get_graph_block_count(irg)
83 #define get_graph_node_count(irg) _get_graph_node_count(irg)
84 #define get_irn_for_graph_nr(irg,nr) _get_irn_for_graph_nr(irg,nr)