projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed bugs in remove_bad_predecessors.
[libfirm]
/
ir
/
ir
/
irgraph.c
diff --git
a/ir/ir/irgraph.c
b/ir/ir/irgraph.c
index
d68a86c
..
3f00b28
100644
(file)
--- a/
ir/ir/irgraph.c
+++ b/
ir/ir/irgraph.c
@@
-79,7
+79,7
@@
void free_Phi_in_stack(Phi_in_stack *s);
and optimization.
*/
ir_graph *
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;
{
ir_graph *res;
ir_node *first_block;
@@
-93,7
+93,6
@@
new_ir_graph (entity *ent, int n_loc)
stat_new_graph(res, ent);
current_ir_graph = res;
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()) {
/*-- initialized for each graph. --*/
if (get_opt_precise_exc_context()) {
@@
-151,10
+150,12
@@
new_ir_graph (entity *ent, int n_loc)
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->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);
/* 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
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
@@
-179,6
+180,14
@@
new_ir_graph (entity *ent, int n_loc)
}
}
+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) {
/* 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) {
@@
-214,7
+223,8
@@
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->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);
res->start = new_Start ();
res->initial_mem = new_Proj (res->start, mode_M, pn_Start_M);
@@
-231,6
+241,7
@@
ir_graph *new_const_code_irg(void) {
set_Block_block_visited(res->start_block, -1);
set_irn_visited(res->start_block, -1);
set_irn_visited(res->bad, -1);
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;
res->phase_state = phase_high;
return res;
@@
-411,19
+422,15
@@
void
__set_irg_bad(irg, node);
}
__set_irg_bad(irg, node);
}
-/* GL removed: we need unknown with mode for analyses.
ir_node *
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
}
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) {
ir_node *
(get_irg_current_block)(const ir_graph *irg) {
@@
-677,20
+684,3
@@
void
(inc_irg_block_visited)(ir_graph *irg) {
__inc_irg_block_visited(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);
-}