projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
old_bp should not be part of the between type, this fixes stack alignment for functio...
[libfirm]
/
ir
/
be
/
beflags.c
diff --git
a/ir/be/beflags.c
b/ir/be/beflags.c
index
6537ac7
..
97905da
100644
(file)
--- a/
ir/be/beflags.c
+++ b/
ir/be/beflags.c
@@
-176,7
+176,7
@@
static void rematerialize_or_move(ir_node *flags_needed, ir_node *node,
get_nodes_block(node) != get_nodes_block(flags_needed)) {
int i;
get_nodes_block(node) != get_nodes_block(flags_needed)) {
int i;
- for (i = get_irn_arity(copy); i >= 0; --i) {
+ for (i = get_irn_arity(copy)
- 1
; i >= 0; --i) {
be_liveness_update(lv, get_irn_n(copy, i));
}
}
be_liveness_update(lv, get_irn_n(copy, i));
}
}
@@
-301,9
+301,9
@@
void be_sched_fix_flags(be_irg_t *birg, const arch_register_class_t *flag_cls,
if(remat == NULL)
remat = &default_remat;
if(remat == NULL)
remat = &default_remat;
-
set_using_irn_link(irg
);
+
ir_reserve_resources(irg, IR_RESOURCE_IRN_LINK
);
irg_block_walk_graph(irg, fix_flags_walker, NULL, birg->lv);
irg_block_walk_graph(irg, fix_flags_walker, NULL, birg->lv);
-
clear_using_irn_link(irg
);
+
ir_free_resources(irg, IR_RESOURCE_IRN_LINK
);
if(changed) {
be_remove_dead_nodes_from_schedule(birg);
if(changed) {
be_remove_dead_nodes_from_schedule(birg);