X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=driver%2Ffirm_cmdline.c;h=d78dc0992250ea8c6690cdfc3285f1c9a00b5c37;hb=b43672c3e931836e6a7e18b0bfb799ac4c419a56;hp=955813d55d54987900c801310f3f59485d3931f7;hpb=31b78ca8ffddd0f74a9fa9fb18e001fd8651be5a;p=cparser diff --git a/driver/firm_cmdline.c b/driver/firm_cmdline.c index 955813d..d78dc09 100644 --- a/driver/firm_cmdline.c +++ b/driver/firm_cmdline.c @@ -12,6 +12,12 @@ #include #include +#ifdef _WIN32 +#define DEFAULT_OS OS_SUPPORT_MINGW +#else +#define DEFAULT_OS OS_SUPPORT_LINUX +#endif + /* optimization settings */ struct a_firm_opt firm_opt = { /* enabled = */ TRUE, @@ -20,8 +26,8 @@ struct a_firm_opt firm_opt = { /* reassoc = */ TRUE, /* cse = */ TRUE, /* control_flow = */ TRUE, - /* code_place = */ TRUE, - /* gvn_pre = */ FALSE, /* currently buggy */ + /* gcse = */ TRUE, + /* gvn_pre = */ FALSE, /* cond_eval = */ FALSE, /* if_conversion = */ FALSE, /* func_calls = */ TRUE, @@ -56,7 +62,7 @@ struct a_firm_opt firm_opt = { /* vrfy = */ FIRM_VERIFICATION_ON, /* check_all = */ FALSE, /* lower = */ TRUE, - /* os_support = */ OS_SUPPORT_LINUX, + /* os_support = */ DEFAULT_OS, /* honor_restrict = */ TRUE, /* lower_bitfields = */ TRUE, /* pic = */ FALSE, @@ -122,8 +128,8 @@ static const struct params { { 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("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" }, @@ -239,7 +245,9 @@ static const struct params { { 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_MINGW, "misc: generate MinGW 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" }, { X("ycomp-host="), NULL, 0, "misc: yComp host" }, { X("ycomp-port="), NULL, 0, "misc: yComp port" }, @@ -282,7 +290,7 @@ static void disable_opts(void) { 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; @@ -365,18 +373,10 @@ int firm_option(const char *opt) 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; } -#ifdef FIRM_BACKEND - /* OS option must be set to the backend */ - else if (firm_options[i].flag == &firm_opt.os_support) - firm_be_option(firm_opt.os_support == OS_SUPPORT_MINGW ? - "ia32-gasmode=mingw" : "ia32-gasmode=linux"); -#endif /* FIRM_BACKEND */ break; } }