ir_node ** in_cg; /**< array with predecessors in
* interprocedural_view, if they differ
* from intraprocedural predecessors */
- int *backedge; /**< Field n set to true if pred n is backedge.
- @@@ @todo Ev. replace by bit field! */
- int *cg_backedge; /**< Field n set to true if pred n is interprocedural backedge.
- @@@ @todo Ev. replace by bit field! */
+ unsigned *backedge; /**< Raw Bitfield n set to true if pred n is backedge.*/
+ unsigned *cg_backedge; /**< Raw Bitfield n set to true if pred n is interprocedural backedge. */
ir_extblk *extblk; /**< The extended basic block this block belongs to. */
ir_region *region; /**< The immediate structural region this block belongs to. */
unsigned mb_depth; /**< The macroblock depth: A distance from the macroblock header */
/** Filter attributes. */
typedef struct {
long proj; /**< contains the result position to project (Proj) */
- ir_node ** in_cg; /**< array with interprocedural predecessors (Phi) */
- int *backedge; /**< Field n set to true if pred n is backedge.
- @todo Ev. replace by bitfield! */
+ ir_node **in_cg; /**< array with interprocedural predecessors (Phi) */
+ unsigned *backedge; /**< Raw Bitfield n set to true if pred n is backedge. */
} filter_attr;
/** CallBegin attributes. */
load_attr load; /**< For Load. */
store_attr store; /**< For Store. */
phi0_attr phi0; /**< for Phi0 nodes. */
- int *phi_backedge; /**< For Phi after construction.
- Field n set to true if pred n is backedge.
- @todo Ev. replace by bitfield! */
+ unsigned *phi_backedge; /**< For Phi after construction.
+ Raw Bitfield n set to true if pred n is backedge. */
long proj; /**< For Proj: contains the result position to project */
confirm_attr confirm; /**< For Confirm: compare operation and region. */
filter_attr filter; /**< For Filter */
class it belongs to. */
ir_type *frame_type; /**< A class type representing the stack frame.
Can include "inner" methods. */
- ir_node *anchor; /**< The anchor node. */
- ir_node **proj_args; /**< Projs of the methods arguments. */
+ ir_node *anchor; /**< Pointer to the anchor node of this graph. */
struct obstack *obst; /**< The obstack where all of the ir_nodes live. */
ir_node *current_block; /**< Current block for newly gen_*()-erated ir_nodes. */
struct obstack *extbb_obst; /**< The obstack for extended basic block info. */
the node. */
ir_graph **callers; /**< For callgraph analysis: list of caller graphs. */
- unsigned char *caller_isbe; /**< For callgraph analysis: set if backedge. */
+ unsigned *caller_isbe; /**< For callgraph analysis: raw bitset if backedge. */
cg_callee_entry **callees; /**< For callgraph analysis: list of callee calls */
unsigned char *callee_isbe; /**< For callgraph analysis: set if backedge. */
int callgraph_loop_depth; /**< For callgraph analysis */
irg_edges_info_t edge_info; /**< edge info for automatic outs */
ir_node **idx_irn_map; /**< Array mapping node indexes to nodes. */
+ int index; /**< a unique number for each graph */
#ifdef DEBUG_libfirm
- int n_outs; /**< Size wasted for outs */
- long graph_nr; /**< a unique graph number for each graph to make output
- readable. */
+ int n_outs; /**< Size wasted for outs */
+ long graph_nr; /**< a unique graph number for each
+ graph to make output readable. */
#endif
#ifndef NDEBUG
ir_exc_region_t last_region_nr; /**< The last exception region number that was assigned. */
ir_label_t last_label_nr; /**< The highest label number for generating unique labels. */
+ int max_irg_idx; /**< highest unused irg index */
#ifdef DEBUG_libfirm
long max_node_nr; /**< to generate unique numbers for nodes. */
#endif