projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Inline gen_Minus_ex() into its only caller gen_Minus().
[libfirm]
/
ir
/
be
/
bespillbelady.c
diff --git
a/ir/be/bespillbelady.c
b/ir/be/bespillbelady.c
index
151344e
..
db7f4a8
100644
(file)
--- a/
ir/be/bespillbelady.c
+++ b/
ir/be/bespillbelady.c
@@
-372,6
+372,7
@@
static loc_t to_take_or_not_to_take(belady_env_t *env, ir_node* first,
loc_t loc;
loc.time = USES_INFINITY;
loc.irn = node;
loc_t loc;
loc.time = USES_INFINITY;
loc.irn = node;
+ (void) block;
if (!arch_irn_consider_in_reg_alloc(env->arch, env->cls, node)) {
loc.time = USES_INFINITY;
if (!arch_irn_consider_in_reg_alloc(env->arch, env->cls, node)) {
loc.time = USES_INFINITY;
@@
-608,9
+609,12
@@
static void belady(ir_node *block, void *data) {
/* allocate all values _defined_ by this instruction */
workset_clear(new_vals);
if (get_irn_mode(irn) == mode_T) { /* special handling for tuples and projs */
/* allocate all values _defined_ by this instruction */
workset_clear(new_vals);
if (get_irn_mode(irn) == mode_T) { /* special handling for tuples and projs */
- ir_node *proj;
- for(proj=sched_next(irn); is_Proj(proj); proj=sched_next(proj))
+ const ir_edge_t *edge;
+
+ foreach_out_edge(irn, edge) {
+ ir_node *proj = get_edge_src_irn(edge);
workset_insert(env, new_vals, proj);
workset_insert(env, new_vals, proj);
+ }
} else {
workset_insert(env, new_vals, irn);
}
} else {
workset_insert(env, new_vals, irn);
}
@@
-704,11
+708,7
@@
void be_spill_belady_spill_env(be_irg_t *birg, const arch_register_class_t *cls,
ir_graph *irg = be_get_birg_irg(birg);
int n_regs;
ir_graph *irg = be_get_birg_irg(birg);
int n_regs;
- /* some special classes contain only ignore regs, nothing to do then */
n_regs = cls->n_regs - be_put_ignore_regs(birg, cls, NULL);
n_regs = cls->n_regs - be_put_ignore_regs(birg, cls, NULL);
- if(n_regs == 0)
- return;
-
be_liveness_assure_sets(be_assure_liveness(birg));
/* construct control flow loop tree */
be_liveness_assure_sets(be_assure_liveness(birg));
/* construct control flow loop tree */