#include "debug.h"
#include "irtools.h"
+#include "bemodule.h"
#include "besched_t.h"
#include "beutil.h"
#include "belive_t.h"
/* If the node consumes/produces data, it is appended to the schedule
* list, otherwise, it is not put into the list */
if (must_appear_in_schedule(env->selector, env->selector_block_env, irn)) {
- sched_info_t *info = get_irn_sched_info(irn);
- INIT_LIST_HEAD(&info->list);
- info->scheduled = 1;
update_sched_liveness(env, irn);
sched_add_before(env->block, irn);
sched_env_t *env = env_ptr;
const list_sched_selector_t *selector = env->selector;
ir_node *start_node = get_irg_start(get_irn_irg(block));
- sched_info_t *info = get_irn_sched_info(block);
block_sched_env_t be;
const ir_edge_t *edge;
int j, m;
/* Initialize the block's list head that will hold the schedule. */
- INIT_LIST_HEAD(&info->list);
+ sched_init_block(block);
/* Initialize the block scheduling environment */
be.sched_info = env->sched_info;
/**
* Register list scheduler options.
*/
-void list_sched_register_options(lc_opt_entry_t *grp) {
- static int run_once = 0;
- lc_opt_entry_t *sched_grp;
+void be_init_listsched(void) {
+ lc_opt_entry_t *be_grp = lc_opt_get_grp(firm_opt_get_root(), "be");
+ lc_opt_entry_t *sched_grp = lc_opt_get_grp(be_grp, "listsched");
- if (! run_once) {
- run_once = 1;
- sched_grp = lc_opt_get_grp(grp, "listsched");
-
- lc_opt_add_table(sched_grp, list_sched_option_table);
- rss_register_options(sched_grp);
- }
+ lc_opt_add_table(sched_grp, list_sched_option_table);
}
+
+BE_REGISTER_MODULE_CONSTRUCTOR(be_init_listsched);
#endif /* WITH_LIBCORE */