#include "firm_codegen.h"
#include "firm_cmdline.h"
#include "firm_timing.h"
+#include "ast2firm.h"
#ifdef _WIN32
#define snprintf _snprintf
static void do_gcse(ir_graph *irg)
{
set_opt_global_cse(1);
+ optimize_graph_df(irg);
place_code(irg);
set_opt_global_cse(0);
}
static void do_inline(void)
{
- inline_functions(500, 50);
+ inline_functions(firm_opt.inline_maxsize, firm_opt.inline_threshold);
}
static void do_cloning(void)
{ OPT_TARGET_IRG, "gvnpre", (func_ptr_t) do_gvn_pre, true, true, true, -1 },
{ OPT_TARGET_IRG, "ifconv", (func_ptr_t) do_if_conv, true, true, true, TV_IF_CONV },
{ OPT_TARGET_IRG, "bool", (func_ptr_t) opt_bool, true, true, true, -1 },
+ { OPT_TARGET_IRG, "shape-blocks",(func_ptr_t) shape_blocks, true, true, true, TV_END_MELT },
{ OPT_TARGET_IRG, "stred", (func_ptr_t) do_stred, true, true, true, TV_OSR },
{ OPT_TARGET_IRG, "dead", (func_ptr_t) dead_node_elimination, true, false, true, TV_DEAD_NODE },
{ OPT_TARGET_IRP, "inline", (func_ptr_t) do_inline, true, true, true, -1 },
set_opt_scalar_replacement(firm_opt.scalar_replace);
set_opt_auto_create_sync(firm_opt.auto_sync);
set_opt_alias_analysis(firm_opt.alias_analysis);
+ set_opt_combo(firm_opt.combo);
aa_opt = aa_opt_no_opt;
if (firm_opt.strict_alias)
set_opt_enabled("gvnpre", firm_opt.gvn_pre);
set_opt_enabled("ifconv", firm_opt.if_conversion);
set_opt_enabled("bool", firm_opt.bool_opt);
+ set_opt_enabled("shape-blocks", firm_opt.shape_blocks);
set_opt_enabled("inline", firm_opt.do_inline);
set_opt_enabled("clone", firm_opt.cloning);
set_opt_enabled("combo", firm_opt.combo);
do_irg_opt(irg, "lower");
do_irg_opt(irg, "deconv");
do_irg_opt(irg, "condeval");
- do_irg_opt(irg, "lower_switch");
do_irg_opt(irg, "remove_confirms");
do_irg_opt(irg, "gvnpre");
do_irg_opt(irg, "place");
}
do_irg_opt(irg, "bool");
+ do_irg_opt(irg, "shape-blocks");
+ do_irg_opt(irg, "lower_switch");
do_irg_opt(irg, "stred");
do_irg_opt(irg, "local");
do_irg_opt(irg, "dead");
{
int i;
- /* do class lowering and vtbl creation */
-// lower_classes_to_struct("vtbl", "m");
-
-#if 0
- timer_push(TV_LOWER);
- lower_highlevel();
- timer_pop();
-#endif
-
if (firm_opt.lower_ll) {
lwrdw_param_t init = {
1,
1,
- mode_Ls, mode_Lu,
- mode_Is, mode_Iu,
+ get_atomic_mode(ATOMIC_TYPE_LONGLONG),
+ get_atomic_mode(ATOMIC_TYPE_ULONGLONG),
+ get_atomic_mode(ATOMIC_TYPE_INT),
+ get_atomic_mode(ATOMIC_TYPE_UINT),
def_create_intrinsic_fkt,
NULL
};