*/
# include "ircons.h"
-# include "irgraph.h"
+# include "irgraph_t.h"
# include "irprog.h"
-# include "iropt.h"
+# include "iropt_t.h"
# include "array.h"
# include "irgmod.h"
ir_graph *current_ir_graph;
+#if USE_EXPICIT_PHI_IN_STACK
+/* really defined in ircons.c */
+typedef struct Phi_in_stack Phi_in_stack;
+Phi_in_stack *new_Phi_in_stack();
+#endif
+
/* Allocates a list of nodes:
- The start block containing a start node and Proj nodes for it's four
results (X, M, P, Tuple).
and optimization.
*/
ir_graph *
-new_ir_graph (entity *ent, int params)
+new_ir_graph (entity *ent, int n_loc)
{
ir_graph *res;
ir_node *first_block;
/** Internal information for graph construction either held in the graph or
*** initialized for each graph. **/
- res->params = params + 1; /* number of local variables that are never
+ res->n_loc = n_loc + 1; /* number of local variables that are never
dereferenced in this graph plus one for
the store. This is not the number of parameters
to the procedure! */
set_entity_irg(ent, res);
/** Nodes needed in every graph **/
- res->end_block = new_Block ();
+ res->end_block = new_immBlock ();
res->end = new_End ();
- res->start_block = new_Block ();
+ res->start_block = new_immBlock ();
res->start = new_Start ();
res->bad = new_ir_node (res, res->start_block, op_Bad, mode_T, 0, NULL);
mature_block (res->current_block);
/** Make a block to start with **/
- first_block = new_Block ();
+ first_block = new_immBlock ();
add_in_edge (first_block, projX);
return res;
entity *
get_irg_ent (ir_graph *irg)
{
+ assert(irg && irg->ent);
return irg->ent;
}
}
int
-get_irg_params (ir_graph *irg)
+get_irg_n_loc (ir_graph *irg)
{
- return irg->params;
+ return irg->n_loc;
}
void
-set_irg_params (ir_graph *irg, int params)
+set_irg_n_loc (ir_graph *irg, int n_loc)
{
- irg->params = params;
+ irg->n_loc = n_loc;
}
unsigned long