+static lc_opt_enum_const_ptr_var_t ra_var = {
+ (const void **) &ra, ra_items
+};
+
+static lc_opt_enum_const_ptr_var_t isa_var = {
+ (const void **) &isa_if, isa_items
+};
+
+static const lc_opt_table_entry_t be_main_options[] = {
+ LC_OPT_ENT_ENUM_MASK("dump", "dump irg on several occasions", &dump_var),
+ LC_OPT_ENT_ENUM_PTR("ra", "register allocator", &ra_var),
+ LC_OPT_ENT_ENUM_PTR("isa", "the instruction set architecture", &isa_var),
+
+ LC_OPT_ENT_STR ("ilp.server", "the ilp server name", be_options.ilp_server, sizeof(be_options.ilp_server)),
+ LC_OPT_ENT_STR ("ilp.solver", "the ilp solver name", be_options.ilp_solver, sizeof(be_options.ilp_solver)),
+ { NULL }
+};
+
+#endif /* WITH_LIBCORE */
+
+void be_opt_register(void)
+{
+#ifdef WITH_LIBCORE
+ int i;
+
+ be_grp_root = lc_opt_get_grp(firm_opt_get_root(), "be");
+
+ lc_opt_add_table(be_grp_root, be_main_options);
+
+ /* register register allocator options */
+ for(i = 0; ra_items[i].name != NULL; ++i) {
+ const be_ra_t *ra = ra_items[i].value;
+ ra->register_options(be_grp_root);
+ }
+
+ /* register isa options */
+ for(i = 0; isa_items[i].name != NULL; ++i) {
+ const arch_isa_if_t *isa = isa_items[i].value;
+ isa->register_options(be_grp_root);
+ }
+#endif /* WITH_LIBCORE */
+}