projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
backend: put ignore regs into beirg
[libfirm]
/
ir
/
be
/
bestate.c
diff --git
a/ir/be/bestate.c
b/ir/be/bestate.c
index
823dec9
..
1967fb5
100644
(file)
--- a/
ir/be/bestate.c
+++ b/
ir/be/bestate.c
@@
-161,6
+161,7
@@
static void spill_phi(minibelady_env_t *env, ir_node *phi)
ir_node *block = get_nodes_block(phi);
int arity = get_irn_arity(phi);
ir_node **in = ALLOCAN(ir_node*, arity);
ir_node *block = get_nodes_block(phi);
int arity = get_irn_arity(phi);
ir_node **in = ALLOCAN(ir_node*, arity);
+ ir_node *dummy = new_r_Dummy(irg, mode_M);
ir_node *spill_to_kill = NULL;
spill_info_t *spill_info;
int i;
ir_node *spill_to_kill = NULL;
spill_info_t *spill_info;
int i;
@@
-175,7
+176,7
@@
static void spill_phi(minibelady_env_t *env, ir_node *phi)
/* create a new phi-M with bad preds */
for (i = 0; i < arity; ++i) {
/* create a new phi-M with bad preds */
for (i = 0; i < arity; ++i) {
- in[i] =
new_r_Unknown(irg, mode_M)
;
+ in[i] =
dummy
;
}
DBG((dbg, LEVEL_2, "\tcreate Phi-M for %+F\n", phi));
}
DBG((dbg, LEVEL_2, "\tcreate Phi-M for %+F\n", phi));
@@
-461,7
+462,7
@@
static ir_node *get_end_of_block_insertion_point(ir_node *block)
if (!is_cfop(last)) {
last = sched_next(last);
/* last node must be a cfop, only exception is the start block */
if (!is_cfop(last)) {
last = sched_next(last);
/* last node must be a cfop, only exception is the start block */
- assert(last
== get_irg_start_block(get_irn_irg(block)));
+ assert(last == get_irg_start_block(get_irn_irg(block)));
}
return last;
}
return last;
@@
-507,7
+508,7
@@
static void fix_block_borders(ir_node *block, void *data)
pred_info->end_state, need_state));
if (pred_info->end_state != need_state) {
pred_info->end_state, need_state));
if (pred_info->end_state != need_state) {
- ir_node *insert_point = get_end_of_block_insertion_point(pred);
+ ir_node *insert_point = get_end_of_block_insertion_point(pred);
DBG((dbg, LEVEL_3, " Creating reload for %+F\n", need_state));
DBG((dbg, LEVEL_3, " Creating reload for %+F\n", need_state));
@@
-516,12
+517,11
@@
static void fix_block_borders(ir_node *block, void *data)
}
}
}
}
-void be_assure_state(
be_irg_t *b
irg, const arch_register_t *reg, void *func_env,
+void be_assure_state(
ir_graph *
irg, const arch_register_t *reg, void *func_env,
create_spill_func create_spill,
create_reload_func create_reload)
{
minibelady_env_t env;
create_spill_func create_spill,
create_reload_func create_reload)
{
minibelady_env_t env;
- ir_graph *irg = be_get_birg_irg(birg);
spill_info_t *info;
be_lv_t *lv = be_assure_liveness(irg);
spill_info_t *info;
be_lv_t *lv = be_assure_liveness(irg);