#include <libfirm/be.h>
#ifdef _WIN32
-#define DEFAULT_OS OS_SUPPORT_WIN32
+#define DEFAULT_OS OS_SUPPORT_MINGW
+#elif defined(__APPLE__)
+#define DEFAULT_OS OS_SUPPORT_MACHO
#else
#define DEFAULT_OS OS_SUPPORT_LINUX
#endif
/* reassoc = */ TRUE,
/* cse = */ TRUE,
/* control_flow = */ TRUE,
- /* code_place = */ TRUE,
- /* gvn_pre = */ FALSE, /* currently buggy */
+ /* combo = */ TRUE,
+ /* gcse = */ TRUE,
+ /* gvn_pre = */ FALSE,
/* cond_eval = */ FALSE,
/* if_conversion = */ FALSE,
/* func_calls = */ TRUE,
/* precise_exc = */ FALSE, /* never needed for C */
/* use_DivMod = */ FALSE,
/* remove_unused = */ TRUE,
- /* jmp_tbls = */ TRUE,
/* cloning = */ FALSE,
/* auto_sync = */ TRUE,
/* alias_analysis = */ TRUE,
/* strict_alias = */ FALSE,
/* no_alias = */ FALSE,
- /* luffig = */ FALSE,
+ /* sync = */ TRUE,
/* deconv = */ FALSE,
/* cc_opt = */ TRUE,
/* bool_opt = */ FALSE,
{ X("no-const-fold"), &firm_opt.const_folding, 0, "firm: disable constant folding" },
{ X("control_flow"), &firm_opt.control_flow, 1, "firm: enable control flow optimization" },
{ X("no-control-flow"), &firm_opt.control_flow, 0, "firm: disable control flow optimization" },
- { X("code-place"), &firm_opt.code_place, 1, "firm: enable GCSE and code placement" },
- { X("no-code-place"), &firm_opt.code_place, 0, "firm: disable GCSE and code placement" },
+ { X("combo"), &firm_opt.combo, 1, "firm: enable combined CCE, UCE and GVN" },
+ { X("no-combo"), &firm_opt.combo, 0, "firm: disable combined CCE, UCE and GVN" },
+ { X("gcse"), &firm_opt.gcse, 1, "firm: enable global common subexpression elimination" },
+ { X("no-gcse"), &firm_opt.gcse, 0, "firm: disable global common subexpression elimination" },
{ X("gvn-pre"), &firm_opt.gvn_pre, 1, "firm: enable GVN partial redundancy elimination" },
{ X("no-gvn-pre"), &firm_opt.gvn_pre, 0, "firm: disable GVN partial redundancy elimination" },
{ X("cond-eval"), &firm_opt.cond_eval, 1, "firm: enable partial condition evaluation optimization" },
{ X("no-opt-load-store"), &firm_opt.load_store, 0, "firm: disable load store optimization" },
{ X("opt-modes"), &firm_opt.modes, 1, "firm: optimize integer modes" },
{ X("no-opt-modes"), &firm_opt.modes, 0, "firm: disable integer modes optimization" },
- { X("jmptbls"), &firm_opt.jmp_tbls, 1, "firm: create jump table for switch" },
- { X("no-jmptbls"), &firm_opt.jmp_tbls, 0, "firm: do not create jump table for switch" },
{ X("sync"), &firm_opt.auto_sync, 1, "firm: automatically create Sync nodes" },
{ X("no-sync"), &firm_opt.auto_sync, 0, "firm: do not create Sync nodes" },
{ X("opt-alias"), &firm_opt.alias_analysis, 1, "firm: enable alias analysis" },
{ X("fp-precise"), &firm_opt.fp_model, fp_model_precise, "firm: precise fp model" },
{ X("fp-fast"), &firm_opt.fp_model, fp_model_fast, "firm: fast fp model" },
{ X("fp-strict"), &firm_opt.fp_model, fp_model_strict, "firm: strict fp model" },
- { X("luffig"), &firm_opt.luffig, 1, "firm: enable the fluffy load/store optimization" },
- { X("no-luffig"), &firm_opt.luffig, 0, "firm: disable the fluffy load/store optimization" },
+ { X("sync"), &firm_opt.sync, 1, "firm: use Syncs to remove unnecessary memory dependencies" },
+ { X("no-sync"), &firm_opt.sync, 0, "firm: do not use Syncs to remove unnecessary memory dependencies" },
{ X("deconv"), &firm_opt.deconv, 1, "firm: enable the conv node optimization" },
{ X("no-deconv"), &firm_opt.deconv, 0, "firm: disable the conv node optimization" },
{ X("opt-cc"), &firm_opt.cc_opt, 1, "firm: enable calling conventions optimization" },
{ X("stat-pattern"), &firm_dump.stat_pattern, 1, "misc: Firm statistic calculates most used pattern" },
{ X("stat-dag"), &firm_dump.stat_dag, 1, "misc: Firm calculates DAG statistics" },
{ X("firm-asm"), &firm_dump.gen_firm_asm, 1, "misc: output Firm assembler" },
- { X("win32"), &firm_opt.os_support, OS_SUPPORT_WIN32, "misc: generate Win32 code" },
+ { X("win32"), &firm_opt.os_support, OS_SUPPORT_MINGW, "misc: generate MinGW Win32 code" },
{ X("mac"), &firm_opt.os_support, OS_SUPPORT_MACHO, "misc: generate MacOS code" },
{ X("linux"), &firm_opt.os_support, OS_SUPPORT_LINUX, "misc: generate Linux-ELF code" },
{ X("ycomp"), &firm_opt.ycomp_dbg, 1, "misc: enable yComp debugger extension" },
firm_opt.reassoc = FALSE;
firm_opt.cse = FALSE;
/* firm_opt.control_flow */
- firm_opt.code_place = FALSE;
+ firm_opt.gcse = FALSE;
firm_opt.gvn_pre = FALSE;
firm_opt.cond_eval = FALSE;
firm_opt.if_conversion = FALSE;
firm_opt.alias_analysis = FALSE;
firm_opt.strict_alias = FALSE;
firm_opt.no_alias = FALSE;
- firm_opt.luffig = FALSE;
+ firm_opt.sync = FALSE;
firm_opt.deconv = FALSE;
firm_opt.cc_opt = FALSE;
firm_opt.bool_opt = FALSE;
if (firm_opt.debug_mode == DBG_MODE_FULL)
disable_opts();
res = 1;
-#ifdef FIRM_BACKEND
res &= firm_be_option("omitfp=0");
res &= firm_be_option("stabs");
-#endif /* FIRM_BACKEND */
return res;
}
break;