3 * @author Sebastian Hack
10 #include "firm_config.h"
15 typedef struct _numbering_t {
20 typedef struct _irg_numbering_t {
23 ir_node **reverse_map;
26 extern int numbering_irn_data_offset;
27 extern int numbering_irg_data_offset;
29 #define _get_irn_numbering(type,irn) get_irn_data(irn, type, numbering_irn_data_offset)
30 #define _get_irg_numbering(type,irg) get_irg_data(irg, type, numbering_irg_data_offset)
32 #define get_irn_numbering_const(irn) _get_irn_numbering(const numbering_t, irn)
33 #define get_irg_numbering_const(irg) _get_irg_numbering(const irg_numbering_t, irg)
35 #define get_irn_numbering(irn) _get_irn_numbering(numbering_t, irn)
36 #define get_irg_numbering(irg) _get_irg_numbering(irg_numbering_t, irg)
38 static INLINE int _get_irn_graph_nr(const ir_node *irn)
40 assert(!is_Block(irn) && "No block expected here");
41 return get_irn_numbering_const(irn)->global_nr;
44 static INLINE int _get_irn_block_nr(const ir_node *irn)
46 assert(!is_Block(irn) && "No block expected here");
47 return get_irn_numbering_const(irn)->local_nr;
50 static INLINE int _get_block_graph_nr(const ir_node *irn)
52 assert(is_Block(irn) && "Block expected here");
53 return get_irn_numbering_const(irn)->global_nr;
56 static INLINE int _get_block_node_count(const ir_node *irn)
58 assert(is_Block(irn) && "Block expected here");
59 return get_irn_numbering_const(irn)->local_nr;
62 static INLINE int _get_graph_block_count(const ir_graph *irg)
64 return get_irg_numbering_const(irg)->local_nr;
67 static INLINE int _get_graph_node_count(const ir_graph *irg)
69 return get_irg_numbering_const(irg)->global_nr;
72 static INLINE ir_node *_get_irn_for_graph_nr(const ir_graph *irg, int nr)
74 ir_node **map = get_irg_numbering_const(irg)->reverse_map;
75 assert(nr >= 0 && nr <= _get_graph_node_count(irg) && map[nr] != NULL);
79 #define get_irn_graph_nr(irn) _get_irn_graph_nr(irn)
80 #define get_irn_block_nr(irn) _get_irn_block_nr(irn)
81 #define get_block_graph_nr(irn) _get_block_graph_nr(irn)
82 #define get_block_node_count(irn) _get_block_node_count(irn)
83 #define get_graph_block_count(irg) _get_graph_block_count(irg)
84 #define get_graph_node_count(irg) _get_graph_node_count(irg)
85 #define get_irn_for_graph_nr(irg,nr) _get_irn_for_graph_nr(irg,nr)