projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added support for SymConst(ofs_ent)
[libfirm]
/
ir
/
be
/
belistsched.c
diff --git
a/ir/be/belistsched.c
b/ir/be/belistsched.c
index
1b932df
..
dfaaad3
100644
(file)
--- a/
ir/be/belistsched.c
+++ b/
ir/be/belistsched.c
@@
-329,8
+329,16
@@
static void add_tuple_projs(block_sched_env_t *env, ir_node *irn)
if(is_Bad(irn))
return;
if(is_Bad(irn))
return;
+
+ /* non-proj nodes can have dependency edges to tuple nodes. */
+ foreach_out_edge_kind(irn, edge, EDGE_KIND_DEP) {
+ ir_node *out = get_edge_src_irn(edge);
+ make_ready(env, irn, out);
+ }
+
+ /* schedule the normal projs */
foreach_out_edge(irn, edge) {
foreach_out_edge(irn, edge) {
- ir_node *out =
edge->src
;
+ ir_node *out =
get_edge_src_irn(edge)
;
assert(is_Proj(out) && "successor of a modeT node must be a proj");
assert(is_Proj(out) && "successor of a modeT node must be a proj");
@@
-487,6
+495,9
@@
void list_sched(const be_irg_t *birg, be_options_t *be_opts)
case BE_SCHED_SELECT_TRIVIAL:
memcpy(&sel, trivial_selector, sizeof(sel));
break;
case BE_SCHED_SELECT_TRIVIAL:
memcpy(&sel, trivial_selector, sizeof(sel));
break;
+ case BE_SCHED_SELECT_RANDOM:
+ memcpy(&sel, random_selector, sizeof(sel));
+ break;
case BE_SCHED_SELECT_REGPRESS:
memcpy(&sel, reg_pressure_selector, sizeof(sel));
break;
case BE_SCHED_SELECT_REGPRESS:
memcpy(&sel, reg_pressure_selector, sizeof(sel));
break;