and optimization.
*/
ir_graph *
-new_ir_graph (entity *ent, int n_loc)
+new_r_ir_graph (entity *ent, int n_loc)
{
ir_graph *res;
ir_node *first_block;
stat_new_graph(res, ent);
current_ir_graph = res;
- add_irp_irg(res); /* remember this graph global. */
/*-- initialized for each graph. --*/
if (get_opt_precise_exc_context()) {
res->start_block = new_immBlock();
res->start = new_Start();
res->bad = new_ir_node(NULL, res, res->start_block, op_Bad, mode_T, 0, NULL);
+ res->no_mem = new_ir_node(NULL, res, res->start_block, op_NoMem, mode_M, 0, NULL);
/* Proj results of start node */
projX = new_Proj (res->start, mode_X, pn_Start_X_initial_exec);
- res->frame = new_Proj (res->start, mode_P_mach, pn_Start_P_frame_base); res->globals = new_Proj (res->start, mode_P_mach, pn_Start_P_globals);
+ res->frame = new_Proj (res->start, mode_P_mach, pn_Start_P_frame_base);
+ res->globals = new_Proj (res->start, mode_P_mach, pn_Start_P_globals);
res->initial_mem = new_Proj (res->start, mode_M, pn_Start_M);
res->args = new_Proj (res->start, mode_T, pn_Start_T_args);
#ifdef DEBUG_libfirm
}
+ir_graph *
+new_ir_graph (entity *ent, int n_loc)
+{
+ ir_graph *res = new_r_ir_graph (ent, n_loc);
+ add_irp_irg(res); /* remember this graph global. */
+ return res;
+}
+
/* Make a rudimentary ir graph for the constant code.
Must look like a correct irg, spare everything else. */
ir_graph *new_const_code_irg(void) {
res->end_reg = res->end;
res->end_except = res->end;
mature_immBlock(get_cur_block()); /* mature the end block */
- res->bad = new_ir_node (NULL, res, res->start_block, op_Bad, mode_T, 0, NULL);
+ res->bad = new_ir_node (NULL, res, res->start_block, op_Bad, mode_T, 0, NULL);
+ res->no_mem = new_ir_node (NULL, res, res->start_block, op_NoMem, mode_M, 0, NULL);
res->start = new_Start ();
res->initial_mem = new_Proj (res->start, mode_M, pn_Start_M);
set_Block_block_visited(res->start_block, -1);
set_irn_visited(res->start_block, -1);
set_irn_visited(res->bad, -1);
+ set_irn_visited(res->no_mem, -1);
res->phase_state = phase_high;
return res;
__set_irg_bad(irg, node);
}
-/* GL removed: we need unknown with mode for analyses.
ir_node *
-get_irg_unknown (ir_graph *irg)
-{
- return irg->unknown;
+(get_irg_no_mem)(const ir_graph *irg) {
+ return __get_irg_no_mem(irg);
}
void
-set_irg_unknown (ir_graph *irg, ir_node *node)
-{
- irg->unknown = node;
+(set_irg_no_mem)(ir_graph *irg, ir_node *node) {
+ __set_irg_no_mem(irg, node);
}
-*/
ir_node *
(get_irg_current_block)(const ir_graph *irg) {
(inc_irg_block_visited)(ir_graph *irg) {
__inc_irg_block_visited(irg);
}
-
-/* is irg a pseudo graph for analysis? */
-int is_pseudo_ir_graph(ir_graph *irg)
-{
- int res = false;
- entity *ent;
-
- assert(irg && "nothing here");
- assert(is_ir_graph(irg) && "no ir_graph given");
-
- ent = get_irg_entity(irg);
- if(visibility_external_allocated == get_entity_visibility(ent)
- && peculiarity_existent == get_entity_peculiarity(ent)) {
- res = true;
- }
- return(res);
-}