X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=driver%2Ffirm_cmdline.h;h=7a230b7d233c76f09fb38e7b366205569bf48da5;hb=2c26c7a7885635fc12bda81d06b334f9726a70df;hp=a34580b2885e14673ad319fe25c04f18c6bf0285;hpb=2a7937c5a31479262a9677cc0da3defd50b92a03;p=cparser diff --git a/driver/firm_cmdline.h b/driver/firm_cmdline.h index a34580b..7a230b7 100644 --- a/driver/firm_cmdline.h +++ b/driver/firm_cmdline.h @@ -12,12 +12,6 @@ #include "fe_common.h" -enum an_os_support { - OS_SUPPORT_LINUX, /**< create code for Linux OS */ - OS_SUPPORT_MINGW, /**< create code for MinGW WIN32 */ - OS_SUPPORT_MACHO /**< create code for MacOS Mach-O */ -} an_os_support; - enum a_debug_mode { DBG_MODE_NONE = 0, /**< no special debug support */ DBG_MODE_BACKSTORE = 1, /**< backstores are created */ @@ -26,61 +20,34 @@ enum a_debug_mode { /* optimization settings */ struct a_firm_opt { - a_byte enabled; /**< enable all optimizations */ - a_byte debug_mode; /**< debug mode: store all local variables */ - a_byte const_folding; /**< enable constant folding */ - a_byte reassoc; /**< enable reassociation */ - a_byte cse; /**< enable common-subexpression elimination */ - a_byte control_flow; /**< enable control flow optimizations */ - a_byte gcse; /**< enable global common-subexpression elimination */ - a_byte gvn_pre; /**< enable global common-subexpression elimination - and partial redundancy elimination */ - a_byte cond_eval; /**< enable condition evaluation */ - a_byte if_conversion; /**< enable if-conversion */ - a_byte func_calls; /**< enable function call optimization */ - a_byte do_inline; /**< do automatic inlining */ - a_byte auto_inline; /**< current automatic inlining state */ - a_byte tail_rec; /**< tail recursion optimization */ - a_byte strength_red; /**< enable strength reduction */ - a_byte scalar_replace; /**< enable scalar replacement */ - a_byte confirm; /**< enable Confirm optimization */ - a_byte muls; /**< enable architecture dependent mul optimization */ - a_byte divs; /**< enable architecture dependent div optimization */ - a_byte mods; /**< enable architecture dependent mod optimization */ - a_byte fragile_ops; /**< enable fragile ops optimization */ - a_byte load_store; /**< enable load store optimization */ - a_byte modes; /**< enable integer mode optimizations */ - a_byte precise_exc; /**< use precise exception context */ - a_byte use_DivMod; /**< use DivMod nodes */ - a_byte remove_unused; /**< remove unused functions */ - a_byte jmp_tbls; /**< create jump table for switch */ - a_byte cloning; /**< enable procedure cloning */ - a_byte auto_sync; /**< automatically create Sync nodes */ - a_byte alias_analysis; /**< enable Alias Analysis */ - a_byte strict_alias; /**< enable strict Alias Analysis (using type based AA) */ - a_byte no_alias; /**< no aliasing possible. */ - a_byte luffig; /**< enable fluffy load/store optimization */ - a_byte deconv; /**< enable conv node optimization */ - a_byte cc_opt; /**< optimize calling conventions */ - a_byte bool_opt; /**< perform bool simplification */ - a_byte freestanding; /**< if set, freestanding mode is enabled */ - a_byte fp_model; /**< fp model */ - a_byte lower_ll; /**< lower double word access */ - a_byte vrfy; /**< Firm verifier setting */ - a_byte check_all; /**< enable checking all Firm phases */ - a_byte lower; /**< enable Firm lowering */ - a_byte os_support; /**< current os support */ - a_byte honor_restrict; /**< enable restrict keyword */ - a_byte lower_bitfields; /**< lower bitfield access */ - a_byte pic; /**< generate position independent code */ - a_byte ycomp_dbg; /**< yComp debugger extension */ - char *ycomp_host; /**< The host, yComp is running on */ - int ycomp_port; /**< The port, yComp is listening on */ - int clone_threshold; /**< The threshold value for procedure cloning. */ - a_byte vrfy_edges; /**< verify edges */ - a_byte grs_simd_opt; - a_byte grs_create_pattern; - unsigned spare_size; /**< allowed spare size for table switches in machine words. */ + a_byte enabled; /**< enable all optimizations */ + a_byte debug_mode; /**< debug mode: store all local variables */ + a_byte const_folding; /**< enable constant folding */ + a_byte cse; /**< enable common-subexpression elimination */ + a_byte gcse; /**< enable global common-subexpression elimination */ + a_byte confirm; /**< enable Confirm optimization */ + a_byte muls; /**< enable architecture dependent mul optimization */ + a_byte divs; /**< enable architecture dependent div optimization */ + a_byte mods; /**< enable architecture dependent mod optimization */ + a_byte alias_analysis; /**< enable Alias Analysis */ + a_byte strict_alias; /**< enable strict Alias Analysis (using type based AA) */ + a_byte no_alias; /**< no aliasing possible. */ + a_byte cc_opt; /**< optimize calling conventions */ + a_byte fp_model; /**< fp model */ + a_byte verify; /**< Firm verifier setting */ + a_byte check_all; /**< enable checking all Firm phases */ + a_byte lower; /**< enable Firm lowering */ + a_byte honor_restrict; /**< enable restrict keyword */ + a_byte lower_bitfields; /**< lower bitfield access */ + a_byte pic; /**< generate position independent code */ + int clone_threshold; /**< The threshold value for procedure cloning. */ + unsigned inline_maxsize; /**< Maximum function size for inlining. */ + unsigned inline_threshold;/**< Inlining benefice threshold. */ + a_byte verify_edges; /**< verify edges */ + a_byte grs_simd_opt; + a_byte grs_create_pattern; + a_byte enable_statev; /**< enable statev output */ + const char *statev_filter; /**< statev filter */ }; /** statistic options */ @@ -108,11 +75,9 @@ struct a_firm_dump { a_byte extbb; /**< dumps extended basic blocks */ a_byte ir_graph; /**< dump all graphs */ a_byte all_phases; /**< dump the IR graph after all phases */ - a_byte edge_labels; /**< use edge labels when dumping IR graphs */ a_byte statistic; /**< Firm statistic setting */ a_byte stat_pattern; /**< enable Firm statistic pattern */ a_byte stat_dag; /**< enable Firm DAG statistic */ - a_byte gen_firm_asm; /**< generate Firm assembler and exit */ char *filter; /**< the dump filter */ }; @@ -134,6 +99,7 @@ extern struct a_firm_opt firm_opt; extern struct a_firm_dump firm_dump; extern struct a_firm_ext_grs firm_ext_grs; +void print_option_help(const char *name, const char *description); /** * prints the firm version number @@ -146,10 +112,4 @@ void print_firm_version(FILE *f); */ int firm_option(const char *opt); -/** - * called by the generic command line parser - * to handle the --backend= or -b options - */ -int firm_be_option(const char *opt); - -#endif /* FIRM_CMDLINE_H */ +#endif