X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=driver%2Ffirm_cmdline.h;h=fa8b893f69eac170e29a6722dbf4d273385c52c2;hb=5de879168ae94a7bca2e3d7a0bec4de4345e4737;hp=9cb0a06b96c75f6433bc0d9e9d80e88b48e9cb72;hpb=99fd093374df15b5aaf15f48a900d1a9a012dbd4;p=cparser diff --git a/driver/firm_cmdline.h b/driver/firm_cmdline.h index 9cb0a06..fa8b893 100644 --- a/driver/firm_cmdline.h +++ b/driver/firm_cmdline.h @@ -14,7 +14,8 @@ enum an_os_support { OS_SUPPORT_LINUX, /**< create code for Linux OS */ - OS_SUPPORT_MINGW /**< create code for MinGW WIN32 */ + OS_SUPPORT_MINGW, /**< create code for MinGW WIN32 */ + OS_SUPPORT_MACHO /**< create code for MacOS Mach-O */ } an_os_support; enum a_debug_mode { @@ -28,59 +29,35 @@ 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 code_place; /**< enable global common-subexpression elimination - and code placement */ - 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 loop_unrolling; /**< enable automatic loop unrolling */ - 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 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 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 verify; /**< 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 ycomp_dbg; /**< yComp debugger extension */ - char *ycomp_host; /**< The host, yComp is running on */ - int ycomp_port; /**< The port, yComp is listening on */ + a_byte pic; /**< generate position independent code */ int clone_threshold; /**< The threshold value for procedure cloning. */ - a_byte vrfy_edges; /**< verify edges */ + 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; unsigned spare_size; /**< allowed spare size for table switches in machine words. */ + a_byte enable_statev; /**< enable statev output */ + char *statev_filter; /**< statev filter */ }; /** statistic options */ @@ -108,11 +85,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 +109,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 +122,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