projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Do not mark the transformed as visited. It makes no sense at all.
[libfirm]
/
ir
/
be
/
bespillremat.c
diff --git
a/ir/be/bespillremat.c
b/ir/be/bespillremat.c
index
373022a
..
7a5fb02
100644
(file)
--- a/
ir/be/bespillremat.c
+++ b/
ir/be/bespillremat.c
@@
-482,7
+482,7
@@
is_rematerializable(const spill_ilp_t * si, const ir_node * irn)
for (n = get_irn_arity(irn)-1; n>=0 && remat; --n) {
ir_node *op = get_irn_n(irn, n);
for (n = get_irn_arity(irn)-1; n>=0 && remat; --n) {
ir_node *op = get_irn_n(irn, n);
- remat &= has_reg_class(si, op) || arch_irn_get_flags(arch_env, op) & arch_irn_flags_ignore ||
(get_irn_op(op) == op_NoMem
);
+ remat &= has_reg_class(si, op) || arch_irn_get_flags(arch_env, op) & arch_irn_flags_ignore ||
is_NoMem(op
);
// if(!remat)
// ir_fprintf(stderr, " Argument %d (%+F) of Node %+F has wrong regclass\n", i, op, irn);
// if(!remat)
// ir_fprintf(stderr, " Argument %d (%+F) of Node %+F has wrong regclass\n", i, op, irn);
@@
-3247,6
+3247,9
@@
is_zero(double x)
return fabs(x) < 0.00001;
}
return fabs(x) < 0.00001;
}
+/**
+ * node attribute hook for changing colors
+ */
static int mark_remat_nodes_hook(FILE *F, ir_node *n, ir_node *l)
{
spill_ilp_t *si = get_irg_link(current_ir_graph);
static int mark_remat_nodes_hook(FILE *F, ir_node *n, ir_node *l)
{
spill_ilp_t *si = get_irg_link(current_ir_graph);
@@
-4422,7
+4425,6
@@
be_spill_remat(be_irg_t *birg, const arch_register_class_t *cls)
if(opt_verify & VERIFY_DOMINANCE)
be_check_dominance(irg);
if(opt_verify & VERIFY_DOMINANCE)
be_check_dominance(irg);
- be_assure_dom_front(birg);
be_assure_liveness(birg);
obstack_init(&obst);
be_assure_liveness(birg);
obstack_init(&obst);